2007-03-05 Miguel de Icaza <miguel@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2
3         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4         FileOptions.1 value to mean "temporary", map that to
5         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
6
7         Fixes 80688
8
9 2007-03-03  Marek Habersack  <mhabersack@novell.com>
10
11         * appdomain.c: implement MS .Net style shadow copying. Copies of
12         the assemblies are made in a subdirectory of the dynamic base
13         directory, the assembly names are preserved.
14         Copy .mdb and .config files along with the assemblies being shadowed.
15
16 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
17
18         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
19         (emit_marshal_handleref): Ditto.
20
21         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
22         on Visual C++. Fixes #80671.
23
24 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
25
26         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
27         for clone operations.
28
29 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
30
31         * marshal.c: Fix warnings.
32
33 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
34
35         * loader.c: allow case-insensitive matching of the dll name
36         in dllmap handling when prefixed with "i:".
37
38 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
39
40         * threads.c: Fix #ifdef for dummy_apc function for VS.
41
42 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
43
44         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
45
46 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
47         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
48         giving precedence to the methods with a fully qualified name
49         (InterfaceName.MethodName) when building the interface sections
50         of the vtable.
51
52 2007-02-16  Dick Porter  <dick@ximian.com>
53
54         * threadpool.c (append_job): Fix fast-path array handling, so it's
55         less likely the array will grow exponentially when the load is
56         heavy.
57
58 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
59
60         * metadata-internals.h, loader.c: fix dllmap lookup order
61         for non-function maps, too, and prepare for fallback code.
62
63 2007-02-12  Robert Jordan  <robertj@gmx.net>
64
65         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
66         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
67         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
68         GlobalFree. Fixes a part of bug #77075.
69
70 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
71
72         * loader.c: implemented typedef parent in field memberref.
73
74 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
75
76         * marshal.c: Fix warnings and remember to call Release on
77         IUnknown of RCW.
78         
79         Code is contributed under MIT/X11 license.
80
81 2007-02-10  Miguel de Icaza  <miguel@novell.com>
82
83         * class-internals.h: Add MonoHandleRef definition, and
84         handleref_class to mono_defaults. 
85
86         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
87         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
88
89         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
90         (do nothing on this stage)
91         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
92         (emit_marshal_handleref): New method, used for argument handling
93         of HandleRefs. 
94
95 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
96
97         * class.c (mono_class_setup_parent): Lazily init com types.
98         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
99         init com types.
100         * object.c (mono_remote_class_vtable): Lazily init com types.
101         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
102         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
103         * domain-internals.h: Expose mono_init_com_types.
104         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
105         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
106         Add support for COM Callable Wrapper marshalling.
107         * marshal.h: Add icall definitions.
108         * gc.c: Handle freeing of CCWs in finalizer code.
109         
110         Code is contributed under MIT/X11 license.
111
112 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
113
114         * reflection.c: changed all the signature encoding code to use
115         a variable-sized buffer.
116
117 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
118
119         * marshal.c: locking fixes: never take the loader lock
120         or other runtime locks when holding the marshal lock
121         (fixes bug#80664).
122
123 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
124
125         * marshal.c: make the delegate function pointer mapping
126         work for the moving GC.
127
128 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
129
130         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
131         for bug #80618.
132
133 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
134
135         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
136         gmodule.
137
138 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
139
140         * threadpool.c: made the code moving-GC safe.
141
142 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
143
144         * assembly.c, boehm-gc.c, class-internals.h, class.c,
145         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
146         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
147         warning cleanup.
148         * reflection.c: warning cleanup, some threading and moving GC fixes.
149
150 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
151
152         * class.c, loader.c: create the needed Set/Get/Address array methods
153         as well as the .ctors in mono_class_init (), fixes bug #80567.
154
155 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
156
157         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
158         we doesn't decrease its alignment. Should fix the sparc build.
159
160 2007-01-24  Dick Porter  <dick@ximian.com>
161
162         * socket-io.c
163         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
164         Create the returned object if we need to ignore an unsupported
165         socket option.  Fixes a segfault reported by Atsushi.
166
167 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
168
169         * class.c, object.c: restrict GC-tracked fields to
170         UIntPtr fields used inside corlib, so we provide better
171         type info to the GC and also allow broken packing as in
172         bug #80580.
173
174 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
175
176         * sgen-gc.c: removed duplicated function.
177
178 2007-01-19  Miguel de Icaza  <miguel@novell.com>
179
180         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
181         value that means that the value is not supported, but that we
182         should not return a failure, but instead report this as a
183         successful operation.
184
185 2007-01-19  Raja R Harinath  <rharinath@novell.com>
186
187         Fix tests/bug79956.2.il
188         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
189         (mono_generic_class_get_class): If the generic definition in an
190         enum, copy over other fields related to it.
191
192 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
193
194         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
195         genericinst enums (bug #79215).
196
197 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
198         * class.c: Fix bug 80307.
199
200 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
201
202         * image.c: if the file table is not present, try to load
203         all the modules, since we don't have info about them
204         having or not metadata (bug #80517).
205         * assembly.c: allow mono_assembly_load_references () to
206         work for netmodules.
207
208 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
209
210         * image.c, metadata-internals.h, object.c: execute module
211         cctors when running on the 2 runtime if present (bug #80487).
212
213 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
214
215         * icall.c: optimized InitializeArray() on bigendian.
216
217 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
218
219         * icall.c: fix for the broken ARM FPA double format.
220
221 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
222
223         * icall.c: handle endian issues for r4 and r8 types, too, in
224         the InitializeArray() icall.
225
226 2007-01-15  Miguel de Icaza  <miguel@novell.com>
227
228         * loader.c (mono_loader_error_prepare_exception): Clear the error
229         once we have extracted the information from it, do this before we
230         call into the JIT's class loading mechanisms.
231
232         * object.c (mono_class_create_runtime_vtable): Do not clear the
233         loader error before calling mono_class_get_exception_for_failure
234         as the loader error is needed inside
235         mono_class_get_exception_for_failure to throw the error (thinko).
236
237         Fixes #80521
238         
239 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
240
241         * reflection.c: align fields rva data so it's faster to load at
242         runtime.
243
244 2007-01-12  Raja R Harinath  <rharinath@novell.com>
245
246         Prepare to simplify GenericMethod handling.
247         * class-internals.h (mono_method_get_context): New accessor function.
248         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
249         rather than directly accessing '->context' field.
250
251         * class-internals.h (_MonoGenericParam.method): Move ...
252         (_MonoGenericContainer): ... here.  Add into union with klass field.
253         * class.c, icall.c, loader.c, metadata.c, reflection.c:
254         Update to changes.
255
256 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
257
258         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
259         the wrapper type enum and reduce relocations.
260
261 2007-01-12  Raja R Harinath  <rharinath@novell.com>
262
263         * reflection.c (inflate_mono_method): Reuse method instantiation
264         from the generic method, if available.
265
266 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
267
268         * marshal.c (emit_marshal_variant): Fix conv_arg
269         type in last commit, based on whether parameter is byref.
270         
271 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
272
273         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
274         marshalling.
275         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
276         MONO_TYPE_OBJECT back for VARIANT support.
277
278 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
279
280         * marshal.c, marshal.h, icall-def.h: Implement 
281         Marshal.ReAllocCoTaskMem.
282
283 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
284
285         * marshal.c: memory retention fixes: use the proper
286         image cache for runtime_invoke method lookups.
287
288 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
289
290         * mempool.c: added code to help debug mempool allocations.
291
292 2007-01-11  Dick Porter  <dick@ximian.com>
293
294         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
295         support (experimenting with faking it with IP_MTU_DISCOVER for
296         systems that don't have IP_DONTFRAGMENT.)
297         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
298         icall.
299
300         * icall-def.h: new System.Net.Sockets.Disconnect icall.
301
302         * socket-io.h: Add new fields to MonoSocketAsyncResult
303         corresponding to the new ones in Socket.cs.
304
305 2007-01-11  Raja R Harinath  <rharinath@novell.com>
306
307         Fix IronPython regression mentioned in #80249
308         * metadata.c (do_mono_metadata_parse_generic_class): Clear
309         'cached_context' field, since it may have been initialized as a
310         side-effect of metadata parsing.
311
312         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
313         (_MonoGenericClass.cached_class): Move here and rename from lone
314         remaining field of ...
315         (_MonoInflatedGenericClass): ... this.  Remove.
316         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
317         to changes.
318
319         Fix mcs/tests/test-128.cs regression.
320         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
321         2007-01-10 change below.
322         [MONO_TYPE_OBJECT]: Recurse into array case.
323
324 2007-01-11  Raja R Harinath  <harinath@gmail.com>
325
326         * class-internals.h (mono_get_inflated_generic_class): Remove.
327         * class.c (mono_get_inflated_generic_class): Remove.
328         (mono_generic_class_get_class): Rename from
329         mono_class_create_generic.
330         (mono_class_from_mono_type) [GENERICINST]: Use it.
331         * reflection.c, metadata.c: Update to changes.  Use
332         'mono_class_from_mono_type'.
333
334 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
335
336         * reflection.c: use passed type when encoding an array element
337         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
338
339 2007-01-09  Robert Jordan  <robertj@gmx.net>
340
341         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
342         result arguments (someDelegate.EndInvoke (unrelatedAres)).
343         Fixes bug #80392.
344
345 2007-01-09  Raja R Harinath  <rharinath@novell.com>
346
347         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
348
349         * object.c (set_value): Avoid aliasing between type->data.klass
350         and type->data.generic_class.
351
352         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
353
354 2007-01-08  Raja R Harinath  <rharinath@novell.com>
355
356         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
357         between type->data.klass and type->data.generic_class.
358
359 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
360
361         * marshal.c: In MS.NET, StringBuilder objects are not copied by
362         value in out parameters.
363
364 2007-01-08  Raja R Harinath  <rharinath@novell.com>
365
366         Simplify invariant for MonoGenericClass::klass field.
367         * class.c (mono_class_create_generic): Verify 'klass' is null.
368         * metadata.c (do_mono_metadata_parse_generic_class): Don't
369         initialize 'klass' field.
370
371 2007-01-05  Raja R Harinath  <rharinath@novell.com>
372
373         Ongoing work to avoid redundant data and simplify invariants.
374         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
375         'generic_class', and change type to a GenericInst.
376         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
377         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
378
379 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
380
381         * class.c : skip io-layer under PLATFORM_WIN32.
382
383 2007-01-03  Tor Lillqvist  <tml@novell.com>
384
385         Fix #80305: In a bundled executable, look in the bundled exe
386         assembly to determine the runtime version. Add the possibility to
387         bundle also the machine.config file.
388         
389         * assembly.c (mono_assembly_open_from_bundle): Make
390         non-static. Allow being called even if we have no bundled
391         assemblies, and return NULL right away in that case.
392
393         * domain-internals.h: Declare mono_assembly_open_from_bundle()
394         here.
395
396         * domain.c (app_config_parse): Take an assembly exe file name as
397         parameter instead of a config file name. Check for a bundled
398         config file for that assembly by calling
399         mono_config_string_for_assembly_file() (see below) before looking
400         for one in the file system.
401         (get_runtimes_from_exe): Corrsponding change to call of
402         app_config_parse().
403         (get_runtimes_from_exe): Check for bundled assembly exe file first
404         by calling mono_assembly_open_from_bundle(). If no bundled
405         assembly exe file is found, call mono_image_open() as before to
406         look it up in the file system.
407
408         * mono-config.c: Add variable bundled_machinec_onfig.
409         (mono_config_string_for_assembly_file): New function.
410         (mono_config_for_assembly): Move code snippet that looks for a
411         bundled assembly .config file into the above new function. Call
412         it.
413         (mono_register_machine_config, mono_get_machine_config): New
414         functions to set and retrieve
415
416         * assembly.h: Declare mono_register_machine_config().
417
418         * mono-config.h: Declare mono_get_machine_config() and
419         mono_config_string_for_assembly_file().
420
421         * icall.c: No declaration of environ necessary on Win32. It is
422         declared (as a macro expanding to a function call) in stdlib.h.
423         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
424         New internal mono function. Returns the value of
425         mono_get_machine_config() as a Mono string.
426
427         * icall-def.h: Add get_bundled_machine_config().
428
429 2007-01-04  Raja R Harinath  <rharinath@novell.com>
430
431         Remove redundant field
432         * class-internals.h (_MonoGenericContext.container): Remove field.
433         * loader.c (mono_method_get_signature_full): Don't parse a
434         "container" for a signature parse when the signature is inflated
435         immediately.
436         (method_from_methodspec): Likewise, for a generic_inst.
437         * class.c, metadata.c, reflection.c: Update to changes.
438
439 2006-01-04  Raja R Harinath  <rharinath@novell.com>
440
441         * class-internals.h (_MonoGenericClass): Rename 'context' field to
442         'cached_context', and change semantics -- it starts off NULL, and
443         is initialized on demand.
444         * class.c (mono_generic_class_get_context): New accessor to
445         replace 'context' field accesses.
446         (mono_class_get_context): New helper.
447         (*): Update to changes.
448         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
449
450 2007-01-03  Miguel de Icaza  <miguel@novell.com>
451
452         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
453         before the memcpy.   Fixes Marshal2 regression.
454
455 2007-01-02  Jb Evain  <jbevain@gmail.com>
456
457         * blob.h: add a MONO_TYPE_ENUM definition
458         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
459         fix the encoding of arrays of enums in custom attributes.
460
461         Fixes #79666.
462
463 2007-01-01  Miguel de Icaza  <miguel@novell.com>
464
465         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
466         string is null terminated, but only cut the string short if it
467         overflows the buffer.   
468         
469         (mono_string_to_byvalstr): Also fix this routine.   The code here
470         was not properly terminating a string (it was only terminated
471         because of the previous catch-all memset). 
472
473         I left the memset, because I do not know if applications expect
474         the runtime to clear this region. 
475
476         Fixes #79944.
477
478         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
479         Clear the error before returning to unmanaged code to prevent the
480         runtime from being confused later on (fixes  80420).
481         (ves_icall_type_from_name): Always call mono_loader_clear_error
482         after parsing a type that could have failed.
483         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
484
485         * loader.c (mono_loader_clear_error): Fix indentation.
486
487 2006-12-28  Martin Baulig  <martin@ximian.com>
488
489         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
490
491 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
492
493         * reflection.c: patch from Rolf Bjarne Kvinge to fix
494         getting a token for an EnumBuilder.
495
496 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
497
498         * reflection.c: be more careful in case resource generation
499         fails to create the data array.
500
501 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
502
503         * sgen-gc.c: write barrier for clone and fix unregister handles.
504
505 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
506
507         * reflection.c: some fixes needed in the generics code for the moving GC.
508
509 2006-12-22  Robert Jordan  <robertj@gmx.net>
510
511         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
512         account. Fixes bug #80299.
513
514 2006-12-21  Raja R Harinath  <rharinath@novell.com>
515
516         Fix WaitHandle usage in delegates.
517         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
518         * object.c (mono_wait_handle_new): Use the property set method to
519         initialize the handle.
520         (mono_wait_handle_get_handle): New.
521         * threadpool.c (mono_async_invoke): Use it.
522         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
523         Likewise.
524         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
525
526 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
527
528         * marshal.c (emit_marshal): Call emit_marshal_variant and
529         emit_marshal_com_interface when applicable.
530         (emit_marshal_variant, emit_marshal_com_interface): Add
531         methods for this case and remove if's from emit_marshal_object.
532         
533 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
534
535         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
536
537 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
538
539         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
540         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
541         and GlobalFree on Windows. Remove FIXME.
542
543 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
544
545         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
546         implementation for managed objects.
547
548 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
549
550         * object.c: implemented code to be used for checking
551         that no reference field overlaps with non-references.
552
553 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
554
555         * threadpool.c: fix queue code to be compatible with the
556         moving GC.
557
558 2006-12-18  Miguel de Icaza  <miguel@novell.com>
559
560         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
561         in structures by throwing ArgumentNullException.
562
563         (emit_marshal_safehandle): Also when they are null parameters.
564
565         (emit_marshal_safehandle): Add support for ref
566         SafeHandles parameters
567
568 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
569
570         * profiler.c: updated to use the mono-dl API instead of
571         gmodule.
572
573 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
574
575         * profiler.c: updated to use the mono-dl dynamic loading
576         API instead of gmodule.
577
578 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
579
580         * profiler.c: use readlink, older versions of glib don't have
581         g_file_read_link ().
582
583 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
584
585         * profiler.c: try to detect the path to mono if libc fails to provide
586         a useful name (bug #80286).
587
588 2006-12-16  Raja R Harinath  <rharinath@novell.com>
589
590         Fix #80242
591         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
592         instance, use the generic type definition instead.
593         (ves_icall_Type_GetNestedTypes): Likewise.
594         * class.c (mono_class_create_generic): Always set the
595         nested_classes of a generic instance to NULL, even if the generic
596         type definition has nested types.
597
598 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
599
600         * marshal.c (mono_string_from_bstr): Revert previous Windows change
601         and fix on Linux.
602         
603 2006-12-15  Miguel de Icaza  <miguel@novell.com>
604
605         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
606         my arguments were in the wrong order.   I also fixed the Windows
607         version which seems to have had the same issue.
608
609         (mono_free_bstr): On Unix, this is g_free.
610         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
611         conversions (for the tests in corlib to pass).
612
613 2006-12-14  Miguel de Icaza  <miguel@novell.com>
614
615         * marshal.c (emit_ptr_to_object_conv): For now, ignore
616         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
617         exception if a ref SafeHandle in a struct has changed).
618         
619         (emit_struct_conv): Do not perform layout checks for classes
620         derived from SafeHandle, as those are specially handled. 
621
622         (emit_object_to_ptr_conv): Add support for
623         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
624
625         (emit_marshal_safehandle): Implement conversion of return values
626         of safehandles (MARSHAL_ACTION_CONV_RESULT).
627         
628         * threads.c: WaitHandle now is compiled with two different handles
629         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
630         for 2.0.
631         
632         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
633         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
634         these routines to cope with both kinds of fields.
635
636 2006-12-12  Miguel de Icaza  <miguel@novell.com>
637
638         * metadata.c (mono_type_to_unmanaged): Handle the case where
639         type->data.klass is a SafeHandle, and in that case, return the
640         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
641         MONO_MARSHAL_CONV_SAFEHANDLE. 
642
643 2006-12-11  Miguel de Icaza  <miguel@novell.com>
644
645         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
646         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
647         calling emit_marshal_object.
648
649         (emit_marshal_safehandle): Implement marshalling of
650         SafeHandle parameters (no ref support yet).
651
652         (MarshalAction): Document the defines as I implement
653         them for SafeHandle.
654
655         (emit_marshal_object): indentation police.
656
657         * class-internals.h: Define MonoSafeHandle.
658         Add safehandle_class to MonoDefaults type.
659
660         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
661         list of classes to check for fields. 
662
663         * domain.c (mono_init_internal): Add SafeHandle to the list of
664         mono_defaults loaded.
665
666 2006-12-15  Raja R Harinath  <rharinath@novell.com>
667
668         Fix #80253
669         * reflection.c (mono_reflection_bind_generic_parameters): If the
670         generic type definition is a type builder, ensure that it is fully
671         initialized before instantiating it.  Kill some dead code.
672
673 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
674
675         * object.c: clear the loader_error () before loading
676         more metadata stuff (bug #80258).
677
678 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
679
680         * icall.c, icall-defs.h: type modifiers icalls for
681         parameters and properties.
682
683 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
684
685         * object.c, icall.c: fixed warnings.
686
687 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
688
689         * marshal.c: fixed a couple of leaks and coding style in a few places.
690
691 2006-12-08  Dick Porter  <dick@ximian.com>
692
693         * process.c: Cope with NULL ProcessStartInfo arguments on windows
694         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
695         80173.
696
697 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
698
699         * process.c: ProcessStartInfo may have only filename set and
700         arguments can be NULL.
701
702 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
703
704         * icall.c: fix leak found by Robert Jordan.
705
706 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
707
708         * marshal.c, marshal.h: generate managed method to access an element
709         of a multi-dimensional array.
710
711 2006-11-30  Paolo Molaro (lupus@ximian.com)
712
713         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
714
715 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
716
717         * icall.c: back out GetFields () fix until the serialization code is
718         fixed to not depend on the incorrect behaviour.
719
720 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
721
722         * profiler.c: provide defaults if none are set.
723
724 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
725
726         * Makefile.am, attrdefs.h: new public header file with
727         constants for attributes for use by embedders.
728
729 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
730
731         * icall.c: GetFields () fix for bug #80064.
732
733 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
734
735         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
736         removed long unused icalls.
737
738 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
739   
740         * marshal.c: 
741                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
742                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
743                 can be generated without a delegate class.
744                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
745         
746         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
747
748 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
749
750         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
751         #80069.
752
753 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
754
755         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
756         icall-def.h: added icalls needed by System.GC.
757
758 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
759
760         * loader.c: ensure the class in catch clauses is handled
761         correctly for generics methods (fixes bug#79980).
762
763 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
764
765         * monitor.h, monitor.c: added mono_locks_dump () function
766         to help debug deadlocks involving managed locks.
767
768 2006-11-13  Dick Porter  <dick@ximian.com>
769
770         * file-io.c (get_file_attributes): If the file is a symlink try
771         and get the stat data for the target, but also add the
772         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
773         the specs for the windows symlink support, but will probably have
774         to be reworked when I have test data from a vista machine.  Fixes
775         bug 79887.
776
777 2006-11-13  Dick Porter  <dick@ximian.com>
778
779         * gc.c (mono_domain_finalize): 
780         * marshal.c (mono_delegate_begin_invoke): 
781         * threadpool.c (socket_io_init, mono_thread_pool_init)
782         (mono_thread_pool_finish): 
783         * monitor.c (mono_monitor_try_enter_internal): 
784         * threads.c (mono_thread_resume, mono_thread_init)
785         (mono_thread_suspend_all_other_threads)
786         (mono_thread_execute_interruption): 
787         * appdomain.c (mono_domain_unload): Check for NULL error returns
788         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
789         75733.
790
791 2006-11-11  Miguel de Icaza  <miguel@novell.com>
792
793         * process.c
794         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
795         Only close the handle if the value of the handle is not
796         INVALID_HANDLE_VALUE.  This just makes the process a bit more
797         robust.
798
799         Improvement for #75733, so that we do not run into this problem. 
800
801         
802         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
803         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
804         internal variables.  Fixes #79462 
805         
806
807 2006-11-09  Dick Porter  <dick@ximian.com>
808
809         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
810         Use poll() not select().  Fixes bug 79397.
811
812 2006-11-09  Raja R Harinath  <rharinath@novell.com>
813
814         Fix #79872
815         * assembly.c (mono_assembly_load_from_full): Check that the given
816         image has an assembly manifest.
817
818 2006-11-09  Ankit Jain  <jankit@novell.com>
819
820         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
821         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
822         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
823
824 2006-11-07  Dick Porter  <dick@ximian.com>
825
826         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
827         Put the old resolver behaviour back for pre-2.0 profiles.
828
829 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
830
831         * threadpool.c: precise GC and locking fixes.
832
833 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
834
835         * class.c: don't load types that have an explicit unaligned
836         managed reference. Provide better info in the TypeLoad exception.
837         Part of the fix for bug #79744.
838         * object.c: use the correct check for class type load issues.
839
840 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
841
842         * class.c: enforce alignment of fields with managed references
843         even when Pack=1 is forced by the user (bug #77788).
844
845 2006-11-03  Dick Porter  <dick@ximian.com>
846
847         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
848         If the address reverse lookup fails, return it as the hostname
849         anyway.  Fixes bug 79721.
850
851 2006-11-03  Dick Porter  <dick@ximian.com>
852
853         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
854         Fix build on Windows.
855
856 2006-11-02  Dick Porter  <dick@ximian.com>
857
858         * icall-def.h: 
859         * object-internals.h: 
860         * exception.c (mono_get_exception_thread_interrupted): 
861         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
862         Fixes bug 74525.
863
864         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
865         Check for pending Thread.Interrupt.
866
867 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
868         * loader.c: Fixed bug 79684.
869
870 2006-10-27  Dick Porter  <dick@ximian.com>
871
872         * file-io.c (get_file_attributes): Force symlinks to directories
873         to be returned as a regular file.  Fixes bug 79733.
874 2006-10-26  Dick Porter  <dick@ximian.com>
875
876         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
877         CreateFile to open a directory then we need to set the
878         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
879
880 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
881
882         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
883         friends.
884
885 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
886
887         * sgengc.c: small cleanup of timer code.
888
889 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
890
891         * sgen-gc.c: fix some warnings and start adding support for
892         complete object removal on domain unload.
893
894 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
895
896         * assembly.c: build_assembly_name should not consider a version
897         number without build or revision number invalid. Fixes bug #79715.
898
899 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
900
901         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
902         call kernel32 function OutputDebugString directly.
903         
904         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
905         
906 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
907
908         * reflection.c: small cleanup, using a function to insert a MonoString
909         in the string heap.
910
911 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
912
913         * reflection.c: moving GC fixes.
914
915 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
916
917         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
918         all the objects with finalizers belonging to an unloading appdomain.
919
920 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
921
922         * sgen-gc.c: added ability to allocate even when the nursery is fully
923         pinned and fixed a couple of bugs.
924
925 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
926
927         * threads.h: Revert the last change for now.
928
929         * threads.h (mono_thread_get_pending_exception): Rename this to
930         mono_thread_get_undeniable_exception ().
931
932 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
933
934         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
935         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
936         when fname does not refer to valid assembly. This result in a more
937         meaningful error message.
938         * exception.c: added mono_get_exception_bad_image_format2 which 
939         constructs a BadImageFormatException using the ctor taking a custom
940         message and the file name. Passing in a NULL msg results in a default
941         message.
942         * exception.h: define mono_get_exception_bad_image_format2 function.
943         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
944         when file name pointed to an invalid IL image. Use 
945         mono_get_exception_file_not_found2 to construct FileNotFoundException,
946         as this results in a more meaningful error message.
947
948 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
949
950         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
951         #79465.
952
953 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
954
955         * metadata.c (mono_type_size): Change the align parameter to guint32 for
956         consistency with the other _size functions.
957         (mono_type_stack_size): Ditto.
958
959         * class.c object.c icall.c: Fix warnings caused by the above change.
960
961         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
962
963         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
964
965         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
966
967 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
968
969         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
970         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
971         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
972         threadpool.h, threads-types.h: mark more internal functions.
973
974 2006-10-11  Dick Porter  <dick@ximian.com>
975
976         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
977         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
978         reproduce the bug even before applying the fix.)
979
980 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
981
982         * reflection.c: allow retrieving attributes for arguments in generic
983         methods (bug #79241).
984
985 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
986
987         * debug-mono-symfile.c: properly check fopen () result (found by
988         coverity).
989
990 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
991
992         * reflection.c: make error message clearer and fixed two
993         issuelets found by Coverity.
994
995 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
996
997         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
998
999 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1000
1001         * object-internals.h, gc-internal.h, profiler-private.h:
1002         mark internal functions.
1003
1004 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1005
1006         * reflection.c: put data in the text section.
1007         * icall.c: recognize more types in type_from_typename ().
1008         * process.c, marshal.c: added some GC FIXMEs.
1009
1010 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1011
1012         * loader.c: check for NULL before initializing.
1013
1014 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1015
1016         * gc.c (finalizer_thread): Use a non-alertable wait here.
1017
1018         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1019         until the correct solution is found.
1020
1021 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1022
1023         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1024         modules with no metadata. Fixes #79596.
1025
1026         * image.c (load_metadata_ptrs): Put back the error message when
1027         the #- heap is encountered since the support is not complete yet.
1028
1029 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1030
1031         * gc.c: do not allow the user to SuppressFinalize () a
1032         delegate because it would leak the trampoline if present.
1033
1034 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1035
1036         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1037         PropertyPtr table.
1038
1039 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1040
1041         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1042
1043         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1044
1045         * row-indexes.h: Add definitions for *Ptr tables.
1046
1047         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1048
1049         * metadata.c (mono_metadata_translate_token_index): New helper function to
1050         translate table indexes used in uncompressed metadata.
1051         (mono_metadata_decode_table_row): Ditto.
1052         (mono_metadata_decode_table_row_col): Ditto.
1053
1054         * metadata.c: Add table schema for *Ptr tables.
1055
1056         * class.c loader.c: Use the new helper function to access the affected metadata
1057         tables.
1058         
1059         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1060         #38532.
1061         
1062 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1063
1064         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1065         sequences which can be unbounded in size. Fixes #79583.
1066
1067 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1068
1069         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1070         static initialization.
1071
1072         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1073
1074         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1075
1076         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1077
1078         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1079         ctor fails, i.e. throw the same exception on subsequent accesses.
1080         
1081 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1082
1083         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1084         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1085         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1086         Handle marshalling of interfaces and VARIANTs contained in structs.
1087         
1088         Code is contributed under MIT/X11 license.
1089         
1090 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1091
1092         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1093         
1094         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1095         mempool.
1096
1097 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1098
1099         * console-io.c: ignore previous SIGINT handler.
1100
1101 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1102
1103         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1104         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1105         #79460, #79461, #79485.
1106
1107         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1108
1109         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1110         #79217.
1111
1112 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1113
1114         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1115         could be generated from it.
1116
1117 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1118
1119         * rand.c: fix read loop to correctly handle EINTR.
1120
1121 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1122
1123         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1124         internal calls are defined to keep methods closer to the declaring
1125         type and allow a significant reduction in runtime relocations and
1126         memory usage.
1127
1128 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1129
1130         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1131         exception message to have FileNotFoundException use the default
1132         assembly load error message. Fixes bug #79426.
1133         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1134
1135 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1136
1137         * threadpool.c: (start_thread_or_queue) use the root domain when
1138         creating the thread instead of the async object one.
1139
1140 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1141
1142         * class.c, object.c, class-internals.h, reflection.c:
1143         for arrays, store element_size inside MonoClass (speedup
1144         for array object creation).
1145
1146 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1147
1148         * icall.c: fixed CodeBase to use the file name and not the module
1149         name (bug #79365).
1150
1151 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1152
1153         * mono-debug.c, mono-debug.h: export find_method as
1154         mono_debug_find_method ().
1155
1156 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1157
1158         * debug-helpers.c, class-internals.h: added a few functions useful
1159         when debugging under gdb.
1160
1161 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1162
1163         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1164         characters that need special handling.
1165
1166 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1167
1168         * mono-config.c: make the os/cpu specification more flexible,
1169         allowing lists and negation.
1170
1171 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1172
1173         * marshal.c: COM Interop fixes. Handle case where method->klass.
1174         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1175         calling convention on non-windows platforms. This is for
1176         compatibility with XPCOM and MainWin COM.
1177         
1178         Code is contributed under MIT/X11 license.
1179         
1180
1181 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1182
1183         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1184         correctly. Fixes #79217.
1185
1186         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1187
1188 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1189
1190         * mono-config.c: allow both an os and cpu attribute for dllmap
1191         and dllentry elemnets to enable a single config file to be used
1192         for multiple architectures.
1193
1194 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1195
1196         * loader.c: MonoLoaderError was cleared too soon on load failure.
1197         Fixes bug #79424.
1198
1199 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1200
1201         * icall.c: use the defining class vtable when accessing a
1202         static field, not a pobblibly derived class.
1203
1204 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1205
1206         * icall.c string-icalls.c: Remove references to unicode.h.
1207
1208         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1209
1210         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1211
1212         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1213         indicating the image where custom marshaller types should be looked up.
1214         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1215         custom marshallers, instead of corlib. Fixes #79425.
1216
1217 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1218
1219         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1220
1221 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1222
1223         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1224         Implement Environment.ProcessorCount.
1225         
1226         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1227         Implement Environment.ProcessorCount.
1228         
1229         * icall.c: 
1230         Add Environment.ProcessorCount icall.
1231         
1232         Patch by Jason McFall.
1233
1234 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1235
1236         * assembly.c: don't append .exe/.dll when the filename already contains
1237         one of those extensions.
1238
1239 2006-09-12  Martin Baulig  <martin@ximian.com>
1240
1241         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1242         to array interfaces.
1243
1244 2006-09-11  Martin Baulig  <martin@ximian.com>
1245
1246         * reflection.c (mono_image_build_metadata): Create the
1247         MethodImpl's after emitting all types and methods, so we don't
1248         need another fixup pass for them.
1249
1250 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1251
1252         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1253         change.
1254
1255 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1256
1257         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1258         unload.
1259
1260 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1261
1262         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1263         args is not set. Fixes #78926.
1264
1265 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1266
1267         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1268
1269         * image.c (load_class_names): Move this to class.c, and rename it to 
1270         'mono_image_init_name_cache'.
1271         (load_modules): Fix a warning.
1272
1273         * class.c icall.c image.c: Initialize image->name_cache lazily.
1274
1275         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1276         on its name using information in the AOT file.
1277
1278         * class.c (mono_class_from_name): Use the new hook function.
1279
1280 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1281
1282         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1283         correctly.
1284
1285         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1286         Fixes #79289.
1287         
1288 2006-09-06  Martin Baulig  <martin@ximian.com>
1289
1290         * icall.c (mono_lookup_internal_call): Small fix.
1291
1292 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1293
1294         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1295         double g_free.
1296
1297 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1298
1299         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1300         when --debug is specified.
1301
1302 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1303
1304         * class.c (setup_generic_array_ifaces): Fix a warning.
1305
1306 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1307
1308         * Temporarily remove the patch to assemly.c that checks the
1309         assembly versions as it breaks our gacutil.
1310
1311 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1312
1313         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1314
1315         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1316         a net 1.0 runtime.
1317
1318         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1319         created using the default ctor. Fixes #79152.
1320         (mono_string_builder_to_utf16): Ditto.
1321
1322 2006-09-01  Martin Baulig  <martin@ximian.com>
1323
1324         Fix handling of the generic array interfaces.
1325
1326         * class-internals.h
1327         (MonoDefaults): Removed `generic_array_class' and added
1328         `generic_ilist' class.
1329
1330         * class.c
1331         (mono_bounded_array_class_get): Add the new generic array interfaces.
1332         (setup_generic_array_ifaces): New static method; create vtable
1333         entries for each method in the generic array interfaces.
1334
1335         * metadata.c
1336         (select_container): Allow "parent-less" generic methods.
1337
1338         * marshal.c
1339         (mono_marshal_get_generic_array_helper): New public method.
1340
1341         * icall.c
1342         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1343         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1344         moved the interncall into System.Array.
1345
1346 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1347
1348         A few more cases of avoiding work on types with ->byref set.
1349         Has the real fix for #79238
1350         * icall.c (is_generic_parameter): New helper.
1351         (ves_icall_Type_GetGenericParameterPosition): Use it.
1352         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1353         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1354         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1355         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1356         reference types.
1357         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1358         reference types.
1359         (ves_icall_Type_get_IsGenericInstance): Likewise.
1360         (ves_icall_Type_get_IsGenericType): Likewise.
1361
1362 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1363
1364         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1365         class if possible.
1366
1367         * mempool.h (mono_mempool_get_allocated): New helper function.
1368
1369         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1370         change.
1371
1372         * mempool.c: Fix warnings and the calculation of stats.
1373
1374         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1375
1376         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1377
1378         * loader.c (mono_get_method_from_token): Update method_count stat.
1379
1380         * class-internals.h (MonoStats): Add some stats.
1381
1382 2006-08-31 Robert Jordan  <robertj@gmx.net>
1383
1384         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1385         with managed variants.
1386         All code is contributed under the MIT/X11 license.
1387         
1388 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1389
1390         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1391         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1392
1393         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1394
1395         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1396         with cycles in classes.
1397
1398         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1399
1400         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1401         missing a [MarshalAs] directive. Fixes #79203.
1402
1403         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1404         klass->marshal_info. Fixes #79217.
1405
1406 2006-08-30  Martin Baulig  <martin@ximian.com>
1407
1408         Committing a patch from Joachim Ante <joe@otee.dk>:
1409         Add support for binary data symbol stores.
1410
1411         * debug-mono-symfile.c
1412         (mono_debug_open_mono_symbol_file): Renamed into
1413         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1414         arguments.
1415
1416         * mono-debug.c
1417         (mono_debug_open_image): Added `raw_contents' and `size' args.
1418         (mono_debug_init_2_memory): New public function.
1419
1420 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1421
1422         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1423
1424 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1425
1426         * appdomain.c: implement support for ShadowCopyFiles.
1427
1428 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1429
1430         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1431         when value is NULL (and should remove CID #51).
1432
1433 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1434
1435         * image.c: moved 2 functions to ../utils.
1436
1437 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1438
1439         * gc.c: cope with the target object of a GC handle being NULL
1440         (bug #78877).
1441
1442 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1443
1444         * class.c: recursively check parent's explicit implementations
1445         of interface methods (fixes bug #79125).
1446
1447 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1448
1449         * filewatcher.c: Avoid warnings when building, do not redefine
1450         constants that are defined.
1451
1452         Remove warnings.
1453
1454 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1455
1456         * image.c: don't fail when the link points to an absolute path.
1457
1458 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1459
1460         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1461         Fix CID #3.
1462
1463 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1464
1465         * image.c (full_path): A new method used to obtain the actual path
1466         of an assembly even in the presence of symbolic links.  
1467
1468         This is necessary for the case where we are running a binary that
1469         has been GACed, but we are using the "published" path name
1470         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1471         file in the GAC.
1472
1473         This was the source of the failure for the `xsp' command with the
1474         recent AppDomain changes, as far as the runtime was concerned,
1475         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1476         $prefix/mono/gac/blah/version/blah.exe.
1477
1478         (do_mono_image_open): use full path
1479
1480 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1481
1482         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1483
1484 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1485
1486         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1487         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1488
1489 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1490
1491         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1492         small structures. Fixes #78990.
1493
1494 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1495
1496         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1497
1498         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1499
1500 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1501
1502         * appdomain.c:
1503         * marshal.c: don't load all the assemblies from a domain into newly
1504         created ones. The new domains might have different rules and load
1505         assemblies from different locations. Fixes bug #76757.
1506
1507         Patch by Lluis. Conflicts resolved by Brian Crowell.
1508
1509 2006-08-16  Alp Toker  <alp@atoker.com>
1510
1511         * socket-io.c: First half of the fix for #79084.
1512         Set sa_size to the length of the content, not that of the struct.
1513         Don't add NULL suffix to the content, this should be done in
1514         managed code if needed.
1515
1516 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1517
1518         Fix part of #79012
1519         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1520         mono_metadata_parse_type returns NULL.
1521
1522 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1523
1524         * normalization-tables.h : new file for string normalization data.
1525         * locales.c, locales.h, icall.c :
1526           added load_normalization_resource() for string normalization,
1527           and icall as well.
1528         * Makefile.am : added normalization-tables.h to the sources.
1529
1530 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1531
1532         * marshal.c: Add more helper functions to reduce code duplication and use them
1533         everywhere.
1534
1535 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1536
1537         * marshal.c: Fix non-x86 stdcall warnings.
1538         
1539         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1540         them everywhere.
1541
1542 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1543
1544         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1545         type check on multi-dimensional arrays. Fixes #79000.
1546
1547 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1548
1549         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1550         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1551         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1552         * class-internals.h: add is_com_object to class structure.
1553         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1554         null checks to COM object marshalling. Fix .ctor call on RCW.
1555         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1556         
1557         All code is contributed under the MIT/X11 license.
1558
1559 2006-08-09  Dick Porter  <dick@ximian.com>
1560
1561         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1562         racing mono_monitor_allocator_lock() somewhere, so don't delete
1563         the critical section for now.  Found by running and exiting
1564         monodevelop.
1565
1566 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1567
1568         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1569         (ves_icall_System_ComObject_FindInterface): Ditto.
1570         (ves_icall_System_ComObject_CacheInterface): Ditto.
1571
1572         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1573         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1574
1575 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1576
1577         * threadpool.c: treat pipes from process asynchronous reads as sockets
1578         when reading from them, so we get select/poll or epoll to wait for
1579         data.
1580
1581 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1582
1583         * loader.c: Fix a typo (CID #233) in the null check.
1584
1585 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1586
1587         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1588         Hopefully fixes #78949.
1589         
1590         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1591         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1592         bytes. Fixes #78972.
1593
1594 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1595
1596         * filewatcher.c: we need to set errno here.
1597
1598 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1599
1600         * filewatcher.c: let Win32Exception get the error value.
1601
1602 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1603
1604         * filewatcher.c: translate errno into win32 errors for Win32Exception
1605         to know what happened.
1606
1607 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1608
1609         * threadpool.c: Fix more warnings.
1610
1611         * assembly.c (search_loaded): Fix warnings.
1612
1613         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1614         (mono_async_invoke): Ditto.
1615
1616 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1617
1618         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1619         entries for __ComObject type in addition to ComImport types.
1620         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1621         about hash table.
1622         
1623         All code is contributed under the MIT/X11 license.
1624
1625 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1626
1627         * image.c: avoid tentative loading of modulerefs that contain
1628         no metadata (P/Invoke library names).
1629
1630 2006-07-28  Dick Porter  <dick@ximian.com>
1631
1632         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1633         mono_loader_lock() somewhere, so don't delete the critical section
1634         for now.  Found by running and exiting monodevelop.
1635
1636 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1637
1638         * filewatcher.c: define the inotify syscalls when we're building on
1639         linux and have sys/syscall.h. The build system might not have support
1640         for inotify but the target system might have it.
1641
1642 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1643
1644         * domain.c: Documentation updates.
1645
1646         * loader.c (mono_free_method): Do not release the method
1647         information if we are being profiled, as profilers will use this
1648         information at shut down to present some data to the user.
1649
1650         This is needed so that the profiler does not crash, as the
1651         profiler tends to keep MonoMethods around, and they might become
1652         invalid if we free these.
1653
1654         (mono_get_method_constrained): Return the original CIL stream
1655         method as well, so verification can be performed against it.
1656
1657 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1658
1659         * filewatcher.[ch]: support for inotify file system watcher.
1660         * icall.c: add new internal calls for the inotify file system watcher.
1661
1662 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1663
1664         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1665         #78888.
1666
1667 2006-07-20  Dick Porter  <dick@ximian.com>
1668
1669         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1670         warning.
1671
1672 2006-07-20  Dick Porter  <dick@ximian.com>
1673
1674         * threads.c (start_wrapper): Do the thread cleanup while we still
1675         hold a reference to its object.  Fixes bug 78123.
1676
1677 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1678
1679         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1680         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1681           "managed-to-managed".
1682         * icall.c: Redirect string constructors that take sbyte* to
1683           ves_icall_System_String_ctor_RedirectToCreateString.
1684         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1685           to CreateString () methods with matching signature.
1686         * reflection.c: Use original security informations for
1687           MONO_WRAPPER_MANAGED_TO_MANAGED.
1688         * security-manager.c: Use original security informations for
1689           MONO_WRAPPER_MANAGED_TO_MANAGED.
1690         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1691           that is a placeholder and only its address should be used.
1692         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1693           that is a placeholder and only its address should be used.
1694
1695 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1696
1697         Begin implementing COM Interop.
1698         * appdomain.c: Increment corlib version.
1699         * class.c: Set ComImport classes' parent to __ComObject.
1700         * loader.c: Mark cominterop methods as such.
1701         * domain.c: Add __ComObject class to MonoDefaults structure.
1702         * image.c: Add 2 hashtables to the image for COM Interop related methods
1703         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1704         using the mempool allocator
1705         
1706         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1707         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1708         declaration for mono_metadata_type_dup_mp.
1709         
1710         * debug-helpers.c: Added strings for two additional wrapper types
1711         * object.c: Create proxy objects for ComImport classes
1712         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1713         and added __ComObject class to MonoDefaults structure.
1714         
1715         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1716         MonoComInteropProxy and MonoComObject.
1717         
1718         * marshal.c: Added support for COM Interop
1719         (signature_cominterop): Converts managed signature to corresponding
1720         unmanaged COM signature.
1721         (cominterop_get_function_pointer): gets unmanaged function pointer via
1722         COM object vtable
1723         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1724         (cominterop_get_method_interface): returns interface type that method is defined on
1725         (mono_mb_emit_cominterop_call): emits native call to function pointer
1726         gotten from vtable
1727         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1728         that matches signature of unmanaged function.
1729         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1730         (cominterop_get_invoke): forwards call from proxy to __ComObject
1731         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1732         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1733         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1734         
1735         * marshal.h: Added Marshal icall declarations.
1736         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1737         so we can access them in finalizer
1738         
1739 2006-07-14  Dick Porter  <dick@ximian.com>
1740
1741         * object.c (mono_type_initialization_cleanup): Fix a race
1742         condition by temporarily commenting out the critical section
1743         deletion.
1744
1745 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1746
1747         * reflection.c (create_custom_attr): Fix some warnings.
1748         (create_custom_attr_data): Ditto.
1749         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1750         types. Fixes #78855.
1751
1752 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1753
1754         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1755
1756         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1757
1758 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1759
1760         * reflection.c (resolve_object): Add support for DynamicMethod.
1761
1762         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1763         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1764
1765 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1766
1767         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1768         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1769
1770 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1771
1772         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1773         Fixes #77888.
1774
1775 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1776
1777         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1778         slightly: remove a shadow local variable.
1779
1780 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1781
1782         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1783         definition that introduces the virtual function slot.
1784         Also fix Coverity #105.
1785
1786 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1787
1788         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1789         for dynamic assemblies. Fixes #78724.
1790
1791 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1792
1793         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1794         Fixes #78722.
1795
1796 2006-06-21  Martin Baulig  <martin@ximian.com>
1797
1798         * reflection.c
1799         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1800         fixes #76484.
1801
1802 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1803
1804         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1805
1806 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1807
1808         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1809         nor TYPEREFs.
1810         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1811         Inflate result if necessary.
1812         (mono_class_get_full): Remove old version.  Rename from
1813         'mono_class_get' and add 'context' argument.  Pass it to
1814         ..._create_from_typespec.
1815         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1816         (mono_ldtoken): Revert change below.
1817
1818 2006-06-20  Martin Baulig  <martin@ximian.com>
1819
1820         * class.c (mono_ldtoken): Don't pass the generic context to
1821         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1822
1823 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1824
1825         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1826         and later freeing it. Fixes #78638.
1827
1828 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1829
1830         * icall.c (mono_class_get_throw): Revert over-zealous error
1831         throwing, the caller for mono_class_get_throw will cope with
1832         errors when classes are not properly initialized already.
1833
1834         The code still copes with loader exceptions though.
1835
1836         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1837         
1838 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1839
1840         Fixes the `make run1' version of RuntimeAbort (to be commited,
1841         source is in Bugzilla).
1842         
1843         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1844         FALSE on class loading failure instead of returning true.
1845
1846         * class.c (mono_class_create_from_typedef): It is possible for
1847         mono_metadata_interfaces_from_typedef_full to fail if a class is
1848         not found, cope with this.
1849         
1850
1851 2006-06-14  Dick Porter  <dick@ximian.com>
1852
1853         * socket-io.c: 
1854         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1855         4.1.1
1856
1857 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1858
1859         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1860
1861 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1862
1863         * icall.c: Another fix for building mono in Visual Studio.
1864
1865 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1866
1867         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1868         
1869 2006-06-09  Martin Baulig  <martin@ximian.com>
1870
1871         * debug-mono-symfile.c: Put this back and really fix it this
1872         time. Sorry for all the trouble.
1873
1874 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1875
1876         * icall.c (mono_class_get_throw): Fix a warning.
1877         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1878         ReflectionTypeLoadException if needed. Fixes #78606.
1879
1880         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1881         (mono_class_init): Ditto.
1882
1883         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1884         ref_only exceptions.
1885         (mono_loader_clear_error): Make this work even if there is no error.
1886
1887 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1888
1889         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1890         Marshal.GetComSlotForMethodInfo using internal call.
1891
1892 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1893
1894         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1895         a function for signalling it.
1896
1897         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1898         a referenced assembly is not found.
1899
1900         * loader.c (mono_loader_error_prepare_exception): Add support for 
1901         LOADER_ERROR_ASSEMBLY. Fix formatting.
1902
1903 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1904
1905         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1906         for VARIANT marshalling on windows and increment corlib version
1907         since Variant struct was added.
1908
1909 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1910
1911         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1912         stack trace line information:
1913
1914         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1915         (Martin) when looking up B which is between A and C, return A not C.
1916
1917         Bug is #78573.
1918
1919         Thanks to Alexander Olk for tracking this down.
1920
1921 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1922
1923         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1924         
1925         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1926         avoid clobbering its value.
1927         (mono_string_to_lpstr): Fix a warning on windows.
1928
1929 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1930
1931         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1932
1933         * reflection.c loader.c: Removed references to 'dummy' flag.
1934
1935         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1936
1937         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1938         it gets GC tracking.
1939
1940         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1941         GC tracking.
1942         
1943         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1944
1945         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1946
1947         * appdomain.c: Bump corlib version.
1948
1949 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1950
1951         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1952         CEE_STIND_REF when working with object references.
1953
1954 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1955
1956         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1957         Fixes #78539.
1958
1959 2006-05-30  Miguel de Icaza  <miguel@novell.com>
1960
1961         * loader.c (method_from_memberref): Fix argument value for
1962         mono_loader_set_error_method_load (I was passing the MonoClass
1963         instead of the class name char *).
1964
1965 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1966
1967         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1968         CEE_STIND_REF when working with object references.
1969
1970 2006-05-30  Martin Baulig  <martin@ximian.com>
1971
1972         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
1973         mono_method_full_name() change and replace the ':' with a '.'
1974         here.
1975
1976 2006-05-30  Martin Baulig  <martin@ximian.com>
1977
1978         * debug-mono-symfile.c
1979         (mono_debug_symfile_lookup_location): Fix the algorithm:
1980         when looking up B which is between A and C, return A not C.
1981
1982 2006-05-29  Martin Baulig  <martin@ximian.com>
1983
1984         * mono-debug.h
1985         (MonoDebugMethodInfo): Make the typedef public.
1986         (MonoDebugSourceLocation): New public struct.
1987
1988         * mono-debug.c
1989         (mono_debug_source_location_from_address): Removed.
1990         (mono_debug_source_location_from_il_offset): Removed.
1991         (mono_debug_il_offset_from_address): Removed.
1992         (mono_debug_address_from_il_offset): Removed.
1993         (mono_debug_lookup_method): New public function.
1994         (mono_debug_lookup_source_location): New public function; replaces
1995         the old mono_debug_source_location_from_*() functions; see the
1996         inline documentation.
1997         (mono_debug_free_source_location): New public function.
1998         (mono_debug_print_stack_frame): New public function; see the
1999         inline documentation.
2000
2001         * debug-mono-symfile.c
2002         (mono_debug_find_source_location): Renamed into
2003         mono_debug_symfile_lookup_location(); only take a
2004         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2005         documentation.
2006         (mono_debug_find_method): Renamed into
2007         mono_debug_symfile_lookup_method().
2008
2009 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2010
2011         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2012         returned by mono_image_open_full ().
2013
2014         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2015         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2016         #78517.
2017
2018         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2019         #78518.
2020
2021 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2022
2023         * class.c (mono_class_from_typeref): handle missing images
2024         earlier, deals with bug #78418.   Refactor code; 
2025
2026         Fix a warning introduced in my previous commit (some stale code
2027         from before I revisited my patch).
2028
2029         * class.c (mono_class_create_from_typedef): On failure, remove the
2030         class from the MonoImage->class_cache as the class is not
2031         initialized;   Fixes the leak pointed out by Paolo.
2032
2033 2006-05-25  Dick Porter  <dick@ximian.com>
2034
2035         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2036         DeleteCriticalSections until I figure out which one may still be
2037         sometimes locked when mono_thread_cleanup is called.
2038
2039 2006-05-24  Dick Porter  <dick@ximian.com>
2040
2041         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2042         of mono_thread_manage and back into its own function, so it can be
2043         called after the finalizer thread has finished.
2044
2045         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2046
2047 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2048
2049         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2050         Fixes #78495.
2051
2052         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2053         with non-blittable elements.
2054         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2055
2056 2006-05-24  Martin Baulig  <martin@ximian.com>
2057
2058         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2059         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2060
2061         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2062         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2063         `mono_debugger_event_handler' to NULL.
2064
2065 2006-05-24  Martin Baulig  <martin@ximian.com>
2066
2067         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2068
2069 2006-05-24  Martin Baulig  <martin@ximian.com>
2070
2071         * mono-debug-debugger.h
2072         (mono_debugger_create_notification_function): Added
2073         `MonoCodeManager *' argument.
2074
2075 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2076
2077         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2078
2079 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2080
2081         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2082         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2083         implementation.
2084
2085 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2086
2087         * icall.c: precise GC support: objects can't be stored in unmanaged
2088         memory anymore, even if they are kept alive by other references: since
2089         they can move the GC needs to be able to always find them.
2090
2091 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2092
2093         * object.c: precise GC support for static fields. Support
2094         for moving GCs: write barriers and pinned allocation for interned
2095         strings.
2096
2097 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2098
2099         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2100         structure.
2101
2102 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2103
2104         * class.c, gc.c: sgen and precise GC updates.
2105
2106 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2107
2108         * marshal.h, marshal.c: added write barrier wrapper and precise type
2109         fixes.
2110
2111 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2112
2113         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2114         support.
2115
2116 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2117
2118         * reflection.c: precise and sgen GC updates.
2119
2120 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2121
2122         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2123
2124 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2125
2126         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2127
2128 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2129
2130         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2131         MONO_TYPE_OBJECT. Fixes #78462.
2132
2133 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2134
2135         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2136         and blittable types.
2137
2138 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2139
2140         * class.c (mono_class_get_exception_for_failure): Implement parts
2141         of a TODO: if the loader error is set (instead of the class
2142         error), we return a Loader exception that can be properly thrown
2143         elsewhere.
2144
2145         This was exposed by some Winforms 2.0 code that I tried to run
2146         (Atsushi pointed me to it).
2147
2148 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2149
2150         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2151         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2152         
2153         * marshal.c (emit_marshal_vtype): Add limited support for 
2154         UnmanagedType.LPStruct. Fixes #78427.
2155
2156         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2157         Applied a patch from kangaroo to fix #77523.
2158
2159 2006-05-17  Martin Baulig  <martin@ximian.com>
2160
2161         * threads.c
2162         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2163         (debugger_thread_created): Removed.
2164         (debugger_thread_exited): Removed.
2165
2166 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2167
2168         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2169
2170         * object-internals.h (MonoReflectionResource): Sync with managed version.
2171
2172 2006-05-12  Wade Berrier <wberrier@novell.com>
2173
2174         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2175
2176 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2177
2178         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2179         functions try to allocate from the image mempool.
2180
2181 2006-05-12  Dick Porter  <dick@ximian.com>
2182
2183         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2184
2185 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2186
2187         * object.c: The FieldGetter and FieldSetter methods require the full
2188         name of the class, not only the name. Fixes bug #78277.
2189
2190 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2191
2192         * loader.c (method_from_memberref): Do not pass the NULL klass to
2193         mono_loader_set_error_() methods.  Pass the non-NULL value
2194         (class). 
2195
2196 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2197
2198         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2199         (mono_assembly_close): Null out assembly->image->references after freeing it.
2200
2201         * image.c (mono_image_close): Free image->references.
2202         
2203         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2204
2205 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2206
2207         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2208         before checking if it's NULL (g_assert).
2209
2210 2006-05-10  Martin Baulig  <martin@ximian.com>
2211
2212         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2213         I thought I already killed that two months ago, but now it somehow reappeared.
2214
2215 2006-05-10  Martin Baulig  <martin@ximian.com>
2216
2217         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2218
2219 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2220
2221         * reflection.c: Allocate memory for dynamically created methods in the image
2222         mempools.
2223
2224 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2225
2226         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2227         don't use the ad pointer before checking if it's NULL (g_assert).
2228
2229 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2230
2231         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2232         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2233
2234         * marshal.c: Allocate all signatures from mempools.
2235
2236         * marshal.c: Allocate some more signatures from mempools.
2237
2238 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2239
2240         * object.c (mono_load_remote_field): The code used to provide a
2241         temporary variable for returning results if the user did not
2242         provide a result pointer.  But our temporary variable was allocted
2243         on the satck.
2244
2245         Fix calling code to always pass a result area.   Coverity ID 103.
2246
2247 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2248
2249         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2250         value, not the old. Fixes #78312.
2251         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2252
2253         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2254         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2255         per-image cache.
2256
2257         * assembly.c (mono_assembly_close): Free image->references.
2258
2259         * assembly.c (mono_assembly_names_equal): Fix a warning.
2260         (mono_assemblies_cleanup): Cleanup more global data.
2261
2262         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2263
2264         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2265         ptr_cache and image->modules.
2266
2267         * image.c (mono_image_init): Allocate array_cache lazily.
2268         
2269 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2270
2271         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2272         behavior was changed recently and has bad side effects.
2273
2274 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2275
2276         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2277         
2278         * assembly.c (mono_assembly_close): Remove a debug printf.
2279
2280         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2281
2282         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2283         to also allow for temporary references between mono_image_open ()/close ().
2284
2285         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2286
2287 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2288
2289         * marshal.c: Fix support for dynamic methods.
2290
2291         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2292
2293         * marshal.c (mono_marshal_cleanup): New cleanup function.
2294
2295         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2296         image mempools.
2297
2298         * class.c (mono_class_init): Fix leaking class->nested_classes.
2299
2300         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2301
2302         * image.c (mono_image_init): Initialize the new cashes.
2303
2304         * image.c (mono_image_close): Destroy the new cashes.
2305
2306         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2307
2308         * mempool.c (mono_mempool_strdup): New helper function.
2309
2310         * class-internals.h: Add prototype for mono_loader_unlock ().
2311
2312         * domain.c (mono_jit_info_table_find): Fix a warning.
2313         (mono_debugger_check_runtime_version): Ditto.
2314
2315         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2316         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2317         functions to these modules.
2318
2319         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2320         metadata modules.
2321         
2322         * marshal.c (mono_free_bstr): Fix a warning.
2323
2324         * assembly.c (mono_assembly_open_full): Fix another small leak.
2325
2326         * object.c: Fix some unload leaks in the remoting code.
2327
2328         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2329         function.
2330
2331         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2332
2333         * reflection.c: Fix some unload leaks in dynamic assemblies.
2334
2335 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2336
2337         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2338         * marshal.h: Add BSTR support on Win32
2339         * icall.c: Add BSTR icalls
2340         * metadata.h: Add BSTR enums
2341
2342 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2343
2344         Work to catch the crash from #76795 and turn it into an
2345         exception.   As I stubbed out pieces of the VisualBasic support,
2346         I found a number of places where the code was failing and I added
2347         checks to those places. 
2348         
2349         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2350         function return a status code.  If we fail to parse the signature
2351         from mono_metadata_parse_generic_inst, return FALSE.
2352
2353         * loader.c (mono_get_method_from_token): If we fail to load the
2354         method (mono_class_get) return NULL.   
2355
2356         * (method_from_memberref): Return NULL if we are unable to parse
2357         the method signature
2358
2359         (mono_loader_error_prepare_exception): Since we now use the
2360         loader_error flag internally to stop processing, and obtaining
2361         exceptions that might be thrown will walk this code path the
2362         proper way of going from a MonoLoaderError into a
2363         MonoException was convoluted.   This new routine encapsulates the
2364         process of turning the error into an exception and *clearing* the
2365         error afterwards.
2366         
2367 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2368
2369         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2370         with missing assemblies), and to cope with:
2371
2372                 * Missing fieldref from a non-existing assembly.
2373                 * Missing methodref from a non-existing assembly.
2374
2375         The first batch of work to address *some* of the issues from 76661.
2376         
2377         * object.c (mono_class_create_runtime_vtable): If we fail to
2378         initialize the class raise the exception here. 
2379
2380         * metadata.c (mono_class_get_overrides_full): If any methods fail
2381         to load return the failure to the caller.
2382
2383         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2384         flagging assemblies that failed to load.   
2385
2386         Do not crash if we are unable to load the assembly.
2387
2388         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2389         assemblies. 
2390
2391         * loader.c (mono_loader_set_error_type_load): Change the
2392         convention to always pass unallocated strings, so we make our own
2393         copies (I know our own code had duplicated strings before, but
2394         this keeps the normal conventions).
2395         (method_from_memberref): Call mono_loader_set_error_method_load
2396         for all possible failures of loading the class. 
2397         Remove assert, turn into a loader error.
2398
2399         (mono_loader_error_to_exception): Move this routine from mini
2400         (mini_loader_error_to_exception) there was no need to have that in
2401         mini. 
2402
2403         * class.c (mono_class_from_typeref): If we were not able to load
2404         the assembly with mono_assembly_load_reference, call the
2405         mono_loader_set_error_type_load to register the problem.
2406
2407         (mono_class_setup_fields): If we fail to load the type from
2408         mono_metadata_parse_type_full, call mono_class_set_failure and
2409         break from the loop.
2410
2411         If class->exception_type is set, we do not layout the fields as
2412         that might crash the runtime, and instead return (from breaking
2413         from the previous loop).
2414
2415         (mono_class_setup_vtable): This now returns a boolean indicating
2416         whether the table was properly setup.   The decision is driven by
2417         mono_class_get_overrides_full which might run into non-existing
2418         methods. 
2419         
2420         (mono_class_init): Returns TRUE on success or FALSE if there was a
2421         problem in loading the type (incorrect assemblies, missing
2422         assemblies, methods, etc).
2423
2424         When we call mono_class_setup_fields we also check for a potential
2425         error inside this call (either a class exception or a general
2426         loader exception).
2427
2428         (mono_class_create_from_typedef): If the parent fails to load
2429         (calling mono_class_get_full) return NULL.
2430         
2431         ** Important **
2432
2433         calls to mono_metadata_parse_type_full should be checked
2434         everywhere and set the mono_class_set_failure
2435         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2436
2437         The current patch checks the places where my manually constructed
2438         tests show the errors are showing up, but we should do it
2439         everywhere. 
2440
2441         ** Important2 **
2442
2443         mono_class_init return values should be tested everywhere, like
2444         the previous case this is something that we should audit
2445         everywhere and not only on the cases exposed by the tests I
2446         created. 
2447
2448 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2449
2450         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2451         boolean parameter and instead pass the information on `options'
2452         parameter (FileOptions).
2453
2454         * icall.c: Register the new signature for MonoIO.Open.
2455
2456         * debug-helpers.c (dis_one): Trying to understand how coverity
2457         works.  Fix Run 5, item 78.
2458
2459 2006-04-26  Dick Porter  <dick@ximian.com>
2460
2461         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2462         dereference.
2463
2464 2006-04-25  Martin Baulig  <martin@ximian.com>
2465
2466         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2467
2468         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2469         debugger_thread_created().
2470         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2471         special way.
2472         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2473         (mono_debugger_finalize_threads): New function; undo the effects
2474         of mono_debugger_init_threads().
2475         (mono_debugger_create_all_threads): Removed.
2476
2477 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2478
2479         * image.c (mono_image_close): Tidy up trace messages.
2480
2481         * assembly.c (mono_assembly_close): Ditto.
2482
2483         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2484         no longer references an already freed assembly. Fixes #78168.
2485
2486 2006-04-21  Dick Porter  <dick@ximian.com>
2487
2488         * threads.c (mono_thread_detach): Fix reference counting when
2489         detaching threads.
2490
2491 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2492
2493         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2494         #78155.
2495
2496 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2497
2498         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2499         (mono_type_to_stind): Ditto.
2500
2501         * marshal.c: Use the new helper functions to simplify code.
2502
2503         * image.c (mono_image_close): Add some code for help debug assembly unloading
2504         problems.
2505
2506         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2507         image mempool.
2508
2509         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2510         assembly was already loaded in another appdomain. Fixes #78083.
2511
2512 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2513
2514         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2515         referenced assemblies.
2516         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2517
2518         * domain.c (mono_domain_free): Add a trace message.
2519
2520         * appdomain.c (add_assemblies_to_domain): Ditto.        
2521
2522         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2523         field.  
2524
2525 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2526
2527         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2528
2529 2006-04-12  Martin Baulig  <martin@ximian.com>
2530
2531         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2532         `USE_INCLUDED_LIBGC'.   
2533
2534 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2535
2536         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2537         the patch contains ../ and a small directory name later. Hopefully fixes
2538         #78035.
2539
2540 2006-04-10  Martin Baulig  <martin@ximian.com>
2541
2542         Clean up the debugger's thread-handling code.
2543
2544         The debugger's thread-handling code has been moved from
2545         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2546         over the `threads' hash, keep track of exiting threads and also
2547         use proper locking.
2548
2549         We can now debug XSP and XSP based applications with the debugger.
2550
2551         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2552
2553         * threads.h
2554         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2555         (mono_install_thread_callbacks): Likewise.      
2556
2557         * threads.c (mono_thread_callbacks): Removed.
2558         (debugger_thread_created, debugger_thread_exited): New static functions.
2559         (start_wrapper): Call debugger_thread_created().
2560         (thread_cleanup): Call debugger_thread_exited().
2561         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2562         (mono_debugger_init_threads): New public function.
2563         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2564         iterate directly over the `threads' hash and also use proper locking.
2565
2566         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2567
2568         * mono-debug-debugger.h
2569         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2570
2571 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2572
2573         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2574         argument type=array. Fixes #78057.
2575
2576 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2577
2578         * culture-info-table.h : regenerated. Fixed bug #69652.
2579
2580 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2581
2582         * loader.c metadata.c: Reapply a variant r59116.
2583         
2584         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2585
2586         * class.c (mono_class_setup_interface_offsets): New internal function.
2587
2588         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2589         interfaces too. Fixes #77398.
2590
2591         * reflection.c (encode_cattr_value): Add support for 
2592         parameter type=object, argument type=array.
2593         (load_cattr_value): Ditto. Fixes #77916.
2594
2595         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2596         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2597
2598         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2599         a byval char array and CharSet is Ansi.
2600
2601         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2602
2603 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2604
2605         * metadata.c: Add some locking comments.
2606         
2607         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2608         mempool.
2609         (mono_metadata_free_method_signature): Don't free the signature itself.
2610
2611         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2612
2613         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2614         reference the same MonoImage.
2615         (mono_assembly_load_from_full): Add an assert.
2616
2617 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2618
2619         * image.c (mono_image_close): Don't put the image we are about to free into the
2620         loaded_images_guid_hash.
2621
2622         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2623         to reduce code duplication.
2624
2625         * marshal.c: Register the native functions called by this module as icalls, to
2626         somewhat centralize the creation of MonoMethodSignature's.
2627
2628         * loader.c (mono_method_signature): Add a cache for method signatures.
2629
2630         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2631         the parameter attributes of a method.
2632         (mono_metadata_parse_method_signature_full): Refactored the computation of
2633         parameter attributes into a separate function. Also avoid one allocation in
2634         most cases.
2635
2636         * assembly.c (mono_assembly_close): Ditto.
2637
2638         * image.c (mono_image_close): Log trace messages with INFO level.
2639
2640         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2641
2642         * image.c reflection.c: Correct reference counting of image modules.
2643         
2644         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2645         of this function from the image mempool.
2646         
2647         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2648         to allow more cached types to be used.
2649
2650         * mono-debug.c (mono_debug_add_method): Appled patch from
2651         David S. Miller  <davem@sunset.davemloft.net>: Access 
2652         minfo->lexical_blocks[] entry elements using read32().
2653
2654 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2655
2656         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2657         methods as it is allocated from the mempool.
2658
2659         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2660         image mempool.
2661
2662         * metadata-internals.h: Add comments describing the reference counting scheme
2663         used for MonoImage and MonoAssembly.
2664
2665         * image.c assembly.c reflection.c: Rework reference counting of images and 
2666         assemblies so they are freed when the runtime is shut down. Free some 
2667         additional memory structures when an image is unloaded.
2668         
2669 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2670
2671         * class.c loader.c reflection.c: Allocate more data structures in
2672         the image mempool.
2673
2674 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2675
2676         * icall.c
2677         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2678         build on pre glib 2.4 systems.
2679
2680 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2681
2682         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2683
2684         * icall.c: Fix some warnings.
2685
2686 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2687
2688         * culture-info-table.h : regenerated.
2689
2690 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2691
2692         * threads.c, object-internals.h, verify.c: changed the culture caching
2693         code to use a normal MonoArray for storage so the GC can keep track of
2694         them easily. Fixed bits of the cache logic, too and simplified the
2695         code.
2696
2697 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2698
2699         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2700         thread for non-Boehm GCs.
2701
2702 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2703
2704         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2705         needed to keep track of the data for static fields.
2706
2707 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2708
2709         Fix #75172
2710         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2711         for interface classes.  Use 'num_methods' instead.
2712         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2713         before using '->vtable_size' field.
2714
2715 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2716
2717         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2718         doesn't contain managed pointers, so use a normal hashtable.
2719
2720 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2721
2722         * reflection.c, class-internals.h, domain.c: fixed handling of types
2723         used as values for objects in custom attributes (bug #77915):
2724
2725 2006-03-24  Martin Baulig  <martin@ximian.com>
2726
2727         * class.c (mono_class_setup_fields): Added support for generic
2728         instances; fixes #77580.
2729
2730 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2731
2732         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2733
2734 2006-03-24  Dick Porter  <dick@ximian.com>
2735
2736         * file-io.c (get_file_attributes): More stat macro breakage.
2737         Fixes bug 77759.
2738
2739 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2740
2741         * profiler.c: added the file=filename option in the default profiler
2742         to output the profile data to filename.
2743
2744 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2745
2746         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2747         bug #77877.
2748
2749 2006-03-22  Martin Baulig  <martin@ximian.com>
2750
2751         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2752         allocated `MonoClassField *' in `fb->handle'.
2753
2754 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2755
2756         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2757         allocate interface ID to save memory and allow better ID reuse on
2758         appdomain unload. setup_generic_vtable () removal from Martin.
2759
2760 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2761
2762         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2763         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2764         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2765         write barriers for reference stores with managed objects accessed with
2766         C structures in the runtime and in embedding programs.
2767
2768 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2769
2770         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2771         'interface_id' and 'max_interface_id' fields of MonoClasses
2772         representing open generic types.
2773
2774 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2775
2776         * object.h, object.c, icall.c: added functions to deal with
2777         storing valuetypes that contain references in managed objects.
2778         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2779         fixes and comments around uses of mono_array_addr ().
2780
2781 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2782
2783         * object.h, icall.c, monitor.c: object.GetHashCode ()
2784         implementation that supports the moving garbage collector.
2785
2786 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2787
2788         * icall.c, threads-types.h, threads.c: implemented finalizer for
2789         LocalDataStoreSlot.
2790
2791 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2792
2793         * metadata.c (mono_type_size): Add a fixme.
2794         (mono_type_stack_size): Ditto.
2795
2796         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2797         'type_forwarders' field.
2798
2799         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2800         attribute from net 2.0.
2801
2802         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2803         from class.c.
2804
2805         * class.c (mono_class_setup_fields): Fix a warning.
2806         
2807         * class.c (mono_class_from_name): Add support for assemblyref entries
2808         in the EXPORTEDTYPE table.
2809
2810         * reflection.c: Add support for handling type forwarders under net 2.0.
2811
2812         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2813         
2814 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2815
2816         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2817         overwriting entries in ModuleBuild->types, also clean up the code
2818         a little. Fixes #77774.
2819
2820 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2821
2822         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2823         load friend assembly info when present.
2824
2825 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2826
2827         Fix crasher on gtest-158.cs.
2828         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2829         the return value if the MonoClass we want is yet in an
2830         inconsistent state.
2831         * class.c (mono_class_create_from_typedef): Add an comment
2832         explaining an order dependency between mono_class_setup_parent and
2833         mono_class_setup_mono_type.
2834
2835 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2836
2837         * class.c: documentation updates and events bug fix.
2838
2839 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2840
2841         * class.c: some cleanup, locking fixes.
2842
2843 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2844
2845         * class.c: fix the generics code to setup nested
2846         type info to the instantiated type (bug #77770).
2847
2848 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2849
2850         * marshal.c: fixed a few type correctness issues.
2851
2852 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2853
2854         * loader.c: the Set/Get/Addrtess array methods should be public.
2855
2856 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2857
2858         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2859         
2860         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2861         info->wrapper.
2862
2863 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2864
2865         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2866
2867         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2868
2869         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2870         (mono_mempool_alloc0): Ditto.
2871
2872 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2873
2874         * socket-io.c:
2875         (create_object_from_sockaddr): it was allocating 4 extra bytes
2876         for the AF_UNIX data. Fixes bug #77747.
2877
2878 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2879
2880         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2881
2882 2006-03-09  Dick Porter  <dick@ximian.com>
2883
2884         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2885         Fixes bug 76966 again.
2886
2887 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2888
2889         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2890         names from r57532
2891         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2892
2893 2006-03-07  Martin Baulig  <martin@ximian.com>
2894
2895         * object.c
2896         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2897
2898 2006-03-07  Martin Baulig  <martin@ximian.com>
2899
2900         * class.c
2901         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2902         regression introduced in r56970; see gtest-252.cs.
2903
2904         * loader.c (mono_get_method_constrained): Correctly handle generic
2905         methods; see gtest-253.cs.
2906
2907 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2908
2909         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2910
2911 2006-03-04  Martin Baulig  <martin@ximian.com>
2912
2913         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2914         compute the parent type at runtime, just like we're already doing
2915         it for interfaces.
2916
2917         * reflection.c
2918         (mono_reflection_bind_generic_parameters): Don't compute the
2919         parent type anymore.
2920
2921         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2922
2923 2006-03-04  Martin Baulig  <martin@ximian.com>
2924
2925         * mono-debug-debugger.h
2926         (mono_debugger_create_notification_function): Allocate memory at
2927         runtime and return a pointer to it.
2928
2929 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2930
2931         * assembly.c: Fix windows build.
2932         
2933         * assembly.c: Fix build.
2934
2935         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2936
2937         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2938         
2939 2006-03-03  Dick Porter  <dick@ximian.com>
2940
2941         * process.c
2942         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2943         Check parameters before dereferencing them.  Fixes Aaron's part of
2944         bug 77393.
2945
2946 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2947
2948         Fix performance regression.
2949         * loader.c (find_method_in_class): Add 'from_class' argument.
2950         Rename 'klass' argument to 'in_class'.  The signature is compared
2951         against the method in 'in_class', and the corresponding method is
2952         returned from 'from_class'.
2953         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2954         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2955         type definition and generic instantiation in parallel.
2956         (mono_get_method_constrained): Update to changes.
2957
2958 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2959
2960         * threads.c: make sure the domain is correct, too when doing
2961         mono_thread_attach ().
2962
2963 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
2964
2965         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
2966         windows. Fixes #77683.
2967
2968 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2969
2970         * object.h, *: introduced specific way to set elements of an array
2971         of references to be used as write barrier. Still need to audit the
2972         uses of mono_array_addr.
2973
2974 2006-03-01  Miguel de Icaza  <miguel@novell.com>
2975
2976         * object-internals.h: New field to cache the assmebly name, patch
2977         from Tambet Ingo (tambet@ximian.com)
2978
2979 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2980
2981         * decimal.h, class-internals.h, metadata-internals.h,
2982         file-io.h: mark a few function declarations as internal, to
2983         reduce the number of PLT entries.
2984
2985 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2986
2987         * file-io.c: fix typo in warning message.
2988
2989 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
2990
2991         * loader.c: on unix, lookup the "*A" version of a function
2992         if charset is auto as a second option before failing.
2993
2994 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2995
2996         * class.h (mono_class_inflate_generic_method): Revert to two
2997         argument version.
2998         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
2999         (mono_class_inflate_generic_method_full): Add.
3000         * class.c (mono_class_inflate_generic_method_full): Rename from
3001         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3002         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3003         * loader.c, reflection.c: Update to changes.
3004
3005 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3006
3007         * icall.c: const fixes and small improvements.
3008
3009 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3010
3011         * threadpool.c: for asynchronous connect(), enable the same workaround
3012         for BSD 6 as for the Mac. Fixes bug #77637.
3013
3014 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3015
3016         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3017         formatted classes. Fixes #77524.
3018
3019 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3020
3021         * class.c (inflate_generic_type): Add a couple more
3022         micro-optimizations.
3023         (inflate_generic_context): Don't use the 'gmethod' from
3024         'inflate_with'.
3025         (mono_class_inflate_generic_method): If the method has generic
3026         parameters, but the passed-in context doesn't have a 'gmethod',
3027         create one.  Use the possibly simplified generic instantiation
3028         from the declaring class instead of the one passed in.
3029
3030 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3031
3032         Make generic method signature and method header handling lazy.
3033         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3034         (inflate_generic_header): Likewise.
3035         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3036         parameter to avoid inflating types.
3037         (mono_get_inflated_method): Empty out.
3038         * class.h (mono_class_inflate_generic_method): Update to changes.
3039         * loader.c (mono_get_method_from_token): Don't parse signature for
3040         generic methods, nor methods of generic classes.
3041         (mono_method_signature): Rename from 'mono_method_signature'.
3042         Inflate signature on demand.
3043         (mono_method_get_header): Inflate method header on demand.
3044         * reflection.c: Update to changes.
3045
3046 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3047
3048         * metadata.c (mono_metadata_inflate_generic_inst): If the
3049         instantiation is closed, don't bother expanding it in the new
3050         context.
3051         * class.c (inflate_generic_class): If the generic instantiation
3052         doesn't change after inflation, return the argument itself.
3053         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3054         Add bounds checks.
3055         (inflate_generic_context): If neither the generic class nor the
3056         generic method instantiations change, return the original context.
3057         * reflection.c (mono_method_get_object): Do
3058         'mono_get_inflated_method' before accessing the ->klass field.
3059         (inflate_mono_method): Don't create a MonoGenericMethod unless
3060         necessary.
3061         (inflate_method): Don't pass a constructed type as the declaring
3062         type of a methodbuilder.
3063
3064 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3065
3066         * object.c: fix memory overwrite.
3067
3068 2006-02-22  Dick Porter  <dick@ximian.com>
3069
3070         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3071         it doesn't work any more.
3072         (mono_threads_request_thread_dump): Fix unused variable warnings.
3073
3074 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3075
3076         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3077         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3078         the public header file.
3079
3080 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3081
3082         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3083
3084 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3085
3086         * class-internals.h, object.c: reduce the size of MonoVTable
3087         and store the interface_offsets array at negative offsets.
3088
3089 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3090
3091         * metadata.c: tweak table descriptors data structures to reduce
3092         size and runtime relocations.
3093
3094 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3095
3096         * marshal.c: fix some types and opcodes to be type-safe
3097         in marshaling wrappers.
3098
3099 2006-02-21  Ankit Jain  <jankit@novell.com>
3100
3101         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3102
3103 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3104
3105         * metadata.c (get_constraints): Relax debugging checks for monodis.
3106
3107 2006-02-21  Ankit Jain  <jankit@novell.com>
3108
3109         * metadata.c (mono_metadata_load_generic_params): Move the code
3110         checking for ambiguous generic params from here to mono/dis/get.c
3111         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3112
3113 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3114
3115         Fix assertion triggered when compiling nemerle.
3116         * class.c (mono_get_shared_generic_inst): Rename from
3117         get_shared_inst and make non-static.
3118         * loader.c (mono_get_shared_generic_method): New.  Used to create
3119         the MonoGenericContext-equivalent of a MonoGenericContainer.
3120         (mono_get_method_from_token): Initialize the 'context' field of
3121         the created MonoGenericContainer.
3122         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3123         * metadata.c (get_constraints): Add sanity check.
3124         * class-internals.h: Add new internal methods.
3125
3126         * reflection.c (verify_safe_for_managed_space): New sanity check.
3127         Currently checks that owner-less generic parameters aren't allowed
3128         in managed space.
3129         (mono_type_get_object): Use it.
3130         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3131         that are now in mono_type_get_object.
3132         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3133
3134 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3135
3136         * metadata.c (mono_type_create_from_typespec): Rename from
3137         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3138         argument and caching of types in the generic container.
3139         (unwrap_arrays, find_generic_param): Remove.
3140         * metadata-internals.h: Update.
3141         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3142
3143 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3144
3145         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3146
3147         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3148         return values. Fixes #77581.
3149
3150         * class.c (mono_fnptr_class_get): Switch name and name_space.
3151
3152         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3153         classes and add support for [In, Out] attributes.
3154         (mono_marshal_free_asany): Ditto. Fixes #77524.
3155
3156 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3157
3158         * class.c (mono_class_from_generic_parameter): Make more robust to
3159         incomplete MonoGenericContainers from monodis.
3160
3161 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3162
3163         * class-internals.h: added some more exception types.
3164         * class.c, metadata.c: added a few checks to handle missing
3165         types.
3166
3167 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3168
3169         Use owner-less generic-params some more.
3170         * class.c (my_mono_class_from_generic_parameter): Remove.
3171         (mono_class_from_generic_parameter): Handle null image,
3172         param->name and param->owner.
3173         (mono_class_from_mono_type): Update.
3174         (mono_class_create_from_typespec): Remove 'container' parameter.
3175         If that parameter is non-null, the result is always inflated by
3176         'mono_class_get_full' anyway.
3177         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3178         parameter.
3179         (mono_class_get_full): Update.
3180
3181         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3182         instance is not open, don't bother inflating.
3183         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3184         parse metadata for inflated classes.
3185         (_mono_class_get): Change GenericContext* parameter to
3186         GenericContainer*.
3187         (mono_class_create_from_typespec): Likewise.  Simplify, and
3188         implement trivially.  All the cases are handled in
3189         mono_class_from_mono_type.  Don't inflate returned class.
3190         (mono_class_get_full): Delegate GENERICINST optimization to
3191         inflate_generic_type.
3192         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3193
3194 2006-02-16  Dick Porter  <dick@ximian.com>
3195
3196         * socket-io.c (create_object_from_sockaddr): Fix typo.
3197         (create_sockaddr_from_object): Check array lengths before
3198         potentially accessing items off the end.
3199         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3200         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3201         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3202         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3203         length checks to avoid wraparound overflows.
3204         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3205         contents of the array of sockets
3206         (hostent_to_IPHostEntry2)
3207         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3208         Check return value of inet_ntop ().
3209         (addrinfo_to_IPHostEntry): Fix typo
3210
3211 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3212
3213         Type metadata parsing doesn't use generic-instantiation information.
3214         * metadata.c (mono_metadata_parse_array_full): Change
3215         MonoGenericContext* parameter to MonoGenericContainer*.
3216         (mono_metadata_parse_type_full): Likewise.
3217         (mono_type_create_from_typespec_full): Likewise.
3218         (mono_metadata_parse_mh_full): Likewise.
3219         (mono_metadata_parse_generic_inst): Likewise.
3220         (do_mono_metadata_parse_generic_class): Likewise.
3221         (do_mono_metadata_parse_type): Likewise.
3222         * metadata-internals.h: Update to changes.
3223         * class.c (mono_class_find_enum_basetype): Likewise.
3224         (mono_class_setup_fields): Likewise.
3225         (mono_class_create_from_typespec): Likewise.
3226         * loader.c (method_from_methodspec): Likewise.
3227         (mono_get_method_from_token): Likewise.
3228         (mono_method_get_header): Likewise.
3229
3230 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3231
3232         * marshal.c: handle additional GENERICINST case (patch from
3233         Thong Nguyen <tum@veridicus.com>).
3234         Fix a few cases where LDIND_I/STIND_I was used for references.
3235
3236 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3237
3238         * reflection.c (mono_reflection_get_token): Remove unused variable.
3239
3240 2006-02-16  Martin Baulig  <martin@ximian.com>
3241
3242         * reflection.c (mono_reflection_get_token): Add support for fields
3243         in instantiated generic types.
3244
3245         * icall.c
3246         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3247
3248 2006-02-15  Martin Baulig  <martin@ximian.com>
3249
3250         * icall.c
3251         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3252         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3253         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3254         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3255
3256 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3257
3258         * class.c, metadata.c, metadata.h, object.c, icall.c,
3259         marshal.c: changed mono_type_get_underlying_type () to do
3260         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3261         Fixed handling of instantiated generic valuetypes (bug #75479).
3262
3263 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3264
3265         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3266         Delegate to mono_metadata_decode_value, and work on the returned value.
3267
3268         * icall.c (ves_icall_MonoType_GetGenericArguments):
3269         Add consistency check here too.
3270         
3271 2006-02-15  Ankit Jain  <jankit@novell.com>
3272
3273         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3274         char/short etc.
3275
3276 2006-02-15  Ankit Jain  <jankit@novell.com>
3277
3278         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3279         signed values, used only for representing lower bounds of arrays.
3280         (mono_metadata_parse_array_full): Use new
3281         mono_metadata_decode_signed_value to decode lower bounds.
3282
3283 2006-02-14  Martin Baulig  <martin@ximian.com>
3284
3285         * reflection.c
3286         (mono_reflection_get_token): Support "MonoGenericMethod" and
3287         "MonoGenericCMethod" and allow generic instances / methods.
3288
3289 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3290
3291         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3292         to obtain the terminal size using an ioctl.
3293
3294         * object.c (mono_nullable_init): Revert this as nullable reference
3295         types are not valid.
3296         (mono_nullable_box): Ditto.
3297
3298 2006-02-09  Dick Porter  <dick@ximian.com>
3299
3300         * threads.c (mono_thread_detach): Drop a reference to the thread
3301         we're detaching.
3302
3303 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3304
3305         * object.c (mono_nullable_init): Handle nullable reference types.
3306         (mono_nullable_box): Ditto. Fixes #77446.
3307
3308 2006-02-07  Martin Baulig  <martin@ximian.com>
3309
3310         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3311
3312 2006-02-07  Ankit Jain  <jankit@novell.com>
3313
3314         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3315         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3316         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3317         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3318         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3319         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3320
3321 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3322
3323         * class.c (mono_class_create_generic): Set type_token as well.
3324
3325         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3326         compatible with MS.
3327
3328 2006-02-02  Martin Baulig  <martin@ximian.com>
3329
3330         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3331         has never been used so far.
3332
3333 2006-02-02  Martin Baulig  <martin@ximian.com>
3334
3335         * mono-debug-debugger.h: Changed comment at the top of this file;
3336         the header is not installed, but it's safe to #include it from
3337         within the JIT.
3338
3339         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3340         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3341
3342 2006-02-02  Martin Baulig  <martin@ximian.com>
3343
3344         * mono-debug.h
3345         (MonoSymbolTable): Removed the `metadata_info' field.
3346
3347         * mono-debug.c
3348         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3349
3350         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3351         (mono_debugger_add_builtin_types): Removed.
3352         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3353         (mono_debugger_create_notification_function): We now operate on a
3354         pre-allocated area; take a `gpointer' and return `void'.
3355
3356         * mono-debug-debugger.c
3357         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3358         (mono_debugger_add_builtin_types): Removed.
3359
3360 2006-02-02  Martin Baulig  <martin@ximian.com>
3361
3362         * threads.c (mono_debugger_create_all_threads): New public method.
3363
3364 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3365
3366         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3367         breaks on several platforms.
3368
3369 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3370
3371         * assembly.c: the VS.NET build doesn't supply default values for
3372         MONO_ASSEMBLIES and MONO_CFG_DIR.
3373
3374 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3375
3376         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3377         helper function.
3378
3379         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3380
3381         * loader.c (method_from_memberref): Fix a warning.
3382
3383         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3384
3385         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3386         with explicit layout. Fixes #77433.
3387
3388 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3389
3390         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3391         max_interface_id is initialized before using it. Fixes #77398.
3392         (ves_icall_Type_GetInterfaces): Ditto.
3393
3394 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3395
3396         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3397         allocate memory for parameter attributes when parsing memberref
3398         signatures.
3399         * loader.c (mono_loader_set_error_method_load): Don't warn.
3400         (method_from_memberref): Ensure MissingMethodException gets thrown
3401         if method is not found.  Make warning more informative.
3402
3403 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3404
3405         Fix #77397
3406         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3407         return true if is byref.
3408         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3409         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3410         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3411
3412 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3413
3414         Fix tests/find-method.2.il
3415         * loader.c (find_method, find_method_in_class): Remove is_inflated
3416         argument.  Revert 2006-01-18 change.
3417         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3418         is generic, search for method in its generic definition.
3419         * class.c (mono_class_setup_vtable_general): Print generic
3420         arguments of generic types in debugging printf.
3421
3422 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3423
3424         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3425
3426         * threads.c (mono_threads_request_thread_dump): New helper function.
3427
3428 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3429
3430         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3431
3432 2006-01-25  Ankit Jain  <jankit@novell.com>
3433
3434         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3435         move definition to ..
3436         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3437         
3438 2006-01-25  Ankit Jain  <jankit@novell.com>
3439             Raja R Harinath  <rharinath@novell.com>
3440
3441         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3442         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3443         as necessary.
3444
3445 2006-01-25  Martin Baulig  <martin@ximian.com>
3446
3447         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3448         `MonoDebuggerThread' into debug-debugger.c.
3449
3450 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3451
3452         * profiler.c: fix printing of data.
3453
3454 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3455
3456         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3457           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3458
3459 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3460
3461         * object.c: fix deadlock related to string interning.
3462
3463 2006-01-23  Martin Baulig  <martin@ximian.com>
3464
3465         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3466
3467         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3468
3469 2006-01-23  Martin Baulig  <martin@ximian.com>
3470
3471         * mono-debug.h: Moved the prototypes of some functions which are
3472         used by the JIT here from mono-debug-debugger.h.
3473
3474 2006-01-21  Martin Baulig  <martin@ximian.com>
3475
3476         * Makefile.am: Don't install mono-debug-debugger.h.
3477
3478 2006-01-21  Martin Baulig  <martin@ximian.com>
3479
3480         * mono-debug-debugger.h: Enforce the private status of this header
3481         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3482         Moved some stuff from mono-debugger-jit-wrapper.h here.
3483
3484 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3485
3486         * class.c (mono_class_from_typeref): Add a sanity test to help
3487         catch lack of assembly load/search hooks.
3488
3489 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3490
3491         * marshal.c (emit_struct_conv): Relax the fields with same offset
3492         check even more. Fixes #77230.
3493
3494 2006-01-18  Martin Baulig  <martin@ximian.com>
3495
3496         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3497         argument; if false, we compare the uninstantiated signatures.
3498         (method_from_memberref): Compare the uninstantiated signatures;
3499         fixes #76417.
3500
3501 2006-01-18  Robert Jordan  <robertj@gmx.net>
3502
3503         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3504         Clear the weak link. Fixes bug #77170.
3505
3506         * gc.c (mono_gchandle_free):
3507         Reflect *-gc.c changes (tiny optimization).
3508
3509 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3510
3511         * metadata.c (mono_metadata_signature_dup): Applied patch from
3512         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3513         Fixes #77288.
3514
3515 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3516
3517         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3518         marshalling from native to managed code. Fixes #77230.
3519
3520 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3521
3522         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3523         connect. Fixes bug #77020.
3524
3525 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3526
3527         * class.c: fixed id assignement for nested interfaces (bug #77275).
3528         Added also better info for --print-vtable debugging.
3529
3530 2006-01-12  Martin Baulig  <martin@ximian.com>
3531
3532         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3533         interfaces on-the-fly; fixes #76625.
3534
3535         * class-internals.h
3536         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3537         don't need that anymore.
3538
3539 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3540
3541         * socket-io.c
3542         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3543         To avoid initing the nested_classes when not needed I turned the
3544         PeerCredData as a toplevel internal class, as it has to be shared
3545         anyways. 
3546
3547         Fixes the CASA issue.
3548
3549 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3550
3551         * domain.c: Accessors for MonoJitInfo
3552
3553         * profiler-private.h: Add jitinfo to the end jit hook
3554
3555         * profiler.[ch]: Define new hooks, called after jitting which give
3556         the MonoJitInfo that was compiled
3557
3558 2006-01-10  Martin Baulig  <martin@ximian.com>
3559
3560         * class.c (mono_class_setup_events): Add support for generic
3561         classes; fixes #76440.
3562
3563 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3564
3565         Fix #77160.
3566         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3567         on passed-in method.
3568
3569 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3570
3571         * object.c (mono_runtime_invoke_array): Add Nullable support.
3572
3573         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3574
3575 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3576
3577         * file-io.c: Don't consider sockets as directory and avoid an endless
3578         loop. Fix bug #76966.
3579
3580 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3581
3582         * object.c (mono_nullable_init): New helper function.
3583         (mono_nullable_box): Ditto.
3584
3585         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3586
3587         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3588
3589         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3590         
3591 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3592
3593         * class.c (mono_class_is_assignable_from): Make T assignable to 
3594         Nullable<T>.
3595
3596 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3597
3598         * appdomain.c: Bump corlib version to 46.
3599         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3600         serialization purpose) and changed ves_icall_System_Reflection_
3601         Assembly_get_code_base signature to accept a boolean (to escape, or 
3602         not, the assembly code base).
3603
3604 2005-12-23  Dick Porter  <dick@ximian.com>
3605
3606         * icall.c: 
3607         * threads-types.h: 
3608         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3609         CreateEvent icall now returns "created" boolean parameter.
3610
3611 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3612
3613         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3614         #76967.
3615
3616         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3617         when attr_klass is an interface. Fixes #77045.
3618
3619 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3620
3621         * marshal.c (emit_struct_conv): Fix previous patch.
3622         
3623         * marshal.c (emit_struct_conv): Add a check for fields with the same
3624         offset.
3625
3626 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3627
3628         Fix regression in Mono.C5.
3629         * class.c (mono_class_create_generic): If 'klass' is an interface
3630         set up the interface offsets.
3631         (mono_class_is_assignable_from): Don't throw away generic arguments.
3632
3633 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3634
3635         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3636         type parameters.
3637
3638 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3639
3640         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3641         dead store.
3642         (do_mono_metadata_parse_generic_class): Don't pass the current
3643         generic context when parsing the type being instantiated: it
3644         cannot use it, anyway.
3645
3646         * loader.c (method_from_memberref): Don't inflate a signature if
3647         it doesn't contain any type parameters.
3648
3649 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3650
3651         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3652
3653 2005-12-14  Martin Baulig  <martin@ximian.com>
3654
3655         * class.c
3656         (mono_type_get_name_recurse): Don't return null for type
3657         parameters and open generic classes.
3658         (mono_class_setup_methods): Don't exclude generic instances.
3659         (mono_get_unique_iid): Use different IDs for different
3660         instantiations of the same generic type.
3661         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3662         open generic instances; create a normal vtable for closed generic
3663         instances.
3664         (mono_class_setup_vtable_general): We're now also called for
3665         closed generic instances.
3666
3667         * reflection.c
3668         (mono_reflection_bind_generic_parameters): Correctly use
3669         mono_metadata_lookup_generic_inst() everywhere.
3670
3671 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3672
3673         * object.c (mono_class_create_runtime_vtable): Call 
3674         mono_class_setup_vtable ().
3675
3676         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3677         function.
3678         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3679         #76959.
3680
3681         * loader.c (mono_loader_set_error_type_load): Print the type load
3682         warnings to the console so they are more visible to the user.
3683         (mono_loader_set_error_method_load): Ditto.
3684
3685         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3686         is still broken.
3687         
3688         * reflection.c (ensure_runtime_vtable): Fix build.
3689
3690         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3691         doesn't work in all cases.
3692
3693 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3694
3695         * object.c (mono_array_new_full): Treat a single dimensional array
3696         with 0 lower bounds as an szarray. Fixes #76973.
3697
3698         * reflection.c (custom_attr_visible): Really fix this.
3699
3700 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3701
3702         * reflection.c (custom_attr_visible): Allow nested public attributes
3703         as well.
3704
3705         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3706         interface check.
3707
3708 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3709
3710         * class.c (set_generic_param_owner): Delete.
3711         (mono_class_create_from_typedef): Don't set ->owner field of
3712         generic parameters to "param containers" of enclosing classes.
3713         * reflection.c (mono_reflection_initialize_generic_parameter):
3714         Likewise.
3715
3716 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3717
3718         * reflection.c (custom_attr_visible): Fix build.
3719
3720 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3721
3722         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3723         private attributes.
3724         
3725         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3726         handling of null parameter defaults.
3727
3728 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3729
3730         * class.c (mono_class_from_generic_parameter): Don't set
3731         klass->generic_container.
3732         (my_mono_class_from_generic_parameter): Likewise.
3733
3734 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3735
3736         * reflection.c (load_public_key): Fix a warning.
3737         (method_encode_code): Fix unaligned accesses.
3738
3739 2005-12-07  Martin Baulig  <martin@ximian.com>
3740
3741         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3742
3743         * reflection.c
3744         (write_generic_param_entry): Encode our custom attrs.
3745
3746         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3747
3748 2005-12-07  Martin Baulig  <martin@ximian.com>
3749
3750         * reflection.c (encode_new_constraint): Removed; we don't use the
3751         `NewConstraintAttribute' anymore.
3752
3753 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3754
3755         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3756         not fire a TypeResolve event when Assembly.GetType () is called.
3757
3758 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3759
3760         Beginning of support for nullable types in the runtime. Parts of
3761         this patch are from Martin.
3762
3763         * appdomain.c (MONO_CORLIB_VERSION): Bump
3764
3765         * domain.c (mono_init_internal): get the nullable type
3766
3767         * class.c (mono_class_is_nullable): New method
3768         (mono_class_get_nullable_param): New mehod
3769         (mono_class_create_generic): In types T? set cast_class to T
3770
3771         * class-internals.h (MonoDefaults): new nullable default class
3772         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3773         new methods.
3774
3775 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3776
3777         * metadata.c (select_container): New.  Refactor code to select the
3778         appropriate GenericContainer given the type of generic parameter
3779         we are looking for.
3780         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3781         not a MonoGenericContext.  Use select_container.  Update parameters.
3782         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3783         and MONO_TYPE_MVAR.
3784         (unwrap_arrays): Remove duplicate tests.
3785         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3786         generic instantiated class to find any arguments that are generic
3787         parameters.
3788         (mono_type_create_from_typespec_full): Use find_generic_param to
3789         avoid evicting some generic instantiations from the typespec
3790         cache.
3791
3792 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3793
3794         * reflection.c: fixed writing of doubles on ARM FPA.
3795
3796 2005-12-02  Robert Jordan  <robertj@gmx.net>
3797
3798         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3799
3800 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3801
3802         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3803         least on SUSE 10 they are not the same (on debian, they are just the
3804         same thing).
3805
3806 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3807
3808         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3809         DeclaringType for VARs and MVARs.
3810         * class.c (set_generic_param_owner): Fix initialization of owner
3811         fields.
3812
3813 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3814
3815         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3816
3817 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3818
3819         * threadpool.c: workaround for a bug that shows up on the Mac:
3820         select()+connect() on a blocking socket is not like it should
3821         be, so we proceed to connect() in that case, wasting the I/O
3822         threadpool thread until connect succeedes. Fixes bug #75436.
3823
3824 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3825
3826         * threadpool.c: fix typo when setting file descriptor states.
3827
3828 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3829
3830         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3831         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3832         create a temporary signature container.
3833         (mono_metadata_parse_generic_param): Update to changes.
3834         (mono_type_create_from_typespec_full): Update to changes.
3835         * loader.c (method_from_memberref): Don't use a
3836         MonoGenericContainer while parsing a memberref signature.
3837         (method_from_methodspec): Remove dead-store of the 'container'
3838         variable.  It's overwritten before use.
3839
3840         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3841         checks tighter.
3842         (mono_metadata_parse_generic_param): Likewise.
3843         * loader.c (find_method_in_class): Does not need a
3844         MonoGenericContainer.  Use 'mono_method_signature' rather than
3845         'mono_method_signature_full'.
3846         (find_method, mono_get_method_constrained, method_from_memberref):
3847         Update to changes.
3848
3849         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3850         owner-less generic-parameters are never evicted from the typespec
3851         cache.
3852
3853         * loader.c (method_from_memberref): Don't use the current context
3854         when parsing signatures.
3855         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3856
3857         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3858         side-effects in g_assert.
3859         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3860         that we don't potentially lose information.
3861
3862 2005-11-26  Dick Porter  <dick@ximian.com>
3863
3864         * icall.c:
3865         * threads.c: icalls to implement basic (ie, not named)
3866         System.Threading.Semaphore.
3867
3868 2005-11-24  Dick Porter  <dick@ximian.com>
3869
3870         * process.c
3871         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3872         Use GetProcessId() if it's available.
3873
3874 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3875
3876         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3877
3878 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3879             Ankit Jain  <jankit@novell.com>
3880
3881         * loader.c (mono_get_method_from_token): Initialize 'method' field
3882         of all generic parameters before parsing the signature.  Remove
3883         code that "fixed"-up MVAR references.
3884
3885 2005-11-23  Ankit Jain  <jankit@novell.com>
3886
3887         * metadata.c (mono_metadata_has_generic_params):
3888         (mono_metadata_load_generic_param_constraints):
3889         (mono_metadata_load_generic_params): Move duplicate code ...
3890         (mono_metadata_get_generic_param_row): ... here. Returns the
3891         first row-id in GenericParam table for a given owner (token).
3892         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3893         prototype.
3894
3895 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3896             Ankit Jain  <jankit@novell.com>
3897
3898         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3899         comparing VARs too.
3900         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3901         type->data.generic_param only if the type is an MVAR.
3902         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3903         leak owner-less VARs and MVARs into managed space.
3904
3905 2005-11-21  Martin Baulig  <martin@ximian.com>
3906
3907         * class-internals.h
3908         (MonoMethod): Moved the `generic_container' here from
3909         `MonoMethodNormal' since we now also need it for
3910         `MonoMethodPInvoke';
3911         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3912         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3913         an union containing both `MonoMethodNormal' and
3914         `MonoMethodPInvoke'.
3915
3916         * loader.c
3917         (mono_get_method_from_token): Allow implementing generic methods
3918         as interncalls.
3919
3920         * threads.c
3921         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3922         icall.
3923
3924 2005-11-17  Dick Porter  <dick@ximian.com>
3925
3926         * icall.c: 
3927         * process.h: 
3928         * process.c: Split the Process Start_internal icall into
3929         ShellExecuteEx_internal and CreateProcess_internal, which are
3930         called depending on whether UseShellExecute is true.  Fixes bug
3931         76670.
3932
3933         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3934
3935 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3936
3937         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3938         'msize' parameters, use the information in 'mspec' instead.
3939         (emit_object_to_ptr_conv): Ditto.
3940
3941         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3942         fields out of order. Fixes #76733.
3943
3944 2005-11-17  Ankit Jain  <jankit@novell.com>
3945
3946         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3947
3948 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3949
3950         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3951           bug #76575.
3952
3953 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3954
3955         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3956         for types with non-auto layout. Fixes #76717.
3957
3958 2005-11-16  Ankit Jain  <jankit@novell.com>
3959
3960         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
3961         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
3962         if generic_context is null.
3963           (mono_metadata_generic_param_equal): param->owner can be null.
3964           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
3965         null.
3966
3967 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3968
3969         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
3970         the correct value.
3971
3972 2005-11-15  Martin Baulig  <martin@ximian.com>
3973
3974         * object.c (set_value): Use mono_class_from_mono_type() instead of
3975         the hack for generic instances; fixes #76136.
3976
3977 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
3978
3979         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
3980         fields.
3981
3982         * image.c (load_metadata_ptrs): Initialize the new fields.
3983
3984         * reflection.c (create_dynamic_mono_image): Ditto.
3985
3986         * reflection.c (build_compressed_metadata): Use the new fields.
3987
3988         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
3989         icall.
3990
3991         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
3992         icall.
3993         
3994 2005-11-15  Ankit Jain  <jankit@novell.com>
3995             Raja R Harinath  <harinath@gmail.com>
3996
3997         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
3998         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
3999         new per-generic_container cache if the cached MonoType's context matches
4000         the current context.
4001           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4002         to the expected context.
4003           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4004
4005 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4006
4007         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4008         we changed the signature of an icall.
4009         * icall.c: Modify to mono_double_ParseImpl return true/false 
4010         depending on the success, instead of throwing the exception. This will
4011         help us in Double.TryParse methods.
4012         
4013 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4014
4015         * marshal.c (emit_marshal_object): Throw an exception when
4016         marshalling 'object' instead of crashing. Fixes #76696.
4017
4018 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4019
4020         * class-internals.h: Add prototype for mono_type_get_full_name ().
4021
4022 2005-11-11  Dick Porter  <dick@ximian.com>
4023
4024         * threads.c (mono_thread_manage): Make sure the main thread has
4025         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4026
4027 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4028
4029         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4030         console about the missing type.
4031         (mono_loader_set_error_method_load): Ditto.
4032
4033 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4034
4035         * mono-config.c (mono_get_config_dir): Set the system defaults if
4036         none is specified.
4037
4038         * assembly.c (mono_set_dirs): New API entry point to set the
4039         assembly and the config directory in one call
4040
4041 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4042
4043         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4044         the ftnptr was created from a delegate in a domain other than the
4045         current domain. Fixes #75377.
4046
4047         * exception.h exception.c: Add mono_get_exception_not_supported ().
4048
4049 2005-11-08  Martin Baulig  <martin@ximian.com>
4050
4051         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4052
4053 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4054
4055         * security-manager.h: Added definitions to deal with strongname key 
4056         pairs bigger (and smaller) than 1024 bits.
4057         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4058         adjust wrt the public key length being used.
4059
4060 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4061
4062         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4063           Windows build (r51396-51397).
4064
4065 2005-11-03  Martin Baulig  <martin@ximian.com>
4066
4067         * class.c (mono_class_setup_vtable_general): Also add generic
4068         methods to the vtable; fixes #76581.
4069
4070 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4071
4072         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4073         sure that we lookup GetString method from the System.Text.Encoding
4074         class, not the derived class or we get an empty method.
4075
4076         Fixed class #76612.
4077
4078 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4079
4080         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4081         if it has been previously set (embedders). 
4082
4083         Make mono_set_rootdir available also on Unix.
4084
4085 005-10-24  Robert Jordan  <robertj@gmx.net>
4086
4087         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4088
4089 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4090
4091         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4092         only calls which are made to native code use this flag.
4093
4094         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4095
4096 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4097
4098         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4099         Add support for FieldBuilders.
4100
4101 2005-10-29  Martin Baulig  <martin@ximian.com>
4102
4103         * mono-debug.c
4104         (mono_debug_using_mono_debugger): New public method; returns
4105         whether we're running inside the debugger.
4106
4107 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4108
4109         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4110         for Method/Constructor/FieldBuilders.
4111
4112 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4113
4114         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4115         and fields as well.
4116
4117 2005-10-26  Martin Baulig  <martin@ximian.com>
4118
4119         * mono-debug-debugger.c
4120         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4121
4122 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4123
4124         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4125         integer to isspace.
4126
4127 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4128
4129         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4130         when passing valuetypes byref. Fixes #76502.
4131
4132 2005-10-19  Jackson Harper  <jackson@ximian.com>
4133
4134         * profiler.c: Don't put a . in front of types that are not in a
4135         namespace.
4136
4137 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4138
4139         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4140
4141 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4142
4143         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4144         #76436.
4145         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4146
4147 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4148
4149         * assembly.c metadata-internals.h icall.c: Define an additional
4150         parameter for mono_assembly_name_parse_full, so we can avoid creating
4151         S.R.AssemblyName.Version when no version info wasn't passed.
4152         
4153 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4154
4155         * class.c (mono_type_get_full_name): Reimplement method that was
4156         removed. 
4157
4158         * image.c: Some docs
4159
4160 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4161
4162         * profiler.c (output_newobj_profile): Fix printing of Total memory
4163         on x86.
4164
4165 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4166
4167         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4168
4169 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4170
4171         * threads.c: remove debug output.
4172
4173 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4174
4175         * threads.c (mono_thread_manage): Fix crashes if more than 64
4176         threads need to be aborted. Hopefully fixes #75899.
4177
4178         * assembly.c (mono_stringify_assembly_name): New helper function.
4179
4180         * class.c: Use mono_stringify_assembly_name instead of the similar
4181         static function.
4182
4183         * assembly.h assembly.c: Add support for calling a postload search 
4184         hook if an assembly cannot be loaded.
4185
4186         * appdomain.c: Register new search hooks which call the AssemblyResolve
4187         events in AppDomain. Fixes #75231
4188
4189 2005-10-07  Martin Baulig  <martin@ximian.com>
4190
4191         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4192         methods without debug info.
4193
4194 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4195
4196         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4197         wrappers.
4198
4199 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4200
4201         * file-io.c: now that we return symlinks, use lstat and, when the file
4202         is a symbolic link, stat, to get the file attributes. Also avoid the
4203         conversion to/from utf16/external.
4204
4205 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4206
4207         * class.c (mono_class_layout_fields): Compute klass->has_references
4208         correctly if an embedded valuetype is not yet initialized. Fixes
4209         #76331.
4210
4211 2005-10-04  Martin Baulig  <martin@ximian.com>
4212
4213         * metadata.c
4214         (mono_metadata_load_generic_param_constraints): New public
4215         function; splitted the constraints loading out from
4216         mono_metadata_load_generic_params().
4217
4218         * class.c (mono_class_create_from_typedef): Call
4219         mono_metadata_load_generic_param_constraints() after setting up
4220         the type and creating our parent; fixes #75329.
4221
4222 2005-10-04  Martin Baulig  <martin@ximian.com>
4223
4224         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4225         non-dynamic parent classes.
4226
4227 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4228
4229         * file-io.c : win32 build fix (ETXTBSY seems not found).
4230
4231 2005-10-04  Martin Baulig  <martin@ximian.com>
4232
4233         * reflection.c
4234         (mono_image_get_methodspec_token): Make the cache actually work;
4235         fixes #75974.
4236
4237 2005-10-04  Martin Baulig  <martin@ximian.com>
4238
4239         * class.c (mono_class_name_from_token): Removed the unneccessary
4240         `MonoGenericContext *' argument.
4241
4242 2005-10-04  Martin Baulig  <martin@ximian.com>
4243
4244         * loader.c
4245         (method_from_methodspec): Make the caching work again; fixes the
4246         performance regression from #76262.
4247
4248 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4249
4250         * file-io.c:
4251         * file-io.h:
4252         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4253         GetFileSystemEntries that performs the same work but without going
4254         into io-layer, locking, etc.
4255
4256 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4257
4258         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4259         ThreadState_Stopped as well. Fixes #76047.
4260
4261 2005-09-29  Martin Baulig  <martin@ximian.com>
4262
4263         * class.c
4264         (inflate_generic_context): If the new context has a `gmethod', set
4265         its `container' that that gmethod's `container'.
4266
4267         * metadata.c
4268         (mono_metadata_parse_generic_param): Simplify things;
4269         `generic_container = generic_context->container;' is just fine.
4270
4271         * loader.c (method_from_methodspec): Code cleanups.
4272
4273 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4274
4275         * decimal.c: fix warning (and let gcc generate correct
4276         code on ARM with optimizations).
4277
4278 2005-09-28  Martin Baulig  <martin@ximian.com>
4279
4280         * loader.c
4281         (method_from_memberref): Added `MonoGenericContext *class_context'
4282         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4283         (method_from_methodspec): If we're a memberref, use the enclosing
4284         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4285
4286 2005-09-28  Martin Baulig  <martin@ximian.com>
4287
4288         * object.c (mono_runtime_invoke_array): Added support for
4289         MONO_TYPE_GENERICINST; fixes #75917.
4290
4291 2005-09-27  Martin Baulig  <martin@ximian.com>
4292
4293         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4294         `k->byval_arg.type' to determine the actual type.
4295
4296         * loader.c (method_from_methodspec): Removed some hacks.
4297
4298 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4299
4300         * class-internals.h (mono_field_is_deleted): Do the test for
4301         rtspecialname before we check the actual name of the field. This
4302         prevents us from dereferencing a pointer into the string table,
4303         saving us from accessing a few pages
4304
4305         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4306         macros. This will allow a deadlock debugger to easily be plugged
4307         in.
4308
4309 2005-09-27  Martin Baulig  <martin@ximian.com>
4310
4311         * loader.c (method_from_methodspec): Create a "signature"
4312         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4313
4314 2005-09-27  Martin Baulig  <martin@ximian.com>
4315
4316         * class.c
4317         (inflate_generic_class): Correctly set the new context's
4318         container.
4319
4320         * loader.c
4321         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4322         instead of a `MonoGenericContext *'.
4323         (mono_method_signature_full): Take a `MonoGenericContainer *'
4324         instead of a `MonoGenericContext *'.
4325
4326         * metadata.c
4327         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4328         instead of a `MonoGenericContext *'.
4329         (mono_metadata_parse_method_signature_full): Likewise.
4330
4331 2005-09-26  Martin Baulig  <martin@ximian.com>
4332
4333         * class.c
4334         (mono_class_from_generic_parameter): Set `klass->generic_container'
4335         (mono_class_from_generic_parameter): Likewise.
4336         (mono_bounded_array_class_get): We inherit the generic container
4337         from the element class.
4338
4339         * loader.c
4340         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4341         argument rather than computing it here.
4342         (method_from_memberref): Correctly set the generic context before
4343         parsing the signature.  Fixes #75681.
4344
4345 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4346
4347         * object.c (mono_class_has_special_static_fields): Fix warnings.
4348
4349 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4350
4351         * assembly.c: Add parse_public_key function, to
4352         par the public keys. Also added mono_assembly_name_parse_full,
4353         to define it the parsed key should be freed or not.
4354         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4355         to parse a long format assembly name.
4356         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4357         private, since calling it to preserve the key requires
4358         freeing it manually.
4359         
4360 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4361
4362         * locales.c : removed HAVE_ICU part.
4363
4364 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4365
4366         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4367         field_is_special_static if the klass has no special static fields.
4368
4369         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4370         (MonoCachedClassInfo): Likewise.
4371
4372         * object.c (mono_class_has_special_static_fields): New helper function.
4373
4374 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4375
4376         * class.c (mono_class_create_from_typedef): Don't call 
4377         interfaces_from_typedef_full for enums.
4378         (mono_class_create_from_typedef): Compute the base types of enums directly
4379         without calling mono_class_setup_fields ().
4380         (mono_class_find_enum_basetype): New helper function.
4381
4382         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4383         one place inside the string heap.
4384         
4385 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4386
4387         * class.c: locking fixes, code cleanups, some docs added.
4388         Allocate some data structures in the image mempool.
4389
4390 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4391
4392         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4393         the example code.
4394         
4395 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4396
4397         * class-internals.h, class.c, reflection.c: reduce memory taken by
4398         MonoClass.
4399
4400 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4401
4402         * metadata.c, metadata.h, loader.h: documentation updates, code and
4403         API cleanups.
4404
4405 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4406
4407         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4408         the example code.
4409
4410         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4411         page faults caused by the runtime while reading metadata.
4412
4413 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4414
4415         * socket-io.c: the field names were changed 3 months ago and no one
4416         realized until bug #76077 got filed!
4417
4418 2005-09-20  Martin Baulig  <martin@ximian.com>
4419
4420         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4421
4422 2005-09-20  Martin Baulig  <martin@ximian.com>
4423
4424         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4425         write the rank into the class entry.
4426
4427 2005-09-20  Martin Baulig  <martin@ximian.com>
4428
4429         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4430
4431 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4432
4433         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4434
4435         * icall.c (custom_attrs_defined_internal): New icall.
4436
4437         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4438         function.
4439         (mono_custom_attrs_construct_by_type): New helper function.
4440
4441 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4442
4443         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4444         terminate the resulting string. Fixes #76123.
4445
4446 2005-09-16  Martin Baulig  <martin@ximian.com>
4447
4448         * mono-debug.c
4449         (mono_debug_add_method): Ignore inflated methods for the moment.
4450
4451 2005-09-14  Martin Baulig  <martin@ximian.com>
4452
4453         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4454
4455 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4456
4457         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4458         return a success/failure indication.
4459         (mono_metadata_interfaces_from_typedef_full): Ditto.
4460         (get_constraints): Ditto.
4461
4462 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4463
4464         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4465         
4466         * marshal.c (emit_marshal_array): Add support for returning string
4467         arrays from delegates. Fixes #76063.
4468
4469         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4470
4471 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4472
4473         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4474         icall.
4475
4476 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4477
4478         * reflection.c icall.c: Fix after mono_get_exception_type_load
4479         signature change.
4480
4481         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4482         (mono_assembly_load_reference): Use the new helper.
4483
4484         * class-internals.h (MonoLoaderError): New structure containing 
4485         information about type loading errors.
4486
4487         * class-internals.h loader.c: Add APIs to store per-thread loader
4488         error information.
4489
4490         * loader.c class.c: Set the loader error if needed.
4491
4492         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4493
4494 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4495
4496         * decimal.c: fixed to handle the broken ARM fp format.
4497
4498 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4499
4500         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4501         broken.
4502
4503 2005-09-06  Martin Baulig  <martin@ximian.com>
4504
4505         * domain.c (supported_runtimes): Added v2.0.50727.
4506
4507 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4508
4509         * culture-info.h: reduce the size of some structures.
4510
4511 2005-09-05  Martin Baulig  <martin@ximian.com>
4512
4513         Reflect latest API changes in the August CTP.
4514
4515         * icall.c
4516         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4517         ("MonoType.HasGenericArguments"): Removed.
4518         ("MonoMethod.BindGenericParameters"): Renamed to
4519         "MakeGenericMethod".
4520         ("MethodBuilder.BindGenericParameters"): Renamed to
4521         "MakeGenericMethod".    
4522
4523 2005-09-05  Martin Baulig  <martin@ximian.com>
4524
4525         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4526
4527 2005-09-05  Martin Baulig  <martin@ximian.com>
4528
4529         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4530
4531         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4532         generic_container is non-NULL.
4533
4534 2005-09-05  Martin Baulig  <martin@ximian.com>
4535
4536         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4537
4538         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4539
4540 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4541
4542         * reflection.c (encode_locals,
4543         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4544         for large generic types.
4545
4546 2005-09-05  Martin Baulig  <martin@ximian.com>
4547
4548         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4549
4550         * class.c (mono_dup_array_type): New public method.
4551         (mono_metadata_signature_deep_dup): New public method.
4552         (dup_type): Correctly duplicate array and function types.
4553
4554 2005-09-05  Martin Baulig  <martin@ximian.com>
4555
4556         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4557
4558         * reflection.c (get_default_param_value_blobs): Handle generic types
4559         and generic methods.
4560
4561 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4562
4563         * class.c: Fixed error reporting (method/class were inversed) for 
4564         inheritance demands.
4565         * security-manager.c|h: Added the AppDomain when calling the managed
4566         System.Security.SecurityManager.InheritanceDemand method.
4567
4568 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4569
4570         * reflection.c (encode_marshal_blob): 'marshaltype' and
4571         'marshaltyperef' are alternate sources for the custom marshaler
4572         name.
4573
4574 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4575
4576         * class.c: fix creation of array classes with rank == 1
4577         (patch by Ankit Jain <jankit@novell.com>).
4578
4579 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4580
4581         * object.c: fix check for creating the bound data for arrays vs
4582         szarrays.
4583
4584 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4585
4586         * object.c: configuration file name is now based on the executable name,
4587         not the image name. Fixes bug #75931.
4588
4589 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4590
4591         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4592         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4593
4594 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4595
4596         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4597
4598 2005-08-24  Ankit Jain  <jankit@novell.com>
4599             Raja R Harinath  <rharinath@novell.com>
4600
4601         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4602           called by it recursively.
4603           (mono_class_init): Remove special case in pending_init handling, since it's
4604           superseded by the fix to mono_class_from_typeref.
4605
4606 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4607
4608         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4609         BROKEN_THREAD_START stuff.
4610
4611 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4612
4613         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4614         trampoline.
4615
4616         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4617         
4618         * object.c (mono_delegate_ctor): Replace the original function address with
4619         a delegate trampoline.
4620
4621 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4622
4623         * icall.c: add boolean argument to base64_to_byte_array and 
4624         InternalFromBase64String to control whether a whitespace-only string
4625         is allowed (or should casue a FormatException to be thrown). We need
4626         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4627         to match the MS behaviour in both profiles.
4628         * appdomain.c: Bump corlib version.
4629
4630 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4631
4632         This patch implements a big portion of publisher policy
4633         support, used to bind assembly versions and redirect
4634         one assembly from version A to version B.
4635
4636         * assembly.c:
4637         New GSList loaded_assembly_bindings, for storing the cached
4638         assembly bindings.
4639         (assembly_binding_maps_name): New static function for checking if a 
4640         assembly binding information maps an assembly name.
4641         (mono_assembly_binding_info_free): New function for freeing
4642         assembly binding information resources.
4643         (get_publisher_policy_info): New static function for retrieving 
4644         assembly binding information from a MonoImage.
4645         (compare_versions): New static function for comparing an assembly
4646         binding information data and the version of an assembly name.
4647         (check_policy_versions): New static function for checking if an
4648         assembly binding info mapping an assembly name is valid for it.
4649         (mono_assembly_load_publisher_policy): New static function for
4650         loading the 'policy.major.minor.MyAssembly' image for an assembly
4651         with an assembly name 'aname'.
4652         (mono_assembly_bind_version): New static function for updating
4653         assembly redirection.
4654         (mono_assembly_apply_binding): New static function for applying
4655         assembly binding.
4656         (search_binding_loaded): New static function for searching 
4657         loaded assembly binding infos in the cache domain.
4658         (mono_assembly_load_full): Don't apply assembly binding for
4659         reflection only assemblies.
4660
4661         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4662         which contains information about assembly binding. Also
4663         declare signature for mono_config_parse_publisher_policy ()
4664         function, used to retrieve pub policy info.
4665         
4666         * mono-config.c:
4667         (publisher_policy_start): New static function used to parse publisher 
4668         policy config files.
4669         (publisher_policy_parser): New static MonoParseHandler containing 
4670         the functions used when parsing config files.
4671         (mono_config_parse_publisher_policy): New function for parsing
4672         publisher policy files.
4673         
4674 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4675
4676         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4677
4678         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4679
4680         * object.c (mono_get_addr_from_ftnptr): New helper function.
4681
4682         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4683
4684         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4685
4686 2005-08-19  Dick Porter  <dick@ximian.com>
4687
4688         * threads.c, threads.h, appdomain.c, appdomain.h,
4689         profiler-private.h, monitor.c, object.c, object-internals.h,
4690         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4691         store the thread ID, so it can hold a 64 bit value if needed.
4692
4693 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4694
4695         * reflection.c (mono_reflection_create_dynamic_method): Store the
4696         handle class into the method references as well so ldtoken works in
4697         dynamic methods.
4698
4699         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4700         types.
4701
4702 2005-08-19  Ankit Jain <jankit@novell.com>
4703
4704         Fix #75847.
4705         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4706           here rather than using the method signature of a arbitrary function
4707           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4708           two arguments.
4709           Hack done with Harinath.
4710
4711 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4712
4713         * threadpool.c: disable printing stack traces when we get a exception
4714         in a threadpool thread. I need to do more testing to figure out which
4715         cases actually print this. Fixes bug #75828.
4716
4717 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4718
4719         * icall.c: there might be ignored whitespace after the last '='. This
4720         fixes length computation and bug #75840.
4721
4722 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4723
4724         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4725         well. Fixes #75809.
4726
4727         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4728         #75784.
4729         
4730         * reflection.c (create_custom_attr_data): Ditto.
4731
4732 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4733
4734         * locales.c, culture-info.h : removed RegionLCIDMap.
4735         * culture-info-tables.h : regenerated.
4736
4737 2005-08-16  Martin Baulig  <martin@ximian.com>
4738
4739         * class.c (mono_type_get_name_recurse): Small fix.
4740
4741 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4742
4743         * locales.c : indentation fixie.
4744
4745 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4746
4747         * object-internals.h,
4748           locales.h,
4749           locales.c,
4750           culture-info.h,
4751           icall.c : added RegionInfo table support.
4752         * culture-info-table.h : regenerated for region support.
4753
4754 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4755
4756         * reflection.c (resolve_object): handle all kinds of MonoMethod
4757         including generic ones
4758
4759 2005-08-12  Ankit Jain <jankit@novell.com>
4760
4761         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4762           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4763
4764 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4765
4766         * process.c: Don't close a thread handle when it's NULL. This is a
4767         workaround for bug #75733.
4768
4769 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4770
4771         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4772
4773 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4774
4775         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4776
4777 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4778
4779         * threadpool.c: if a work item in the thread pool has a callback that
4780         catches a exception, don't propagate it after invoking the callback.
4781         Fixes bug #75336.
4782
4783 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4784
4785         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4786
4787         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4788
4789         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4790
4791         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4792
4793 2005-08-03  Ankit Jain  <jankit@novell.com>
4794
4795         Fix #75683.
4796         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4797           PInvoke calling convention is 0.
4798
4799 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4800
4801         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4802         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4803
4804 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4805
4806         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4807         to handle threads not started by the GC (patch by Michael Meeks
4808         <michael.meeks@novell.com>).
4809
4810 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4811
4812         * reflection.c: Make buffer used in emitting types larger for some
4813         big generic types (patch by Michal Moskal).
4814
4815 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4816
4817         * mono-debug.c: Fix some (not all) alignment problems.
4818
4819 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4820
4821         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4822         Invoke mono_image_load_from_data_full passing the refonly
4823         parameter.
4824
4825         * assembly.c
4826         (mono_assembly_open_from_bundle): Add the refonly argument, 
4827         in order to pass it to other methods it calls to.
4828         (do_mono_assembly_open): Add the refonly argument, in order 
4829         to pass it to other methods it calls to.
4830         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4831         the refonly parameter to it.
4832
4833         * image.c: Add loaded_images_refonly_hash and
4834         loaded_images_refonly_guid_hash to cache the reflection
4835         only loaded images.
4836         (mono_images_init): Initialize the hash tables used for
4837         caching the reflection only images.
4838         (load_modules): Invoke mono_image_open_full passing the refonly
4839         parameter to load the modules the correct way.
4840         (build_guid_table): Add the refonly argument, to re-build the 
4841         correct hash table.
4842         (do_mono_image_open): Added the refonly argument, in order to
4843         define it for the loaded image.
4844         (mono_image_loaded_full): New function, which receives an
4845         additional parameter to look for the image in the refonly or
4846         non-refonly section.
4847         (mono_image_loaded): Updated, using mono_image_loaded_full.
4848         (mono_image_loaded_by_guid_full): The same case that happens
4849         with mono_image_loaded_full.
4850         (mono_image_loaded_by_guid): Likewise.
4851         (register_image): Use the ref_only variable inside MonoImage
4852         to decide in which hash table store the current image.
4853         (mono_image_open_from_data_full): Rename
4854         mono_image_open_from_data to mono_image_open_from_data_full,
4855         adding the refonly argument, to define the ref_only variable 
4856         inside MonoImage.
4857         (mono_image_open_from_data): Return 
4858         mono_image_open_from_data_full.
4859         (mono_image_open_full): Rename mono_image_open to
4860         mono_image_open_full, receiving the new refonly argument,
4861         to pass it to inner methods.
4862         (mono_pe_file_open): Update this function, to open
4863         a MonoImage as a non-refonly image.
4864         (mono_image_close): Use the refonly variable inside
4865         MonoImage to remove the image from the correct caches.
4866
4867         * image.h: Add the signatures of mono_image_open_full,
4868         mono_image_open_from_data_full, mono_image_loaded_full,
4869         mono_image_loaded_by_guid_full.
4870
4871         * metadata-internals.h: Add the ref_only field to 
4872         MonoImage.
4873         
4874 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4875
4876         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4877         Fix the last behavior, which used to load the assemblies and
4878         extract MonoReflectionAssemblyName information, instead of
4879         extract it from the metadata tables. Needed for Reflection
4880         Only assemblies.
4881         
4882 2005-07-29  Martin Baulig  <martin@ximian.com>
4883
4884         * mono-debug-debugger.c
4885         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4886         not initialized.
4887
4888         * mono-debug.c
4889         (mono_debug_address_from_il_offset): Check whether we have
4890         debugging support before attempting to take the lock.
4891         (mono_debug_source_location_from_address): Likewise.
4892         (mono_debug_source_location_from_il_offset): Likewise.
4893         (mono_debug_il_offset_from_address): Likewise.
4894         (mono_debug_address_from_il_offset): Likewise.
4895
4896 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4897
4898         * class.c (mono_class_from_name_case): Add support for dynamic images.
4899         Fixes #75650.
4900
4901         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4902         for #75479.
4903
4904 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4905         
4906         * reflection.c (mono_method_get_object): Fix warning.
4907
4908 2005-07-28  Martin Baulig  <martin@ximian.com>
4909
4910         * mono-debug.c
4911         (mono_debug_add_wrapper): Also write the wrapper type.
4912
4913 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4914
4915         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4916         
4917         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4918         data indicates the class has none.
4919
4920 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4921
4922         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4923         loader lock with the debugger lock. Prevents deadlocks for beagle.
4924
4925         Beagle can now run on an smp box for a weekend without any
4926         issues. Woohoo!
4927
4928 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4929
4930         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4931         in a module. Fixes #75629.
4932
4933 2005-07-26  Martin Baulig  <martin@ximian.com>
4934
4935         * mono-debug.c (mono_debug_add_wrapper): New static method.
4936         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4937         interncall or a wrapper.
4938
4939         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4940         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4941         (MONO_DEBUGGER_VERSION): Bump to 51.
4942
4943         * mono-debug-debugger.c
4944         (mono_debugger_add_type): Removed this empty function.
4945         (mono_debugger_add_method): Likewise.
4946
4947 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4948
4949         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4950         before accessing method->slot.
4951
4952 2005-07-21  Jb Evain  <jbevain@gmail.com>
4953
4954         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4955         Fixes #75010.
4956
4957 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4958
4959         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
4960         #75587.
4961
4962 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
4963
4964         * image.h image.c: Add mono_image_get_guid () API function.
4965
4966 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
4967
4968         There were issues when multiple threads tried to load
4969         assemblies. A deadlock was created between assemblies_mutex and
4970         mono_domain_assemblies_lock. This fixes the issue by making the
4971         assembly ref counting be lock free. See bug 75586.
4972         
4973         * image.c (mono_image_close): The add ref function here was using
4974         Interlocked operations while the unref was using a mutex and a
4975         --. I don't think this was ever a bug that would be exposed in a
4976         non-pendantic way (ie, by an embedder doing a ref on one thread
4977         and an unref on another), but for the sake of correctness, this is
4978         now Interlocked.
4979
4980         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
4981         (mono_assembly_load_reference): Call mono_assembly_addref rather
4982         than touching the refcount ourselves.
4983         (mono_assembly_close): Use InterlockedDecrement to unref the
4984         assembly. Don't acquire the lock unless it is actually needed.
4985
4986 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4987
4988         * class.c (mono_class_layout_fields): Fix calculation of has_references
4989         for generic types.
4990
4991 2005-07-12  Martin Baulig  <martin@ximian.com>
4992
4993         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4994
4995         * metadata.c
4996         (mono_type_hash): Provide better hashing for generic instances.
4997         (mono_generic_inst_hash): Improve hashing.
4998         (mono_generic_class_hash): Likewise.
4999
5000         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5001         generic instances.
5002
5003 2005-07-12  Martin Baulig  <martin@ximian.com>
5004
5005         * reflection.c (mono_reflection_create_runtime_class): Remove the
5006         hack for generic type definitions and non-`Run' assemblies.
5007         (mono_reflection_bind_generic_parameters): Also use
5008         `klass->wastypebuilder' to check for TypeBuilders.
5009
5010 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5011
5012         * class.c (mono_class_layout_fields): Fix calculation of has_references
5013         for generic types.
5014
5015         * class.c (inflate_generic_class): Fix a leak.
5016         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5017         for generic types.
5018
5019 2005-07-11  Martin Baulig  <martin@ximian.com>
5020
5021         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5022         on error.
5023
5024 2005-07-11  Martin Baulig  <martin@ximian.com>
5025
5026         * loader.c (find_method): Also lookup in
5027         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5028
5029 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5030
5031         * appdomain.c (mono_domain_unload): Don't free the error message
5032         before passing it to mono_get_exception_...
5033
5034         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5035         
5036 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5037
5038         * threads.c: try to better guess an available RT signal (bug #75387).
5039
5040 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5041
5042         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5043         and CACHE_OBJECT.
5044
5045 2005-07-07  Martin Baulig  <martin@ximian.com>
5046
5047         * class.c (mono_type_get_name_full): Return NULL for
5048         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5049         fixes #75408.
5050
5051 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5052
5053         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5054         exit the appdomain as well being aborted.
5055
5056         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5057         change back to the root domain after calling managed code. This enables
5058         appdomains using threadpools to be unloaded.
5059
5060 2005-07-07  Martin Baulig  <martin@ximian.com>
5061
5062         * class-internals.h
5063         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5064         into `MonoDynamicGenericClass' since we only need it for dynamic
5065         types.
5066
5067         * reflection.c (mono_class_bind_generic_parameters): We don't need
5068         to compute the `parent' here.
5069
5070 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5071
5072         * culture-info-table.h : regenerated.
5073
5074 2005-07-06  Martin Baulig  <martin@ximian.com>
5075
5076         * icall.c
5077         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5078
5079         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5080
5081 2005-07-06  Martin Baulig  <martin@ximian.com>
5082
5083         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5084         we're doing a signature-only comparision; fixes #74945.
5085
5086 2005-07-06  Martin Baulig  <martin@ximian.com>
5087
5088         * class-internals.h (MonoGenericClass): Moved some things out into
5089         a new `MonoInflatedGenericClass' type.  
5090         (MonoInflatedGenericClass): New type; the `klass' of a
5091         `MonoGenericClass' is now computed lazyly in
5092         mono_get_inflated_generic_class().      
5093
5094         * class.c (mono_get_inflated_generic_class): New public function.
5095         (mono_class_inflate_generic_method): Removed the unused
5096         `MonoClass *' argument.
5097         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5098         all the methods.
5099         (mono_class_create_generic): Make this static and merge it with
5100         mono_class_create_generic_2(); we're now called automatically from
5101         mono_get_inflated_generic_class().
5102
5103         * loader.c (mono_method_signature): Call
5104         mono_get_inflated_method() here.
5105
5106 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5107
5108         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5109         type of fields with RVA.
5110
5111         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5112         for this pseudo class.
5113         (my_mono_class_from_generic_parameter): Likewise.
5114         (mono_class_init): Allow interfaces to have cctors.
5115
5116 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5117
5118         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5119         lazily for AOT methods.
5120
5121 2005-07-05  Martin Baulig  <martin@ximian.com>
5122
5123         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5124         returns FALSE for a successful match, not TRUE.
5125
5126 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5127
5128         * loader.c (mono_method_get_index): Optimize this a bit.
5129
5130 2005-07-04  Martin Baulig  <martin@ximian.com>
5131
5132         * class.c
5133         (class_compute_field_layout): Move the check for generic type
5134         definitions into mono_class_layout_fields().  Fixes #74684.
5135         (mono_class_from_generic_parameter): Correctly compute
5136         `klass->parent'; fixes #75457.
5137
5138         * reflection.c (register_assembly, register_module): Make sure
5139         `domain->rejobject_hash' is already created.
5140
5141 2005-07-02  Martin Baulig  <martin@ximian.com>
5142
5143         * class-internals.h
5144         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5145         `MonoDynamicGenericClass'.      
5146
5147 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5148
5149         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5150         returned by a field getter is null, since null is a valid value.
5151
5152 2005-07-01  Martin Baulig  <martin@ximian.com>
5153
5154         * reflection.c (mono_reflection_generic_class_initialize): Update
5155         the `dgclass->fields [i].parent' to the correct class.
5156         (mono_image_get_fieldref_token): Use the declaring type, not the
5157         reflected type.
5158
5159 2005-07-01  Martin Baulig  <martin@ximian.com>
5160
5161         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5162
5163 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5164
5165         * threads.c (thread_cleanup): assert that thread != NULL
5166         (wait_for_tids_or_state_change): We were using the wrong variable
5167         when accessing wait->threads. `i' was always out of the bounds of
5168         the array.
5169
5170 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5171
5172         * loader.c: map user32 and kernel32 to libMonoSupportW
5173
5174 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5175
5176         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5177
5178 2005-06-28  Martin Baulig  <martin@ximian.com>
5179
5180         * loader.c (method_from_methodspec): Fix #75334.
5181
5182 2005-06-28  Martin Baulig  <martin@ximian.com>
5183
5184         Fix #74953 - Arrays now implement the generic IList<T> interface
5185         on the 2.0 platform.
5186
5187         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5188
5189         * reflection.c (mono_class_bind_generic_parameters): New public
5190         function; similar to mono_reflection_bind_generic_parameters(),
5191         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5192
5193         * domain.c (mono_init_internal): Try to initialize.
5194         `mono_defaults.generic_array_class' here; this'll only succeed if
5195         we're using the 2.0 corlib.
5196
5197         * icall.c
5198         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5199         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5200         (mono_lookup_internal_call): Added support for nested classes.
5201
5202         * loader.c
5203         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5204         we're an interncall and have generic arguments.
5205
5206         * class.c
5207         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5208         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5209         instance of System.Array.InternalArray<T> for arrays, so they
5210         implement the generic IList<T> interface.
5211
5212 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5213
5214         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5215         (chastamar@yahoo.com). Fixes #75374.    
5216
5217 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5218
5219         * culture-info-table.h: regenerated.
5220
5221 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5222
5223         * icall.c: handle spaces correctly for base64 strings.
5224
5225 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5226
5227         * *.c: Kill some warnings.
5228
5229 2005-06-23  Duncan Mak  <duncan@novell.com>
5230
5231         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5232         that this builds on Solaris 10 (x86).
5233
5234 2005-06-23  Martin Baulig  <martin@ximian.com>
5235
5236         * class.c
5237         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5238         generic type definitions.
5239
5240 2005-06-23  Martin Baulig  <martin@ximian.com>
5241
5242         Fix #75331.
5243
5244         * metadata.c (mono_class_get_overrides): Renamed to
5245         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5246         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5247         pass it to mono_get_method_full().
5248
5249 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5250
5251         * reflection.c (mono_reflection_create_runtime_class): take the
5252         mono_domain_lock in this method. Prevents deadlocks
5253
5254 2005-06-22  Martin Baulig  <martin@ximian.com>
5255
5256         * loader.c (method_from_methodspec): Fix #75330.
5257
5258 2005-06-22  Martin Baulig  <martin@ximian.com>
5259
5260         * reflection.c (type_get_qualified_name): Use
5261         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5262         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5263         argument; use it if we don't have an assembly name.
5264
5265 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5266
5267         * object.c: In mono_message_init, set "copy out" flag for in
5268         parameters with the [Out] flag.
5269
5270 2005-06-21  Martin Baulig  <martin@ximian.com>
5271
5272         * class.c
5273         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5274         and MONO_TYPE_PTR.
5275
5276 2005-06-21  Martin Baulig  <martin@ximian.com>
5277
5278         * class.c (mono_class_init): Don't initialize `class->fields' for
5279         generic instances since they're initialized again in
5280         compute_field_layout(). 
5281         (compute_field_layout): Set the field's `generic_info' here; fix
5282         #75320. 
5283
5284 2005-06-21  Martin Baulig  <martin@ximian.com>
5285
5286         * class-internals.h
5287         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5288
5289         * metadata.c (mono_metadata_generic_method_equal): Also
5290         distinguish the `generic_class'; fixes #75334.
5291
5292 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5293
5294         * domain.c:
5295         * appdomain.c:
5296         * domain-internals.h:
5297         * reflection.c: 'domain_assemblies' field is now protected by its own
5298         lock. Don't call into managed code to run the AssemblyLoad event if we
5299         now there are no registered delegates for it.
5300
5301 2005-06-20  Martin Baulig  <martin@ximian.com>
5302
5303         * class.c (mono_class_is_assignable_from): Use a custom version of
5304         mono_class_has_parent() to make things work for generic instances;
5305         fix #75300.
5306
5307 2005-06-20  Martin Baulig  <martin@ximian.com>
5308
5309         * loader.c (method_from_methodspec): Apply a patch from
5310         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5311
5312 2005-06-20  Martin Baulig  <martin@ximian.com>
5313
5314         * class.c (mono_class_init): Reverted Zoltan's last change; it
5315         breaks generics.
5316
5317 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5318
5319         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5320
5321 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5322
5323         * socket-io.c: fix the index in the socket array for writable/error
5324         sockets. Fixes bug #75306.
5325
5326 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5327
5328         * class.c (mono_class_init): Allow interfaces to have static ctors.
5329
5330 2005-06-17  Martin Baulig  <martin@ximian.com>
5331
5332         * loader.c (method_from_methodspec): Use `context->container' when
5333         parsing the `gmethod->inst'.
5334
5335 2005-06-17  Martin Baulig  <martin@ximian.com>
5336
5337         * class.c (mono_type_get_name_recurse): Don't add the assembly
5338         name for type arguments.
5339
5340 2005-06-15  Martin Baulig  <martin@ximian.com>
5341
5342         * reflection.c (mono_image_get_inflated_method_token): Encode
5343         correct klass; fixes #75260.
5344
5345 2005-06-13 Michal Moskal <malekith@nemerle.org>
5346
5347         * icall.c: Make GetCorrespondingMethod/Constructor take
5348         MonoReflectionMethod method not MonoMethod. Removed
5349         MonoType.GetCorrespondingField, and make
5350         MonoGenericType.GetCorrespondingField take name not
5351         MonoClassField.
5352
5353 2005-06-13  Michal Moskal <malekith@nemerle.org>
5354
5355         * reflection.c (field_encode_signature, encode_locals):
5356          Make sizes of buffers for types larger (for big generic types).
5357          (create_generic_typespec,
5358          mono_reflection_sighelper_get_signature_local,
5359          mono_reflection_sighelper_get_signature_field):
5360          Add asserts for too small buffers.
5361
5362 2005-06-15  Martin Baulig  <martin@ximian.com>
5363
5364         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5365         if our parent is not a dynamic type.
5366
5367 2005-06-15  Martin Baulig  <martin@ximian.com>
5368
5369         * class-internals.h (MonoTypeNameFormat): New enum.
5370
5371         * class.c
5372         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5373         (mono_type_get_full_name): Removed.
5374         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5375         argument instead of the boolean's.
5376
5377         * icall.c (ves_icall_System_MonoType_getFullName):
5378         Added `gboolean assembly_qualified'.    
5379
5380         * reflection.h
5381         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5382
5383         * reflection.c (mono_reflection_parse_type): Parse the new type
5384         name format.
5385
5386 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5387
5388         * icall.c: no need to convert from utf16 to utf8 and then back again
5389         after the call to GetLogicalDrives.
5390
5391 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5392
5393         * icall.c: frombase64. Fix problems exposed by new tests.
5394
5395 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5396
5397         * icall.c: added internal calls for converting char [] and strings in
5398         base64 into byte [].
5399
5400 2005-06-10  Martin Baulig  <martin@ximian.com>
5401
5402         * class.c (mono_class_create_generic_2): Read the nested classes
5403         from the metadata rather than from `gklass->nested_classes' since
5404         `gklass' might not be initialized yet.
5405
5406 2005-06-09  Duncan Mak  <duncan@novell.com>
5407
5408         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5409         all public headers. Fixes #74919.
5410
5411 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5412
5413         * domain.c: The key for proxy_vtable_hash is now a pointer
5414         array. Added new GHashFunc and GCompareFunc functions for this.
5415
5416         * class.h: The list of interfaces in MonoRemoteClass is known in
5417         advance and can't grow (we create a new MonoRemoteClass if needed),
5418         so now the interface array can be allocated together with
5419         MonoRemoteClass.
5420         
5421         * object.c: Added a new method create_remote_class_key.
5422         Fixed mono_remote_class so it does not depend on
5423         mono_upgrade_remote_class.
5424         Removed extend_interface_array.
5425         Added new method clone_remote_class(), which makes a copy of a remote
5426         class and adds a new interface or class to it.
5427         mono_upgrade_remote_class() now creates a new remote class (or gets
5428         it from the cache) if an vtable upgrade is needed. In this way
5429         we make sure that other objects sharing the same remote class
5430         don't get the new vtable with unwanted interfaces.
5431         
5432         * object-internals.h:
5433         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5434         
5435         * marshal.c: Track changes in mono_upgrade_remote_class().
5436
5437 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5438         * icall.c: Add runtime methods for obtaining members of inflated
5439         class, which were created from supplied non-inflated members. It
5440         is used in internal Get{Method,Constructor,Field} methods in
5441         System.Type
5442
5443 2005-06-09  Martin Baulig  <martin@ximian.com>
5444
5445         * reflection.c
5446         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5447
5448 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5449         * reflection.c (mono_image_basic_init): Define
5450         Version in MonoDynamicAssembly. 
5451         
5452 2005-06-08  Martin Baulig  <martin@ximian.com>
5453
5454         Fix #75136.
5455
5456         * loader.c
5457         (mono_method_signature_full): New public method; takes a
5458         `MonoGenericContext *'.
5459         (find_method): Use mono_method_signature_full() and pass the
5460         klass'es context to it.
5461
5462         * class.c (mono_class_is_inflated_method): Use
5463         mono_method_signature_full() and pass the context to it.
5464
5465 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5466
5467         * object.c: add proper locking in mono_remote_class_vtable(),
5468         fixes possible memory corruption.
5469
5470 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5471
5472         * marshal.c (mono_remoting_marshal_init): set
5473         initialized after initialization.
5474
5475 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5476
5477         * locales.c : hush.
5478
5479 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5480
5481         * object.c (extend_interface_array): fix really silly
5482         memory corrupting / comparison bug.
5483
5484 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5485
5486         * reflection.c: Functions added to support the creation
5487         of CustomAttributeData, which includes Attribute data
5488         used by ReflectionOnly methods.
5489
5490         * reflection.h:  mono_reflection_get_custom_attrs_data and
5491          mono_custom_attrs_data_construct added (functions exposed).
5492
5493          * icall.c: Added mono_reflection_get_custom_attrs_data
5494          as icall.
5495         
5496 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5497
5498         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5499         lupus's request.
5500
5501 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5502
5503         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5504
5505         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5506         dynamic DllImportAttribute.
5507
5508         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5509         dynamic DllImportAttribute.
5510
5511         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5512         Fixes #75162.
5513
5514 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5515
5516         * threads.c: avoid segfault when an unstarted thread is aborted.
5517
5518 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5519
5520         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5521         Returns the name and version of the runtime for reporting.
5522
5523 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5524
5525         * appdomain.c: bump corlib version.
5526         * object-internals.h: new field in MonoReflectionAssembly.
5527
5528 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5529
5530         * object-internals.h: Carlos forgot to add this field.
5531
5532 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5533
5534         * icall.c: Added create_version to create instances
5535         of Version of MonoReflectionAssemblyName. This change helps
5536         the AssemblyName tests to keep running fine.
5537         
5538 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5539   
5540         * object.c (mono_method_return_message_restore): A somehow less
5541         intrusive fix for #75138.
5542
5543 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5544
5545         * object.c (mono_method_return_message_restore): Fix computation
5546         of expected number of out args.
5547
5548 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5549
5550         * reflection.c (mono_image_get_method_info): Fix the case when the
5551         charset is empty.
5552
5553 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5554
5555         * object.c: Added missing null check in
5556           mono_method_return_message_restore.
5557
5558 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5559
5560         * reflection.c (mono_image_get_method_info): Handle the case when
5561         dllentry is empty.
5562
5563 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5564
5565         * object.c: When creating the vtable for a proxy, take into account
5566         all inherited interfaces, not only the ones registered in
5567         iclass->interfaces. This fixs bug #74996.
5568         Also, in mono_method_return_message_restore, verify that the array
5569         of out args has the expected lengh.
5570
5571 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5572
5573         * socket-io.c: update the timeout in Poll when the call is interrupte.
5574
5575 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5576
5577         * socket-io.c: support abort/suspend in Select_internal after last
5578         change.
5579
5580 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5581
5582         * threadpool.c: remove warning.
5583
5584 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5585
5586         * icall.c:
5587         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5588         removing the 1024 limit from select(). Runtime part of the fix for
5589         bug #71203.
5590
5591 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5592
5593         * socket-io.c: when resolving the addresses for the same
5594         host returned by gethostname(), get the local IPs from the interface
5595         list. Loopback addresses are discarded if the are interfaces up with
5596         non-loopback ones. Fixes bug #63265.
5597
5598 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5599
5600         * appdomain.c, verify.c, object-internals.h, reflection.c:
5601         bumped corlib number to 36, and added new extra_flags field
5602         to ReflectionMethodBuilder and friends.  Fixes #75060.
5603
5604 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5605
5606         * gc.c: register a new weak link only if the object is non-null
5607         (fixes bug#75047).
5608
5609 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5610
5611         * culture-info.h : short time pattern too.
5612
5613 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5614
5615         * culture-info.h : expand long time pattern string length.
5616
5617 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5618
5619         * culture-info-table.h : update (more French date format; #72788).
5620
5621 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5622
5623         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5624         the method is static. Fixes #75029.
5625
5626 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5627
5628         * reflection.c: Update the table_idx field of method builders after
5629         saving the module, since it can change. This is a workaround for
5630         bug #74914. 
5631
5632 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5633
5634         * culture-info-table.h : update (additional French date format).
5635
5636 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5637
5638         * icall.c (ves_icall_type_Equals): Revert last change.
5639         
5640         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5641
5642         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5643
5644 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5645
5646         * class-internals.h: Added executioncontext_class field to 
5647         MonoDefaults structure.
5648         * domain.c: Cache System.Threading.ExecutionContext class in 
5649         mono_defaults.
5650         * object.c: Capture the ExecutionContext for asynchroneous calls in
5651          mono_async_result_new.
5652         * object-internals.h: Added execution_context and original_context 
5653         fields to MonoAsyncResult. Added execution_context to MonoThread.
5654         * security-manager.c|.h: Added mono_get_context_capture_method to 
5655         return the capture method (if required by the security manager or by
5656         the framework version used).
5657         * threadpool.c: Apply capture (if present) ExecutionContext in 
5658         mono_async_invoke and revert to original context after it completes.
5659
5660 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5661
5662         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5663
5664 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5665
5666         * culture-info-table.h : zh-CHT related workaround.
5667
5668 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5669
5670         * marshal.c (emit_marshal_custom): Add some error checking and call the
5671         methods in the ICustomMarshaler interface. Fixes #74875.
5672         
5673         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5674         native->managed wrappers.
5675
5676 2005-05-12  Martin Baulig  <martin@ximian.com>
5677
5678         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5679         here and use the loader lock.
5680
5681         * mono-debug.c: Properly lock when the debugger is not attached.
5682         (mono_debug_init): Release the initial lock if we're not running
5683         in the debugger.
5684
5685 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5686
5687         * marshal.c (emit_marshal_custom): Pass through NULL values without
5688         calling the custom marshalling routines.
5689
5690         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5691         conversion in structures. Fixes #74882.
5692
5693 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5694
5695         * culture-info-table.h : zh-* cultures were missing.
5696
5697 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5698
5699         * threads.c: Added a new event background_change_event which is signaled
5700         when a thread changes its background mode.
5701         Moved here several checks previously done in managed code. The checks
5702         require the thread lock, and using the thread lock in managed code
5703         can result in deadlocks.
5704         Merged Start_internal and Thread_internal into a single method. Now 
5705         Thread_internal does all work of creating and starting a thread.
5706         Added icalls for setting and getting the state of the object. Moved from
5707         managed code to avoid locking there.
5708         Added wait_for_tids_or_state_change() which is called instad of
5709         wait_for_tids when waiting for non-backround threads to end. This method
5710         will return if one of the threads ends or the background_change_event
5711         is signaled.
5712         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5713         the background mode. This method signals the background_change_event
5714         event.
5715         * icall.c:
5716         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5717         removed Start_internal.
5718         
5719 2005-05-11  Martin Baulig  <martin@ximian.com>
5720
5721         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5722         to order of some fields to get proper alignment on 64-bit machines.
5723
5724 2005-05-11  Martin Baulig  <martin@ximian.com>
5725
5726         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5727         changes as they're broken and completely fuck up the debugger.
5728
5729         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5730
5731 2005-05-10  Martin Baulig  <martin@ximian.com>
5732
5733         * reflection.c (mono_reflection_generic_class_initialize): Don't
5734         call mono_class_setup_parent() here.
5735
5736 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5737
5738         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5739         send/receive timeout use an integer in milliseconds. We were using a
5740         struct timeval.
5741
5742 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5743
5744         * locales.c:
5745         (internal_get_cultures): reserve the first slot of the array for the
5746         InvariantCulture, which will be filled in managed code.
5747
5748 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5749
5750         * reflection.c (mono_image_fill_module_table): Initialize the
5751         GENERATION field as well.
5752
5753 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5754
5755         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5756         Monitor.Enter on the object.
5757
5758 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5759
5760         * threads.c: Enable the wait for running threads when exiting.
5761         * icall.c: Suspend all threads before exiting.
5762
5763 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5764
5765         * assembly.c (mono_assembly_load_reference): Fix warning.
5766
5767 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5768
5769         * threadpool.c: changed the default number of threads per cpu. From now
5770         on, the default will be 20 + (5 * number of cpus) instead of 50.
5771
5772 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5773
5774         * loader.c (mono_method_get_signature_full): Add locking here.
5775
5776 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5777
5778         * appdomain.c: Moved methods for parsing and freeing assembly
5779         names to assembly.c.
5780         * assembly.c, domain-internals.h: Created public methods for parsing
5781         assembly names. Fixed mono_assembly_load_with_partial_name:
5782         it now finds the best match, taking into account the version,
5783         token and culture specified in the partial name. Also return
5784         the latest version if no version information is specified.
5785
5786 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5787
5788         * threadpool.c: replace check for SocketAsyncCall class.
5789
5790 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5791
5792         * threadpool-internals.h:
5793         * Makefile.am: added threadpool-internals.h
5794
5795         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5796         that happen in threadpool threads (tested on MS).
5797         (mono_thread_pool_remove_socket): new function that dispatch any pending
5798         AIO call on a socket that is closing. By now only epoll really needs it,
5799         as select/poll wake up when the socket closes.
5800
5801
5802         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5803
5804 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5805
5806         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5807
5808 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5809
5810         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5811
5812 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5813
5814         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5815         has an abort request, convert it into a suspend request.
5816
5817 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5818
5819         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5820         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5821         is not supported yet.
5822
5823 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5824
5825         * image.c: register assemblies loaded from data (bundles) in the loaded
5826         assemblies hash. Fixes bug #74772.
5827
5828 2005-04-29  Martin Baulig  <martin@ximian.com>
5829
5830         * class.c (mono_type_get_name_recurse): Update to the new naming
5831         schema from the latest .NET 2.x beta2.
5832         (mono_class_setup_vtable_general): If we're a generic instance,
5833         copy the vtable from our generic type definition and inflate all
5834         the methods in it.
5835
5836         * loader.c (find_method): Update to the new naming schema from the
5837         latest .NET 2.x beta2.
5838
5839 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5840
5841         * class.c (mono_class_init): Add a mono_loader_unlock to the
5842         #74734 fix.
5843
5844 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5845
5846         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5847         suspend_all_other_threads () call for the time being, since it can hang.
5848
5849         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5850         the background threads to exit, since it can also hang.
5851
5852         * class.c (mono_class_init): Applied patch from Ankit Jain 
5853         (radical@gmail.com). Avoid pending init errors when a field refers
5854         to a nested class using a typeref. Fixes #74734.
5855
5856         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5857         this for dynamic modules.
5858
5859 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5860
5861         * threads.c: don't wait for threads that are in the process of aborting
5862         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5863         and waiting for background threads to finish. This makes xsp and
5864         mod-mono-server exit without random length delays and/or hangs.
5865
5866 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5867
5868         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5869
5870 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5871
5872         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5873         dynamic types to prevent infinite loops. Fixes #74727.
5874
5875         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5876         ..._is_assignable_to.
5877
5878 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5879
5880         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5881
5882 2005-04-25  Martin Baulig  <martin@ximian.com>
5883
5884         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5885
5886         * domain.c
5887         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5888
5889         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5890
5891         * reflection.c (build_compressed_metadata): Set metadata header
5892         version to 2.0.
5893
5894 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5895
5896         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5897         number into an integral and a decimal part. Fixes #70473.
5898
5899         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5900
5901 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5902
5903         * culture-info-table.h : reflected the latest locale-builder output.
5904
5905 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5906
5907         * threadpool.c: check for SuspendRequested too when deciding if
5908         mono_thread_interruption_checkpoint should be called.
5909
5910 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5911
5912         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5913         * threads.c: remove interruption_mutex and use Interlocked instead. When
5914         suspending all the threads, wait for all the suspended events at once.
5915         If we're shutting down and get an APC that is going to be queued,
5916         call mono_thread_execute_interruption immediately, as the thread might
5917         be sleeping on a pthread condition or mutex.
5918
5919         * icall.c: call mono_runtime_set_shutting_down before suspending the
5920         threads.
5921
5922         Fixes bug #74693. And now xsp is happier when exiting.
5923
5924 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5925
5926         * loader.c (mono_stack_walk): Fix #74690.
5927
5928 2005-04-22  Martin Baulig  <martin@ximian.com>
5929
5930         * mono-debug.h (MonoDebugMethodJitInfo): Added
5931         `MonoDebugMethodJitInfo *jit'.
5932
5933         * mono-debug.c (mono_debug_read_method): Cache the
5934         MonoDebugMethodJitInfo in `address->jit'.
5935         (mono_debug_free_method_jit_info): New public method.
5936
5937 2005-04-22  Martin Baulig  <martin@ximian.com>
5938
5939         * class.c (mono_class_is_assignable_from): Disallow
5940         type parameter -> interface.
5941
5942 2005-04-21  Dick Porter  <dick@ximian.com>
5943
5944         * threads.c (mono_thread_create): Turn an assertion into an error.
5945
5946 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5947
5948         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5949         
5950         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5951         Fix some gcc 4.0 warnings.
5952
5953 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5954
5955         * file-io.c: fix alt dir separator char on unix systems
5956         and cleanup (fixes bug #71214).
5957
5958 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
5959
5960         * marshal.c: Use CALLVIRT instead of CALL when dispatching
5961         a call to a remote domain, since the method may be an
5962         interface method in the client domain. This fixes bug #74192.
5963
5964 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5965
5966         * threadpool.c: recv/send are now performed before going back to managed
5967         code to save one transition.
5968
5969 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5970
5971         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
5972
5973         * metadata/threadpool.c: removed hack to workaround the bug above.
5974
5975         Fixes bug #74618.
5976
5977 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
5978
5979         * reflection.c reflection.h: Fix handling of parameter defaults in
5980         dynamic methods. Also fixes handling of parameter attributes.
5981         Fixes #74609.
5982
5983         * mono-debug.c (mono_debug_close_image): Fix warning.
5984
5985 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5986
5987         * socket-io.h: replaced old unused field with new 'blocking'.
5988         * threadpool.c: restore socket blocking state on windows(tm).
5989
5990 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
5991
5992         * icall.c: don't return the codebase in the AssemblyName[] returned by
5993         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
5994         * object-internals.h: Removed FIXME (fields were presents) and fixed
5995         versioncompat declaration.
5996
5997 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5998
5999         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6000         not closed, so don't cleanup when it happens.
6001
6002 2005-04-13  Chris Toshok  <toshok@ximian.com>
6003
6004         * mono-debug-debugger.h: change prototype for
6005         mono_debugger_lookup_type.
6006
6007         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6008         this function, although it should probably be named
6009         mono_debugger_init_type.
6010
6011 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6012
6013         * threadpool.c: fix non-AIO case.
6014
6015 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6016
6017         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6018         the built-in profiler to measure just JIT compilation times.
6019
6020 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6021
6022         * threadpool.c: the epollfd might be closed by another thread at
6023         any time, so ignore EBADF at treat it as a "we're closing" sign.
6024
6025 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6026
6027         * threadpool.c: release the semaphores with a count equals to the number
6028         of working threads in both IO and regular pools. Fixed typo that messed
6029         up the count of IO pool threads. Don't initialize the pipe handles if
6030         we're using epoll.
6031
6032 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6033
6034         * threadpool.c: some systems don't like a NULL when deleting the socket
6035         from epoll.
6036
6037 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6038
6039         * threadpool.c: fix semaphore allocation.
6040
6041 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6042
6043         * threadpool.c: added epoll() based implementation for asynchronous IO
6044         that is used instead of the default poll() when available.
6045         It can be disabled by setting MONO_DISABLE_AIO.
6046
6047 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6048
6049         * threadpool.c: windows needs 'closesocket' and instead of returning
6050         0 when the stream is closed while in select, it returns -1. Fixes bug
6051         #74573.
6052
6053 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6054
6055         * class.c (class_compute_field_layout): Fix the regression caused by
6056         the previous try.
6057
6058 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6059
6060         * threadpool.c: separate pool for socket async. IO.
6061         * threadpool.h: mono_max_worker_threads is not a global any more.
6062
6063 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6064
6065         * class.c (class_compute_field_layout): Fix #74549.
6066
6067 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6068
6069         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6070         use 2 connected sockets instead.
6071
6072 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6073
6074         * mono-config.c: Add new entry point for mkbundle
6075         mono_config_parse_memory. 
6076
6077 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6078
6079         * threadpool.c: removed another unused function.
6080
6081 2005-04-08  Ankit Jain  <radical@corewars.org>
6082
6083         * reflection.c (get_default_param_value_blobs): Add 'types'
6084         parameter to get the types encoded in the constant table.
6085         (mono_param_get_objects): Use the type from the constant table,
6086         not the type of the parameter, when creating default values.
6087         Handle null default values correctly.
6088
6089 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6090
6091         * file-io.c:
6092         * file-io.h:
6093         * threadpool.c:
6094         * threadpool.h:
6095         * icall.c:
6096         * socket-io.c: removed dead code for async IO.
6097
6098 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6099
6100         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6101
6102         * threadpool.c: intercept socket async. calls and pass them to a thread
6103         that is polling and dispatching the job items to the threadpool as
6104         socket become ready. Fixes bugs #71217, #71933.
6105
6106         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6107         between char and short/ushort arrays.
6108
6109         * socket-io.c: remove dead code.
6110
6111 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6112
6113         * locales.c,
6114           icall.c : removed InternalToUpper_Comp() and
6115           InternalToLower_Comp().
6116
6117 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6118
6119         * char-conversions.h : The tables were incorrectly generated. Should
6120           be generated against invariant culture.
6121
6122 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6123
6124         * object.c (mono_runtime_invoke_array): Fix return value when 
6125         passing pre-created valuetype objects to ctors.
6126
6127         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6128         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6129         Fixes #74338.
6130
6131 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6132
6133         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6134         only used with --security and hides the wrong corlib version error.
6135
6136 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6137
6138         * class.c: Changed mono_class_name_from_token so that types
6139         outside of a namespace don't have an initial period.  Improved
6140         the g_warning message used in _mono_class_get when loading
6141         fails.
6142         * assembly.c: In mono_assembly_load_reference, when an assembly
6143         can't be found, "No such file or directory" is misleading and
6144         unhelpful because a few paths were checked for the presence of
6145         the assembly.  When that happens (ENOENT), display a nicer
6146         message indicating the directories that were searched.  In all
6147         cases, the warning is made easier to read for non-hackers.
6148
6149 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6150
6151         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6152         project/solution.
6153         * appdomain.h|domain.c: Removed inline from functions.
6154         * appdomain.c: Reduced warnings when compiling on windows.
6155         * icall.c: Fixed output_debug declaration to gunichar2*.
6156         * mono-config.c: Reduced warnings when compiling on windows.
6157         * rand.c: Added missing "windows.h". Added missing return value.
6158         * rawbuffer.c: Added missing winsock2.h for windows.
6159         * sysmath.h: Added mono-compiler.h header to allow/ease 
6160         compilation with non-GCC compilers.
6161         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6162         Removed cast warnings.
6163
6164         Adapted from the work of J Lothian (for VC6).
6165
6166 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6167
6168         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6169         from default_path.
6170
6171 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6172
6173         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6174         the 2.0 profile.
6175
6176 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6177
6178         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6179         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6180         stuff, and it would probably use $(prefix)/share rather than
6181         $(prefix)/lib.
6182
6183 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6184
6185         * console-io.c: added 2 includes that might be missing.
6186
6187 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6188
6189         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6190         profile.
6191
6192         * reflection.c (create_custom_attr): Allocate the params array using
6193         alloca so it gets GC tracking.
6194
6195 2005-03-23  Chris Toshok  <toshok@ximian.com>
6196
6197         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6198         out some spew.
6199
6200 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6201
6202         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6203         changes to pick up any changes in prefix, etc.
6204
6205 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6206
6207         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6208         
6209         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6210         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6211
6212 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6213
6214         * class-internals.h object-internals.h class.c reflection.c: Extend the
6215         mono_lookup_dynamic_token () function to return the class of the
6216         token as well. 
6217
6218         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6219         well. Fixes #73848.
6220
6221 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6222
6223         * security-manager.c: Skip inheritance checks for intra-corlib
6224         class inheritance and method overrides. This skips a lot of checks
6225         and (anyway) permissions cannot work until corlib is loaded.
6226
6227 2005-03-23  Martin Baulig  <martin@ximian.com>
6228
6229         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6230         MONO_TYPE_GENERICINST.  
6231
6232 2005-03-23  Martin Baulig  <martin@ximian.com>
6233
6234         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6235
6236 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6237
6238         * class.c: added locking comments to some functions.
6239         Cache the interface offsets arrays (saves about 20 KB
6240         of runtime memory in a typical app).
6241         Reduce the time overhead in mono_class_setup_supertypes ().
6242
6243 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6244
6245         * icall.c: speedup and fix leaks in GetMethodsByName and
6246         GetPropertiesByName.
6247
6248 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6249
6250         * reflection.c: some locking fixes.
6251
6252 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6253
6254         * metadata.c: added missing break in case statement.
6255
6256 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6257
6258         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6259         typedbyref return values. Fixes #73941.
6260
6261 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6262
6263         * security-manager.c|h: Added demandunmanaged method and 
6264         suppressunmanagedcodesecurity class to MonoSecurityManager.
6265         Renamed aptc class to allowpartiallytrustedcallers.
6266
6267 2005-03-17  Martin Baulig  <martin@ximian.com>
6268
6269         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6270
6271 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6272
6273         * file-io.c: disabled file async. IO using aio_*. It uses the
6274         threadpool now. Workaround for bug #73718.
6275
6276 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6277
6278         * assembly.h, mono-config.c: added code to deal with bundled configs
6279         for bundled assemblies.
6280
6281 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6282
6283         * *.c, private.h: cleanup, removing old private.h header file.
6284
6285 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6286
6287         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6288         and throw_on_unmappable_char attributes.
6289
6290 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6291
6292         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6293         _ProcessName_internal.
6294
6295 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6296
6297         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6298         #73631.
6299
6300         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6301         are no longer used.
6302
6303 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6304
6305         * object.c (compute_class_bitmap): Add support for generics. Fixes
6306         #73527.
6307
6308 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6309
6310         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6311
6312 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6313
6314         * filewatcher.c: commented out the code for windows watcher, as we don't
6315         use it (we use the managed implementation instead).
6316
6317 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6318
6319         * object-internals.h (MonoThread): Remove 'unused1' field.
6320
6321         * appdomain.c: Bump corlib version.
6322
6323         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6324
6325         * reflection.c (mono_reflection_create_runtime_class): Remove the
6326         AssemblyBuilder.Save optimization since it causes too many problems.
6327
6328 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6329
6330         * exception.c|h: Added mono_get_exception_reflection_type_load to
6331         create a ReflectionTypeLoadException object.
6332         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6333         to return NULL is a InheritanceDemand fails during reflection. Updated
6334         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6335         ReflectionTypeLoadException if an InheritanceDemand fails during 
6336         reflection. Added icall mapping for GetLinkDemandSecurity.
6337         * security-manager.c|h: Added ves_icall_System_Security_
6338         SecurityManager_GetLinkDemandSecurity internal call to return the
6339         class and methods permissions set for a LinkDemand. Removed unused
6340         fields in MonoSecurityManager.
6341
6342 2005-03-10  Martin Baulig  <martin@ximian.com>
6343
6344         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6345         it's a generic instance.
6346
6347 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6348
6349         * reflection.c (mono_get_object_from_blob): Applied patch from
6350         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6351
6352         * class.c (mono_class_is_assignable_from): Another try at fixing 
6353         #73469 without breaking anything.
6354
6355 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6356
6357         * class.c: (mono_class_is_assignable_from): Revert the last changes
6358         since they don't work with generics.
6359         
6360         * class.c (mono_class_is_assignable_from): Fix build bustage.
6361
6362         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6363         the managed IsAssignableFrom method. Fixes #73469.
6364
6365         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6366         function.
6367
6368 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6369
6370         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6371         memory when the remoting callback does not sets the out arguments.
6372         Fixes #73007.
6373
6374         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6375         by mistake.
6376
6377         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6378
6379         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6380
6381         * appdomain.c: Bump corlib version.
6382
6383 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6384
6385         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6386         function.
6387
6388         * threads.c (mono_thread_attach): Detect threads which are not started
6389         by the GC pthread wrappers.
6390
6391 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6392
6393         * icall.c: Added new icall for RNG.
6394         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6395         single handle on Linux to access /dev/urandom and fix #73183.
6396
6397 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6398
6399         * object.c: setting the new vtable in a transparent proxy object must
6400         not change the GC descriptor.
6401
6402 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6403
6404         * object.c: fixed compilation without GCJ support.
6405         * reflection.c: for runtime-created types ensure klass->has_references
6406         is correct (bug #73215).
6407
6408 2005-03-02  Martin Baulig  <martin@ximian.com>
6409
6410         * class.c (mono_class_is_assignable_from): Make this work if
6411         `oklass' is a generic instance; fixes #72831.
6412
6413 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6414
6415         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6416         with hasthis set.
6417         
6418         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6419
6420         * marshal.c: Reorganize native->managed marshalling code to also use
6421         the emit_marshal_... functions.
6422
6423 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6424
6425         * object.c: typed allocs have issues with bitmap sizes > 30,
6426         so check for max_set >= 30.
6427
6428 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6429
6430         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6431         managed code. Fixes #73012.
6432
6433         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6434
6435         * metadata.c reflection.c: Load/Emit elem_mult as well.
6436         
6437         * metadata.h (MonoMarshalSpec): Add comment.
6438
6439         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6440
6441         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6442         num_elem to -1 if not given.
6443
6444         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6445
6446         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6447         given values.
6448
6449 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6450
6451         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6452
6453 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6454
6455         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6456
6457         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6458
6459 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6460
6461         * object.c: generalized the reference bitmap creation
6462         and added hooks for the new GC.
6463         * class-internals.c: removed the gc_bitmap field from MonoClass.
6464
6465 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6466
6467         * domain.c: help the compiler to produce better code
6468         in mono_jit_info_table_find ().
6469
6470 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6471
6472         * object.c: make all allocations look typed.
6473
6474 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6475
6476         * socket-io.c: load Mono.Posix if it's not loaded already
6477         (fixes bug#73033).
6478
6479 2005-02-24  Martin Baulig  <martin@ximian.com>
6480
6481         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6482         * reflection.c (dup_type): Likewise.
6483
6484 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6485
6486         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6487         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6488
6489 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6490
6491         * domain.c, threads.c, object-internals.h: make the critical thread
6492         local vars use the fast access mode (even when we're compiled in
6493         a lib). Provide accessors to be used by the jit during codegen.
6494
6495 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6496
6497         * appdomain.c: Changed hook functios behavior to include
6498         support for the reflection only assemblies. Some icalls were changed
6499         to support the mentioned assemblies too. Signatures of static methods
6500         try_assembly_resolve and real_load now have an additional parameter:
6501         refonly.
6502
6503         * assembly.c: General changes to mono_assembly_ methods to support
6504         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6505         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6506         suffix, to support an additional gbool parameter to specify whether
6507         the assembli is reflection only or not. Created some new hook functions 
6508         to add support for reflection only assemblies. Signatures of static 
6509         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6510         have now an additional parameter: refonly.
6511
6512         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6513         indicating whether the assembly is reflection only or not.
6514
6515         * exception.c: Add mono_get_exception_invalid_operation.
6516
6517         * icall.c: Throw an InvalidOperationException when trying to invoke
6518         a property/method/event, or trying to set/get the value of a field.
6519         Also add an icall to retrieve the ref_only flag to the
6520         MonoReflectionAssembly.
6521
6522 2005-02-23  Chris Toshok  <toshok@ximian.com>
6523
6524         Part of fix for #72827.
6525         * mono-debug.c (mono_debug_add_method): add lexical block data to
6526         the info we write.  Kind of a hack at the moment - we copy the
6527         lexical block info from the MonoDebugMethodInfo to the
6528         MonoDebugMethodJitInfo here, before writing it.
6529         (mono_debug_read_method): read the lexical block info.
6530
6531         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6532
6533         * debug-mono-symfile.h: add lexical block support.
6534
6535         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6536         support.
6537
6538 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6539
6540         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6541
6542         * object.c (mono_runtime_free_method): Call mono_free_method () and
6543         put the TODOs there.
6544
6545         * loader.c (mono_free_method): Free up most memory allocated for 
6546         dynamic methods.
6547
6548 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6549
6550         * reflection.c: properly flag a Type argument to a
6551         named custom attr value (bug #72248).
6552
6553 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6554
6555         * reflection.c: reduce code duplication in named custom
6556         attribute encoding.
6557
6558 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6559
6560         * reflection.c: properly encode custom attrs of type object
6561         (bug #72649).
6562
6563 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6564
6565         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6566
6567 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6568
6569         * socket-io.c: load System.dll if it's not loaded already
6570         (bug #72850 and #70477).
6571
6572 2005-02-21  Martin Baulig  <martin@ximian.com>
6573
6574         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6575         generic instances.
6576
6577 2005-02-21  Martin Baulig  <martin@ximian.com>
6578
6579         * reflection.c (mono_image_build_metadata): We also need to
6580         "fixup" the MethodImpl table after we computed the final method
6581         indices.  Call fixup_methodimpl() to do that.
6582         (fixup_methodimpl): New private method.
6583
6584 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6585
6586         * assembly.c: special case mscorlib.dll (bug#72536),
6587         patch from Carlos Alberto Cortez.
6588
6589 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6590
6591         * threads-types.h threads.c: Fix build bustage.
6592
6593         * threads.c: Use a union for long<->double conversions.
6594
6595         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6596         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6597
6598         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6599         containing the checkpoint call with NOT_TAKEN.
6600         
6601         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6602         checkpoint before pushing the arguments, so they won't have to be
6603         spilled to stack.
6604
6605 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6606
6607         * domain.c, assembly.c, domain-internals.h: make some data
6608         const and relocation-free.
6609
6610 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6611
6612         * object.c, appdomain.c, class-internals.h: introduce the
6613         MonoClassRuntimeInfo structure to hold the info needed to
6614         use a class at runtime. Made mono_class_vtable() lock-free
6615         for all the appdomains.
6616
6617 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6618
6619         * metadata-internals.h, image.c: introduce a per-image mempool to
6620         be used for memory that has the same lifetime as the image.
6621
6622 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6623
6624         * domain.c: In mono_init_internal(), instead of selecting the first
6625         runtime version supported by an executable, get a list of all
6626         supported versions and select the one for which an mscorlib exists
6627         (since even if the runtime supports a given version, it doesn't mean
6628         that the framework for that version is installed).
6629         Modified get_runtimes_from_exe to support this behavior.
6630         In supported_runtimes, added information about additional system
6631         assembly versions.
6632         
6633         * assembly.c: Added support for more than one system assembly version
6634         per runtime version. Updated the assembly list.
6635         In mono_assembly_remap_version, removed the initial version check,
6636         since we don't know to which version we need to compare until we
6637         get the version set on which the assembly is based.
6638         Moved the code for loading corlib into the new method
6639         mono_assembly_load_corlib(), so it can be used by the initialization
6640         code.
6641         
6642         * domain-internals.h: Updated data structures and added declaration
6643         for mono_assembly_load_corlib.
6644
6645 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6646
6647         * reflection.c (resolve_object): Fix the creation of the signature in 
6648         the SignatureHelper case.
6649
6650         * assembly.c (mono_assembly_remap_version): Fix binary search.
6651         
6652 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6653  
6654         * class.c: Added inheritance check when a method is overloaded (from a
6655         virtual method or when implementing an interface) and when a class is
6656         inherited. Added functions to set a failure for a class and to 
6657         retreive the exception from a failure.
6658         * class-internals.h: Added fields to MonoClass to keep the exception
6659         information status for inheritance (or other exceptions) to be thrown
6660         later (i.e. not at load time).
6661         * object.c: Throw the inheritance SecurityException when a type is to 
6662         be created with either class or method inheritance violations.
6663         * reflection.c|h: Fix when getting declsec from a class. Removed 
6664         unrequired code for class. Improved sanity in parameter naming.
6665         * security-manager.c|h: Added functions to check for class and method
6666         inheritance.
6667
6668 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6669
6670         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6671         and has_finalize in dynamic types as well.
6672
6673 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6674
6675         * culture-info-table.h : fixed currency format for en-GB (and so on).
6676
6677 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6678
6679         * gc.c: ensure the GC handles never have 0 as a value.
6680
6681 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6682
6683         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6684         a pointer to a struct to unmanaged code. Fixes #72625.
6685
6686 2005-02-16  Martin Baulig  <martin@ximian.com>
6687
6688         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6689
6690 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6691
6692         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6693
6694 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6695
6696         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6697
6698         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6699         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6700         etc. Fixes #71471.
6701
6702         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6703
6704         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6705
6706 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6707
6708         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6709         changes to make the current context a field in MonoThread.
6710
6711 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6712
6713         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6714         the last change.
6715         
6716         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6717         extracted from mono_marshal_get_native_wrapper.
6718
6719         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6720         to create wrappers around native functions.
6721
6722         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6723         delegates for arbitrary function pointers. Fixes #71472.
6724
6725 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6726
6727         * threads.c: cleaned up the code a little.
6728
6729 2005-02-15  Martin Baulig  <martin@ximian.com>
6730
6731         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6732         the data table.
6733
6734         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6735         allocate larger chunks if needed.
6736
6737 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6738
6739         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6740         in by mistake.
6741
6742 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6743
6744         * domain.c: keep the domains in an array and ensure the domain ids
6745         are kept small, so they can be used as indexes to domain-specific data
6746         with a small memory overhead.
6747
6748 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6749
6750         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6751
6752 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6753
6754         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6755
6756 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6757
6758         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6759
6760         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6761         values.
6762
6763         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6764         
6765 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6766
6767         * domain-internals.h: add the hashtable here.
6768
6769         * class-internals.h: Remove `info' from MonoMethod
6770
6771         * domain.c: Add a new hashtable, jit_trampoline_hash
6772
6773 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6774
6775         * object.c: don't set the value of static fields
6776         (fixes bug#72494).
6777
6778 2005-02-11  Martin Baulig  <martin@ximian.com>
6779
6780         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6781         (mono_debug_add_method): Silently ignore the method if it's too big.
6782         (mono_debug_add_type): Likewise.
6783
6784 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6785
6786         * threads.c, appdomain.c: remove #ifdefs from the code.
6787
6788 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6789
6790         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6791         common security informations. This allows us to stay in unmanaged code
6792         when doing LinkDemand and it's special cases (except for the first 
6793         time for initialization). The flags a very much used with --security.
6794         * reflection.c|h: Added code to get declarative security attributes 
6795         for LinkDemand and InheritanceDemand. This required to refactor the
6796         existing code for Demand.
6797         * security-manager.c|h: Added new method fields for the special cases
6798         of LinkDemand.
6799
6800 2005-02-10  Martin Baulig  <martin@ximian.com>
6801
6802         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6803         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6804
6805 2005-02-10  Martin Baulig  <martin@ximian.com>
6806
6807         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6808         debugging code; this is almost a complete rewrite.
6809
6810         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6811
6812 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6813
6814         * domain.c, object.h: expose mono_string_equal () and 
6815         mono_string_hash ().
6816         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6817         it's implemented in managed code.
6818
6819 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6820
6821         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6822         lo leak objects between appdomains.
6823
6824 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6825
6826         * assembly.c: old compilers compilation fix from 
6827         robertj@gmx.net (Robert Jordan).
6828
6829 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6830
6831         * class-internals.h: Little reminder for the future.
6832
6833         * debug-helpers.c: Fix up wrapper_type_names
6834
6835 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6836
6837         * image.c, metadata-internals.h: when loading an image from a file,
6838         mmap all of it and use the same codepaths as when using a
6839         in-memory image: the code is simpler and we use less memory
6840         (both writable and readonly).
6841
6842 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6843
6844         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6845         API to alloc runtime data structures that need to be tracked by the
6846         GC and contain pointers.
6847         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6848         make the code more readable and eventually use a different GC.
6849
6850 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6851
6852         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6853         for out arguments.
6854         
6855 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6856
6857         * object.c: In release_type_locks(), don't release the cctor lock
6858         if it has already been released. This fixes a crash in the
6859         thread5 test.
6860
6861 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6862
6863         * gc.c, marshal.c, icall.c: register a delegate for finalization
6864         only when the native function pointer has been allocated for it.
6865
6866 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6867
6868         * object.c: cleaned up some code, allocate objects that are
6869         pointer free with the atomic malloc variant. Allocate memory
6870         for static data from the mempool if it's pointer-free.
6871         Allocate the bounds array at the end of the array data, when needed.
6872         * object-internals.h, object.h: move a private function in a private
6873         header.
6874         * class.c: handle missing case in tracking references in fields.
6875
6876 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6877
6878         * class.c, class-internals.h: keep track if a type has
6879         reference fields in either the instance or static fields.
6880
6881 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6882
6883         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6884         and renamed to MonoRuntimeInfo. Added fields to store the expected
6885         framework assembly version. Changed mono_get_framework_version and
6886         mono_get_runtime_version for a single mono_get_runtime_info method.
6887         
6888         * assembly.c: Added method to remap system assembly versions to the
6889         current executing runtime version. Removed old mapping code.
6890         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6891         
6892         * icall.c, reflection.c: Track api changes.
6893
6894 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6895
6896         * loader.c (method_from_memberref): Improve error reporting,
6897         produce the class name instead of the typeref/typedef index. 
6898
6899 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6900
6901         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6902
6903 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6904
6905         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6906         stdcall and charset name mangling.  Reorganize the code and add
6907         some tracing stuff.
6908
6909 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6910
6911         * monodiet.c: More iters!
6912
6913         * marshal.c: Iter usage.
6914
6915         * icall.c: Iter usage.
6916
6917         * object.c: Use iters.
6918
6919         * debug-helpers.c: More iters
6920
6921 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6922
6923         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6924         under win32.
6925
6926 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6927
6928         * mono-debug-debugger.c: use iters
6929
6930         * class.c, class-internals.h: mono_class_setup_events is static
6931         now
6932
6933         * All callers: use iters
6934
6935 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6936
6937         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6938         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6939
6940 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6941
6942         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6943
6944         * marshal.h: Add prototypes for ldfld/stfld_remote.
6945
6946         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6947         this is called during startup.
6948         
6949 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6950
6951         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6952         MonoThreadsSync struct private in monitor.c. Changed the way
6953         MonoThreadsSync is allocated so it's faster and there is no
6954         need to keep track of it with a finalizer and it uses less memory.
6955         This also finally allows us to allocate mono objects as ptrfree when
6956         there are no reference fields.
6957
6958 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
6959
6960         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
6961         disappearing link to the GC interface and use them to simplify
6962         the gchandles code.
6963
6964 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6965
6966         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
6967         stfld_remote which call mono_load/store_field_new. This allows methods
6968         calling ldfld/stfld wrappers to be AOTed.
6969
6970         * console-io.c: Include sys/filio.h under solaris.
6971         
6972         * console-io.c: Include curses.h if needed correctly.
6973
6974 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6975         
6976         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
6977         method->klass as well.
6978
6979         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
6980
6981         * class.c (mono_class_init): Switch on lazy initialization of 
6982         methods.
6983
6984         * class.c (mono_class_get_finalizer): Handle the case when the 
6985         finalizer is inherited.
6986
6987 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6988
6989         * console-io.c: <curses.h> is needed by term.h on solaris.
6990
6991 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
6992
6993         * icall.c, class-internals.h, monodiet.c, class.c: Remove
6994         mono_class_setup_properties where possible. Remove this ftn from
6995         the header file, and make it static.
6996
6997 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6998
6999         * loader.c: Add missing setup_... call.
7000
7001         * class.c: Add missing setup_... calls.
7002
7003         * class.c (mono_class_init): Switch on lazy initialization of 
7004         the generic vtable.
7005         
7006         * class.c (mono_class_init): Fix generics broken by the recent changes.
7007
7008         * monodiet.c (handle_type): Add missing setup_... calls.
7009
7010         * class.c: Back out garbage in previous patch.
7011         
7012         * class.c: Add missing setup_... calls.
7013
7014         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7015         mono_class_setup_methods () if possible.
7016
7017         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7018
7019         * class-internals.h (MonoCachedClassInfo): New structure.
7020
7021         * class.c: Initialize properties and events fields of MonoClass lazily.
7022
7023         * class.c: Add infrastructure for lazily initializing the methods and
7024         vtable fields of MonoClass. Not yet used.
7025
7026         * class.c (mono_class_get_finalizer): New helper function.
7027
7028         * class.c: Add infrastructure for loading some class related data from
7029         an AOT file.
7030
7031         * object.c: Add infrastructure for initializing the vtable from data
7032         in the AOT file.
7033
7034         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7035
7036         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7037         appropriate initialization function before accessing parts of the
7038         MonoClass structure.
7039
7040         * marshal.c: Fix warnings.
7041         
7042         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7043
7044         * mono-debug-debugger.c (get_exception_message): Use 
7045         mono_class_get_method_from_name_flags ().
7046
7047 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7048
7049         * reflection.c, appdomain.c: Replace a few manual searches that
7050         Zoltan missed. (Paolo approved this part of my initial patch).
7051
7052 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7053
7054         * profiler.c: disable recording statistical events at report time.
7055
7056 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7057
7058         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7059         to byteswap arrays of enum values, too (bug #72080).
7060
7061 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7062
7063         * appdomain.c (set_domain_search_path): Allow this to be called if
7064         domain->setup is not yet set.
7065
7066         * loader.c (mono_method_get_index): New helper function.
7067
7068         * loader.c reflection.c: Use mono_method_get_index ().
7069
7070         * class.c (mono_class_get_method_from_name_flags): New helper method.
7071
7072         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7073         this.
7074
7075         * class.c (mono_class_get_cctor): New helper method.
7076
7077         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7078         mono_class_get_method () to look up methods.
7079
7080 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7081
7082         * console-io.c: Fix the build, this should work on Windows.
7083
7084 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7085
7086         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7087         be set to null to keep things valid
7088
7089 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7090
7091         * icall.c: added Console 2.0 icalls.
7092         * Makefile.am: added console-io.[ch]
7093         * console-io.[ch]: internal calls for Console 2.0 API.
7094
7095 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7096
7097         * class.c: make sure we consider all the interfaces
7098         when calculating max_interface_id (bug found by
7099         Jeroen Frijters running ikvm).
7100
7101 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7102
7103         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7104         valuetype fields to null.
7105
7106         * object.c (set_value): Ditto. Fixes #71669.    
7107
7108 2005-01-31  Martin Baulig  <martin@ximian.com>
7109
7110         * metadata.c (mono_metadata_has_generic_params): New public
7111         function; checks whether something is a generic method.
7112
7113 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7114
7115         * appdomain.c: fix infinite recursion when adding assemblies.
7116
7117 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7118
7119         * object.c: Fix small typo to return all items for Environment.
7120         GetCommandLineArgs.
7121
7122 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7123
7124         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7125         reflection.c: more domain and assembly-unload related fixes
7126         and memory leaks plugs.
7127
7128 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7129
7130         * 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.
7131
7132 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7133
7134         * loader.c (mono_method_signature): Make this method lazy
7135         (mono_get_method_from_token): Don't computate the signature here.
7136
7137         Doing this saves quite a bit of memory. I got 90 kb on starting up
7138         monodoc. It should also save some disk reads on startup.
7139
7140         * *: MonoMethod->signature might be NULL now. You *MUST* use
7141         mono_method_signature.
7142
7143 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7144
7145         * object.c (mono_runtime_get_main_args): Return an array from the
7146         current domain here. Fixes #71938.
7147
7148 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7149
7150         * monitor.c: formatting changes to comply with the
7151         mono coding style and remove #ifdefs from the code.
7152
7153 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7154
7155         * metadata.c, private.h: remove some unneeded data
7156         and use a more compact representation for table schemas.
7157
7158 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7159
7160         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7161         to get a better distribution in hash tables.
7162         * *.c: use mono_aligned_addr_hash() where appropriate.
7163         * assembly.c: make var static.
7164
7165 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7166
7167         * domain-internals.h: Put MonoJitInfo on a diet.
7168
7169         * domain.c: Fix a warning.
7170
7171 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7172
7173         * gc.c: rework the gc handles code to reuse handles
7174         when freed.
7175
7176 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7177
7178         * domain.c: fixed long standing bug in mono_string_equal() which
7179         was brought to light with the ldstr changes.
7180
7181 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7182
7183         * reflection.c: Remove warning by adding missing include for marshal.h
7184
7185 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7186
7187         * domain.c, object.c: change the ldstr_table to hold
7188         MonoString* as keys: makes the runtime isinterned lookup
7189         faster and simplifies memory management.
7190
7191 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7192  
7193         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7194         possible to add imperative security checks before calling the icall.
7195         * reflection.c: Return security attributes on the original MonoMethod
7196         (and not the wrapped one). This fix permissions on icalls.
7197
7198 2005-01-25  Dick Porter  <dick@ximian.com>
7199
7200         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7201         the check for mktime() support actually test the mktime() return
7202         value.  "Fixes" bug 71682, though the output is still different to
7203         MS.
7204
7205 2005-01-25  Martin Baulig  <martin@ximian.com>
7206
7207         * class.c (mono_class_is_assignable_from): Make this work for
7208         generic instances.
7209
7210 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7211
7212         * marshal.c (mono_string_utf8_to_builder)
7213         (mono_string_builder_to_utf16): We might not have ownership of the
7214         string. In thise case, we need to create a new buffer.
7215
7216         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7217         be null, in which case, use the default capacity.
7218
7219 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7220
7221         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7222         GC events to the profiler.
7223
7224 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7225
7226         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7227         if you don't want the GC to run.
7228
7229 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7230
7231         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7232         start providing a GC API and keeping different implementations in
7233         their own file.
7234         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7235
7236 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7237
7238         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7239         mmap rather than allocating a huge buffer.
7240         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7241         above.
7242
7243 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7244
7245         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7246         and CheckExecutionRights.
7247         * reflection.c|h: Keep the index of the declarative security to be 
7248         used, instead of the pointer, when AOT compiler is used. Also add 
7249         class initialization when requesting demands.
7250         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7251         CheckExecutionRights. Both properties are now FALSE by default, and
7252         unmodifiable, unless the --security option is used.
7253
7254 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7255
7256         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7257         reflection.c: properly refcount images and assemblies, many leaks fixed.
7258
7259 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7260
7261         * threadpool.c: increase the timeout for threads in the thread pool to
7262         10s.  Fixes bug #67159.
7263
7264 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7265
7266         * class-internals.h: Sun's compiler insists on explicit
7267         signed on bit fields to handle then correctly.
7268
7269 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7270
7271         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7272         Make the size of the array fit only the number of invalid path
7273         chars that we have.
7274
7275         * class.c (_mono_class_get): Improve the error reporting when a
7276         class referenced is not found, to assist debugging. 
7277
7278 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7279
7280         * threads.c: fix off-by-one error.
7281         * domain.c: free data allocated in the domain.
7282
7283 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7284
7285         * reflection.c (mono_method_body_get_object): Fill out exception info
7286         as well.
7287
7288         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7289         structure.
7290         
7291 2005-01-19  Martin Baulig  <martin@ximian.com>
7292
7293         * loader.c (mono_get_method_constrained): Make this work again.
7294
7295 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7296
7297         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7298         guint16 to match the managed side.
7299
7300         * reflection.c (mono_reflection_body_get_object): Fill out local
7301         variables array.
7302
7303         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7304         as well.
7305
7306         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7307         'local_var_sig_token'.
7308
7309 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7310
7311         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7312         System.Drawing.
7313
7314         * reflection.c (mono_method_body_get_object): Handle abstract and
7315         runtime methods.
7316
7317 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7318
7319         * marshal.c, loader.c, class-internals.h, reflection.c:
7320         store the emthod data for a wrapper in an array instead of a list.
7321
7322 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7323
7324         * marshal.c: change the code to allocate memory more
7325         conservatively for method wrappers.
7326
7327 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7328
7329         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7330         fields from MonoClass to the marshal info structure where they belong.
7331
7332 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7333
7334         * class.c, object.c, class-internals.h, marshal.c: rearrange
7335         some fields and tweak some types to lower memory usage.
7336
7337 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7338
7339         * threads.c (signal_thread_state_change): Handle the case when the
7340         target thread is the current thread.
7341
7342         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7343
7344         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7345         emit_ptr_to_object_conv. 
7346
7347         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7348         marshalling. Fixes #71352.
7349
7350 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7351
7352         * metadata.h, blob.h: move table enum to blob.h so it can be included
7353         in any header.
7354         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7355         cut the size of MonoImage/MonoDynamicImage.
7356
7357 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7358
7359         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7360
7361 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7362
7363         * reflection.c, reflection.h, icall.c: add a function to check
7364         if an attribute type is defined for a metadata object.
7365
7366 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7367
7368         * object-internals.h: Added some needed fields from StringBuilder class.
7369         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7370
7371 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7372
7373         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7374         threads before shutting down the runtime.
7375
7376         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7377
7378 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7379
7380         * object-internal.h, threads.c: implement stacksize and 
7381         parameterized thread start functionality (requires
7382         matching corlib). Marked broken code for later removal.
7383
7384 2005-01-12  Martin Baulig  <martin@ximian.com>
7385
7386         * class-internals.h (MonoGenericClass): Moved the `initialized'
7387         flag to MonoDynamicGenericClass, removed `init_pending'.
7388         (MonoGenericInst): Added `is_reference' flag.
7389
7390 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7391
7392         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7393         inside the MSDOS header. Fixes #71201.
7394
7395         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7396         gc thread.
7397         (mono_domain_finalize): Ditto.
7398
7399 2005-01-12  Martin Baulig  <martin@ximian.com>
7400
7401         * class.c (mono_get_shared_generic_class): Use the cache for
7402         non-dynamic generic classes.
7403
7404         * class-internals.h (mono_class_create_generic_2): Removed
7405         function prototype, this function is now static inside class.c.
7406
7407         * class.c (mono_class_create_generic_2): Made this static, only
7408         call it from mono_class_init() and mono_class_setup_parent().
7409         (collect_implemented_interfaces_aux): Call mono_class_init() on
7410         the interfaces we collect.
7411         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7412
7413 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7414
7415         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7416         it a real thread handle.
7417
7418         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7419         MonoJitExceptionInfo, since each catch clause needs its own variable.
7420         
7421 2005-01-11  Dick Porter  <dick@ximian.com>
7422
7423         * image.c (mono_pe_file_open): New variant on mono_image_open()
7424         that does not set up the CLI metadata; used for FileVersionInfo so
7425         it can get the data for windows binaries too.
7426         
7427         * process.c (process_read_string_block): Don't read off the end of
7428         the StringTable block.
7429
7430         These both fix bug 70766.
7431
7432 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7433
7434         * gc.c: set some fields to NULL at GC cleanup time.
7435         * threads.c: if we quit the main thread, call exit ().
7436
7437 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7438
7439         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7440
7441 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7442
7443         * threads.h, threads.c, object.c: added accessor and settor for
7444         main_thread. Handle it specially when exiting from it: wait
7445         for other foreground threads to exit.
7446
7447 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7448
7449         * process.c, verify.c: remove some bloat.
7450
7451 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7452
7453         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7454         the calling convention to cdecl under win32.
7455
7456 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7457
7458         * object.c (mono_object_get_size): New function to get the size of
7459         an object instance.
7460
7461         * profiler.c (simple_allocation): Use above.
7462
7463 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7464
7465         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7466         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7467         get an appdomain by it's id and we can't assume the root's id is 0).
7468         * domain-internals.h: Change the function prototype to match.
7469         * icall.c: Change the icall table for AppDomain.
7470
7471 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7472
7473         * locales.c (string_invariant_compare_char): Only compute
7474         GUnicodeTypes in the case where we need them.  Test for ordinality
7475         first and return if so.
7476
7477         From the commit:
7478
7479                 /*
7480                  * FIXME: here we must use the information from c1type and c2type
7481                  * to find out the proper collation, even on the InvariantCulture, the
7482                  * sorting is not done by computing the unicode values, but their
7483                  * actual sort order.
7484                  */
7485
7486 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7487
7488         * loader.c: for P/Invoke methods, allow the "Internal" shared
7489         library name to refer to the calling process symbol namespace.
7490
7491 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7492
7493         * Makefile.am: Add the security manager to the build.
7494         * security-manager.c|h: New. Initialization of the security manager.
7495
7496 2005-01-07  Dick Porter  <dick@ximian.com>
7497
7498         * threads.c: 
7499         * monitor.c: Update thread state during Monitor and WaitHandle
7500         waits.  Fixes bug 71031.
7501
7502 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7503
7504         * reflection.c (property_encode_signature): Correctly handle when the
7505         property has no methods.
7506
7507 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7508
7509         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7510         
7511         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7512         fields from mb, not rmb. Fixes #71017.
7513
7514         * marshal.c (emit_ptr_to_str_conv): Add support for 
7515         ByValTStr -> string conversion. Fixes #71015.
7516
7517         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7518
7519         * mempool.c (mono_mempool_contains_addr): New helper function.
7520
7521 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7522
7523         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7524         HasSematics encoded fields.
7525         
7526         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7527         invalid string marshalling.
7528
7529         * metadata.c: Fix warnings.
7530         
7531 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7532
7533         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7534         profiler support.
7535
7536 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7537
7538         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7539         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7540         tests.
7541
7542 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7543
7544         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7545         so methods containing these can be AOTed.
7546
7547 2005-01-03  Martin Baulig  <martin@ximian.com>
7548
7549         * loader.c (find_method): Removed the hack for generic instances.
7550         (method_from_memberref): If our parent is a generic instance, pass
7551         its generic type definition to find_method() and then inflate the
7552         method.
7553         (mono_get_method_constrained): Pass the generic type definition to
7554         find_method() and inflate the method later.
7555
7556         * class-internals.h (MonoStats): Added `generic_class_count'.
7557
7558         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7559         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7560
7561         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7562         generic type definitions.
7563
7564 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7565
7566         * loader.c icall.c: Fix warnings.
7567
7568 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7569
7570         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7571         blittable types. Fixes #70864.
7572
7573 2004-12-29  Martin Baulig  <martin@ximian.com>
7574
7575         * icall.c
7576         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7577
7578         * reflection.c (mono_method_get_object): Create a
7579         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7580         call mono_get_inflated_method().
7581
7582         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7583
7584 2004-12-27  Martin Baulig  <martin@ximian.com>
7585
7586         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7587         (MonoMethodInflated): Added `inflated' field.
7588
7589         * class.c (mono_class_inflate_generic_method): Don't really
7590         inflate the method here; just set the `is_inflated' flag in the
7591         MonoMethod.
7592         (mono_class_get_inflated_method): Actually inflate the method here
7593         if it's not already inflated; we use the MonoMethodInflated's new
7594         `inflated' field as a cache.
7595
7596 2004-12-26  Martin Baulig  <martin@ximian.com>
7597
7598         * class.c
7599         (inflate_generic_class): Moved some code out of inflate_generic_type().
7600         (mono_class_inflate_generic_method): If we're already inflated,
7601         inflate the context and use the declaring method; ie. make sure
7602         the declaring method of an inflated method is always the generic
7603         method definition.
7604         (mono_class_create_from_typedef): Create
7605         `class->generic_container->context->gclass'.
7606
7607 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7608
7609         * metadata-internals.h, marshal.c, reflection.c: More
7610         MonoGHashTable->GHashTable.
7611
7612         * domain-internals.h, class.c: Change MonoGHashTable's into
7613         GHashTables for some cases where no gc stuff is used
7614
7615         All users: update apis
7616
7617 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7618
7619         * metadata.c (builtin_types): Make this `const'. Makes this get
7620         put into the shareable section.
7621         (mono_metadata_init): Casts to make gcc happy.
7622
7623 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7624
7625         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7626
7627 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7628
7629         * icall.c: Added an internal call to retrieve the position and length
7630         of assembly-level declarative security attributes (RequestMinimum, 
7631         RequestOptional and RequestRefuse). This is used by the Assembly class
7632         to re-create the corresponding permission sets.
7633
7634 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7635
7636         * marshal.c: fix the stelemref wrapper to be type correct
7637         (and faster).
7638
7639 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7640
7641         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7642         to do key & 0x7fffffff. Hashtable already does this. It just
7643         results in longer code.
7644
7645 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7646
7647         * appdomain.c: Bump corlib version.
7648         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7649         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7650         * reflection.c|h: Add functions to get declarative security infos
7651         (blob position and length) for assemblies, classes and methods.
7652
7653 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7654
7655         * reflection.c: sort the constant table (bug #70693).
7656
7657 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7658
7659         * object-internals.h, threads.c, domain.c: add accessors for
7660         the MonoThread and MonoDomain tls keys.
7661
7662 2004-12-18  Martin Baulig  <martin@ximian.com>
7663
7664         * class.c (inflate_generic_type): If we're inflating a generic
7665         instance, set `ngclass->context->container = context->container';
7666         ie. the container we inflated into.
7667
7668         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7669         inflate_generic_type() changes.
7670
7671 2004-12-17  Martin Baulig  <martin@ximian.com>
7672
7673         * class-internals.h
7674         (MonoGenericClass): Replaced `MonoType *generic_type' with
7675         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7676         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7677         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7678
7679 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7680
7681         * exception.c (mono_exception_from_token): New helper function.
7682
7683 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7684
7685         * assembly.c (mono_assembly_load_with_partial_name): Call 
7686         mono_assembly_loaded before invoking the preload hooks. Fixes
7687         #70564.
7688
7689         * object-internals.h (MonoThread): Change culture_info and 
7690         ui_culture_info into an array.
7691
7692         * threads.c: Cache culture info objects from more than one appdomain.
7693
7694         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7695         current UI culture.
7696
7697 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7698
7699         * threads.h threads.c appdomain.c: Clear the culture_info field of
7700         all threads during unloading if they point to an object in the dying
7701         appdomain.
7702
7703 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7704
7705         * culture-info.h (TextInfoEntry): New struct
7706         * object-internals.h: sync with managed
7707         * locales.c: fill the `text_info_data' field
7708         * culture-info-tables.h: update
7709
7710 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7711
7712         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7713         collector.
7714
7715 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7716
7717         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7718         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7719
7720 2004-12-12  Martin Baulig  <martin@ximian.com>
7721
7722         * mono-debug-debugger.c (write_type): If we're an enum and the
7723         builtin types have already been initialized, call mono_class_init().
7724
7725 2004-12-11  Martin Baulig  <martin@ximian.com>
7726
7727         * metadata.c (mono_metadata_load_generic_params): Added
7728         `MonoGenericContainer *parent_container' argument; automatically
7729         compute `container->is_method'; pass the correct owner to
7730         get_constraints().      
7731
7732         * reflection.c (compare_genericparam): Sort the GenericParam table
7733         according to increasing owners. 
7734
7735 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7736
7737         * profiler.c: allow disabling the default profiler.
7738
7739 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7740
7741         * decimal.c, icall.c: allow disabling System.Decimal support.
7742
7743 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7744
7745         * reflection.c: Add support for null attribute arguments.
7746
7747 2004-12-09  Martin Baulig  <martin@ximian.com>
7748
7749         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7750         names to get rid of compiler warnings.
7751
7752 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7753
7754         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7755         mono_marshal_load_type_info (). Fixes #69625.
7756         (mono_marshal_get_ptr_to_struct): Likewise.
7757
7758 2004-12-08  Martin Baulig  <martin@ximian.com>
7759
7760         * mono-debug.h: Bumped version number to 47.
7761
7762         * mono-debug-debugger.c
7763         (mono_debugger_event_handler, mono_debugger_event): Take two
7764         guint64 arguments insteed of a gpointer and a guint32.  
7765
7766 2004-12-08  Martin Baulig  <martin@ximian.com>
7767
7768         * debug-mono-symfile.h
7769         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7770         `address' to `native_offset'.
7771
7772 2004-12-08  Martin Baulig  <martin@ximian.com>
7773
7774         * class.c (mono_class_create_from_typespec): Only inflate if we
7775         either have `context->gclass' or `context->gmethod'.
7776
7777 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7778
7779         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7780
7781         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7782
7783         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7784
7785         * reflection.c (mono_assembly_get_object): Remove the workaround put
7786         in for the release.
7787         
7788         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7789
7790         * appdomain.c: Bump corlib version.
7791
7792         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7793         be visible in other appdomains.
7794
7795 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7796
7797         * threads.c: Interlocked inc and dec for longs were messed up,
7798         use a KISS based impl for this. Fixes 70234
7799
7800 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7801
7802         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7803
7804 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7805
7806         * icall.c: fix to follow policy not to allow struct
7807         arguments in icalls.
7808
7809 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7810
7811         * process.c: make the patch that handles spaces in file paths work
7812         on mono/windows too.
7813
7814 2004-12-06  Martin Baulig  <martin@ximian.com>
7815
7816         * class.c (mono_class_create_generic): Call
7817         mono_class_setup_supertypes() if we're dynamic.
7818         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7819
7820 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7821
7822         * object-internals.h: Add new fields to MonoThread.
7823
7824         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7825
7826         * icall.c threads-types.h threads.c: Add new icalls.
7827
7828         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7829
7830         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7831         managed side.
7832
7833         * appdomain.c: Bump corlib version.
7834
7835         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7836         internal assemblies. Fixes #69181.
7837
7838 2004-12-05  Martin Baulig  <martin@ximian.com>
7839
7840         * class.c (mono_class_inflate_generic_signature): Make this a
7841         no-op if `context' is NULL or we don't have any type parameters;
7842         also copy `sentinelpos'.        
7843
7844 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7845
7846         * image.c: Add unbox_wrapper_cache.
7847
7848         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7849
7850         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7851         function generator.
7852         
7853         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7854         Fixes #70173.
7855
7856         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7857         
7858 2004-12-04  Martin Baulig  <martin@ximian.com>
7859
7860         * loader.c (mono_method_get_signature_full): New public function;
7861         like mono_method_get_signature(), but with an additional
7862         `MonoGenericContext *' argument.
7863
7864         * class.c (mono_class_inflate_generic_signature): Formerly known
7865         as inflate_generic_signature(); make this public.
7866
7867 2004-12-04  Martin Baulig  <martin@ximian.com>
7868
7869         * metadata.c
7870         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7871         instead of a `MonoGenericContainer *'.  
7872         (mono_metadata_parse_array_full): Likewise.
7873         (mono_metadata_parse_signature_full): Likewise.
7874         (mono_metadata_parse_method_signature_full): Likewise.
7875         (mono_metadata_parse_generic_inst): Likewise.
7876         (mono_metadata_parse_generic_param): Likewise.
7877         (mono_metadata_parse_mh_full): Likewise.
7878         (mono_type_create_from_typespec_full): Likewise.
7879
7880 2004-12-03  Martin Baulig  <martin@ximian.com>
7881
7882         * class-internals.h (MonoGenericContainer): Replaced the
7883         `MonoGenericContext * pointer with a `MonoGenericContext'
7884         structure and made it the first element.
7885
7886 2004-12-03  Martin Baulig  <martin@ximian.com>
7887
7888         * class.c
7889         (inflate_generic_type): Set the `context->container' when creating
7890         a new MonoGenericContext.
7891         (mono_class_inflate_generic_method): Likewise.
7892         (mono_class_create_from_typespec): Just use `context->container'
7893         to get the container.
7894
7895         * loader.c (method_from_methodspec): Set `context->parent' from
7896         `context->container' - and if that's a method container, use its
7897         parent.  Also set the `context->container' when creating a new
7898         MonoGenericContext.
7899         (mono_get_method_from_token): Use just `context->container' to get
7900         the container.
7901
7902         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7903         `gclass->context->container'.
7904
7905         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7906         the `context->container' when creating a new MonoGenericContext.
7907
7908 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7909
7910         * reflection.c (compare_genericparam): Sort params with identical
7911         owner by their number. Fixes gen-111 on sparc.
7912
7913 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7914
7915         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7916         around the domain changes.
7917
7918         * appdomain.c (mono_domain_unload): Handle the case when the thread
7919         calling Unload is itself being aborted during unloading. Fixes #70022.
7920
7921         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7922
7923         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7924         checkpoint_func as an icall so it gets a wrapper.
7925         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7926         in the cross-appdomain wrappers too.
7927
7928         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7929
7930         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7931
7932         * reflection.c: Fix some memory leaks.
7933         
7934 2004-12-02  Martin Baulig  <martin@ximian.com>
7935
7936         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7937
7938         * metadata.c (generic_class_cache): New static hashtable.
7939         (mono_metadata_lookup_generic_class): New public method.
7940
7941 2004-12-02  Martin Baulig  <martin@ximian.com>
7942
7943         * class.c (mono_class_create_from_typedef): Call
7944         mono_class_setup_parent() and mono_class_create_mono_type() before
7945         parsing the interfaces.
7946
7947 2004-12-02  Martin Baulig  <martin@ximian.com>
7948
7949         * metadata.c (generic_inst_cache): New static hashtable.
7950         (mono_metadata_lookup_generic_inst): New public function.
7951         (mono_metadata_inflate_generic_inst): New public function.
7952         (mono_metadata_parse_generic_inst): New public function.
7953         (do_mono_metadata_parse_generic_class): Use the new
7954         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7955         since this'll also use the cache.
7956
7957         * reflection.c (mono_reflection_bind_generic_method_parameters):
7958         Use mono_metadata_lookup_generic_inst() to use the new cache.
7959
7960         * class.c (inflate_mono_type): Use
7961         mono_metadata_inflate_generic_inst() to inflate a generic
7962         instance; this'll also use the new cache.
7963
7964         * loader.c (method_from_methodspec): Use
7965         mono_metadata_parse_generic_inst() and
7966         mono_metadata_inflate_generic_inst() rather than parsing it
7967         manually, so we can use the new cache.
7968
7969 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7970
7971         * threads.c (wait_for_tids): Do not incorrectly free threads when 
7972         the wait times out.
7973
7974 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
7975
7976         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
7977         iter->args based on whether parameters are passed in registers (i.e.
7978         MONO_ARCH_REGPARMS is defined)
7979
7980 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
7981
7982         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
7983         the exception message. Fixes #70070.
7984         (method_from_methodspec): Fix warnings.
7985
7986 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7987
7988         * process.c: (complete_path) return the path quoted
7989
7990 2004-12-01  Martin Baulig  <martin@ximian.com>
7991
7992         * class-internals.h (MonoGenericInst): New structure.
7993         (MonoGenericClass): Replaced `type_argc', `type_argv' and
7994         `is_open' with `MonoGenericInst *inst'.
7995         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
7996         `is_open' with `MonoGenericInst *inst'.
7997
7998 2004-11-30  Martin Baulig  <martin@ximian.com>
7999
8000         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8001
8002         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8003         to `generic_class_cache'.
8004
8005         * metadata.c
8006         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8007         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8008         (mono_generic_inst_is_valuetype): Renamed to
8009         mono_generic_class_is_valuetype().
8010
8011         * class-internals.h
8012         (MonoGenericInst): Renamed to MonoGenericClass.
8013         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8014         (MonoClass): Renamed `generic_inst' to `generic_class'.
8015         (MonoGenericContext): Renamed `ginst' to `gclass'.
8016
8017         * object-internals.h
8018         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8019
8020         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8021         mono_reflection_generic_class_initialize().
8022
8023         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8024         now known as "System.Reflection.MonoGenericClass".
8025         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8026
8027 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8028
8029         * class-internals.h: Added a flag field to MonoClass to cache the
8030         declarative security attributes actions associated with the class.
8031         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8032         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8033         applicable to the JITted method.
8034         * reflection.c|h: Added functions to extract (as flags) which security
8035         actions are available (declaratively) for a method, class or assembly.
8036         * metadata.c|h: Added functions to search the declarative security
8037         table in the metadata.
8038         
8039 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8040
8041         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8042         EXPORTEDTYPES are already in the class name cache, so there is no
8043         need to add extra code here to look at them. Just removes a bit of
8044         cruft.
8045
8046         (ves_icall_System_Environment_get_TickCount): No need for #if
8047         WINDOWS. We already have the code in io-layer.
8048
8049 2004-11-28  Martin Baulig  <martin@ximian.com>
8050
8051         * loader.c
8052         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8053         Fixes gen-112.cs.
8054
8055 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8056
8057         * assembly.c (do_mono_assembly_open): Instead of having a
8058         conditional WITH_BUNDLE, incorporate support for bundles here, by
8059         having a global `bundles' variable holding a pointer to the actual
8060         bundles. 
8061
8062         (mono_register_bundled_assemblies): New API call used by the
8063         bundle code. 
8064
8065         See mkbundle.1 for details.
8066         
8067 2004-11-27  Martin Baulig  <martin@ximian.com>
8068
8069         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8070         the vtable for generic methods.
8071
8072 2004-11-26  Martin Baulig  <martin@ximian.com>
8073
8074         * metadata.c
8075         (mono_metadata_generic_method_hash): New public function.
8076         (mono_metadata_generic_method_equal): Likewise.
8077
8078         * class-internals.h
8079         (MonoGenericContainer): Added `GHashTable *method_hash'.
8080
8081         * reflection.c (ReflectionMethodBuilder): Added
8082         `MonoGenericContainer *generic_container'.
8083         (reflection_methodbuilder_to_mono_method): Don't create a new
8084         MonoGenericContainer each time we're called.
8085         (mono_reflection_bind_generic_method_parameters): Use
8086         `container->method_hash' to cache the results so we don't create a
8087         different method if we're called several times with the same
8088         arguments.
8089
8090         * loader.c (method_from_methodspec): Use the new
8091         `container->method_hash' here, too.
8092
8093 2004-11-26  Martin Baulig  <martin@ximian.com>
8094
8095         * class.c (inflate_generic_signature): Correctly compute
8096         `res->has_type_parameters'.
8097         (mono_class_vtable): Use the `has_type_parameters' flag to
8098         determine whether we're a generic method.
8099
8100         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8101
8102 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8103
8104         * object.c (mono_runtime_run_main): Fix a small memory leak.
8105
8106 2004-11-25  Martin Baulig  <martin@ximian.com>
8107
8108         * class.c (set_generic_param_owner): Fixed the loop.
8109
8110 2004-11-25  Martin Baulig  <martin@ximian.com>
8111
8112         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8113         generic methods.
8114
8115 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8116
8117         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8118         names. Fixes #69787.
8119
8120 2004-11-24  Martin Baulig  <martin@ximian.com>
8121
8122         * class.c (mono_class_create_generic_2): If we don't have a
8123         `ginst->parent', inflate `gklass->parent' to get our parent.
8124
8125 2004-11-24  Martin Baulig  <martin@ximian.com>
8126
8127         * reflection.c (compare_genericparam): Correctly sort the
8128         GenericParam table; fixes #69779.
8129
8130 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8131
8132         * reflection.c: When writing a PE file, don't create a huge
8133         buffer in memory. Just write the arrays we have to the file.
8134         This reduces memory usage.
8135
8136         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8137         globally.
8138
8139 2004-11-17  Martin Baulig  <martin@ximian.com>
8140
8141         * class.c (mono_class_init): Don't setup `class->parent' for
8142         dynamic instances; moved this to mono_class_generic_2().
8143         (mono_class_create_generic): Also set `klass->inited' for dynamic
8144         generic instances.
8145         (mono_class_create_generic_2): Don't do anything for dynamic
8146         generic instances.  Set `klass->parent' here and also call
8147         mono_class_setup_parent() here. 
8148
8149         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8150         `MonoType *parent' argument; set `ginst->parent' before calling
8151         mono_class_create_generic_2(), so we set the correct parent.
8152
8153 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8154
8155         * reflection.c: allow getting attributes from ModuleBuilder
8156         (used by ikvm).
8157
8158 2004-11-17  Martin Baulig  <martin@ximian.com>
8159
8160         * class.c (mono_class_create_from_typedef): If a type parameter is
8161         inherited from an outer class, set its owner to that class.
8162
8163 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8164
8165         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8166           for (int*) written size. This fixes bug #69592.
8167
8168 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8169
8170         * icall.c: Added IsAuthenticodePresnet internal call.
8171         * image.c|h: New function that check a MonoImage for an Authenticode
8172         signature in the certificate PE data directory.
8173         * security.c|h: New internal call to ask the runtime if an 
8174         Authenticode signature seems referenced in the PE header.
8175
8176 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8177
8178         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8179
8180         * reflection.c (mono_image_create_pefile): Free the assembly streams
8181         after writing out the assembly file.
8182
8183         * object.c (mono_runtime_run_main): Fix small memory leak.
8184
8185         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8186         property access modifiers. Fixes #69389.
8187
8188 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8189
8190         * domain.c, object.c, object-internals.h, domain-internals.h,
8191         object.h, marshal.c: keep dynamic code info per domain.
8192
8193 2004-11-15  Martin Baulig  <martin@ximian.com>
8194
8195         * class.c (mono_type_get_name_recurse): Put type arguments in
8196         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8197         see bug #68387.
8198
8199 2004-11-15  Martin Baulig  <martin@ximian.com>
8200
8201         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8202         (mono_class_setup_vtable): When computing `the_cname' for a
8203         generic instance, don't include the namespace since we'd otherwise
8204         add it twice.
8205
8206 2004-11-15  Martin Baulig  <martin@ximian.com>
8207
8208         * class.c (mono_class_create_generic): Changed return type to void.
8209         (mono_class_create_generic_2): New public function; setup
8210         `class->method', `class->field' and `class->interfaces' here
8211         instead of in mono_class_init().
8212
8213         * class.h (mono_class_create_generic): Moved to class-internals.h.
8214
8215 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8216
8217         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8218         rather than writing to memory, write to this file. Right now,
8219         we are just writting into a buffer, and copying that. However
8220         we can avoid the buffer later.
8221
8222         (mono_dynamic_stream_reset): new function
8223
8224         * icall.c, object-internals.h: update for the above.
8225
8226 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8227
8228         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8229         have been using gc'd memory. First it is slower, unlikely
8230         the comment in the source code said, secondly, it increases
8231         our footprint to do it in the gc.
8232
8233         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8234         the method so that it does not have to copy to managed code.
8235
8236 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8237
8238         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8239
8240 2004-11-12  Martin Baulig  <martin@localhost>
8241
8242         * reflection.c (mono_image_create_token): Allow generic method
8243         definitions here, since they may appear in an `.override'; see
8244         gen-98/gen-99 for an example.
8245
8246 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8247
8248         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8249         #69365.
8250
8251         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8252         descriptive.
8253
8254 2004-11-11  Martin Baulig  <martin@ximian.com>
8255
8256         * class.c (mono_class_setup_vtable): In an explicit interface
8257         implementation, the method name now includes the arity.
8258
8259 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8260
8261         * object.c (mono_array_full_copy): Fix warning.
8262
8263 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8264
8265         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8266         mono_class_get_method_from_name() instead.
8267         
8268         * class-internals.h: Added two new types of wrappers. 
8269         Added MonoRemotingTarget enum. Added new trampoline function type, which
8270         takes an additional MonoRemotingTarget value as parameter, so it is
8271         possible to request a trampoline for a specific target.
8272         
8273         * class.c: Added new mono_class_get_method_from_name() method.
8274         
8275         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8276         general remoting sinks and one specific for cross domain calls.
8277         
8278         * debug-helpers.c: Added new wrapper names.
8279         
8280         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8281         of a remote class.
8282         
8283         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8284         
8285         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8286         with several other methods (mono_marshal_get_xappdomain_dispatch,
8287         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8288         and others) can generate a fast remoting wrapper for cross domain calls.
8289         More information can be found in docs/remoting.
8290         Other changes: Removed mono_find_method_by_name, and used
8291         mono_class_get_method_from_name instead.
8292         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8293         is stored in the remoting invoke hashtable.
8294         
8295         * marshal.h: published the new method for getting the xdomain wrapper,
8296         and also added a method for getting the adequate wrapper for a given
8297         method and target.
8298         
8299         * object-internals.h, object.c: Added a couple of methods for capying and
8300         cloning arrays.
8301         Modified mono_install_remoting_trampoline, which takes the new remoting
8302         trampoline that has a remoting target as parameter.
8303         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8304         will return the most suitable vtable for the target.
8305         Added mono_remote_class_vtable, which returns the vtable of a remote class
8306         (which can be the normal remoting vtable or the xdomain vtable).
8307         
8308         * threads.c: the xdomain invoke and dispatch wrappers must also be
8309         protected against interruptions.
8310
8311 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8312
8313         * icall.c: use memmove in BlockCopyInternal when the source and
8314         destination arrays are the same.
8315
8316 2004-11-09  Martin Baulig  <martin@ximian.com>
8317
8318         * class-internals.h (MonoGenericContainer): Removed `method' and
8319         `signature', replaced them with `is_method' and `is_signature'
8320         flags.  Added `context'.
8321
8322         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8323         instead of a `MonoGenericContainer *'.
8324
8325         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8326         for dynamic type parameters.
8327         (mono_metadata_load_generic_params): Setup `container->context'.
8328
8329         * reflection.c (mono_reflection_setup_generic_class): Setup
8330         `tb->generic_container->context'.
8331         (do_mono_reflection_bind_generic_parameters): Use
8332         mono_class_inflate_generic_type() to correctly inflate types,
8333         rather than using our own hack just for MONO_TYPE_VAR.
8334
8335 2004-11-09  Martin Baulig  <martin@ximian.com>
8336
8337         * class.c (mono_class_inflate_generic_method): Small fix; don't
8338         crash here.
8339
8340         * icall.c
8341         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8342         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8343         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8344         (ves_icall_Type_BindGenericParameters): Likewise.
8345         (ves_icall_Type_get_IsGenericInstance): Likewise.
8346         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8347         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8348         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8349         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8350
8351 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8352
8353         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8354         assembly versions and public key tokens. Fixes #69113.
8355
8356 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8357
8358         * metadata.c: fix bug introduced with the type cache changes
8359         on 2004-11-06.
8360
8361 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8362
8363         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8364         the MonoClass pointer instead of the token in exception clauses.
8365         * reflection.c: updates for the above and make the code not depend
8366         on the structure of MonoExceptionClause.
8367
8368 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8369
8370         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8371         Add support for dynamic assemblies. Fixes #69114.
8372
8373         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8374
8375 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8376
8377         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8378         since most only those methods use it. the code member of
8379         MonoMethodPInvoke was dead, so that can be removed too. Also,
8380         remove inline_count (again, not used), and move slot so that it
8381         can share bits with some other flags. This saves 8 bytes in the
8382         structure and gives us about 50 kb back for mcs helloworld.cs
8383
8384         * *.[ch]: Do naming changes for the above.
8385
8386         * loader.c (mono_method_get_header): Lazily init the header
8387         on first access.
8388         (mono_get_method_from_token): don't init the header here
8389         (mono_free_method): the header may never be allocated
8390
8391         Overall, this saves 150 kb of unmanaged allocations
8392         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8393         memory at runtime.
8394         
8395         * loader.c, loader.h (mono_method_get_header): new accessor.
8396
8397         * *.[ch]: use the above method. Prepares us to lazily load
8398         the header.
8399
8400         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8401         three warnings, which are actual bugs (see 69206).
8402
8403         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8404         unused. Saves a cool 4 bytes / method.
8405
8406 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8407
8408         * metadata.c (builtin_types): Add types for System.Object here.
8409         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8410         for a class or valuetype from klass->this_arg or klass->byval_arg.
8411
8412         On mcs for a hello world, this gets us down from 21836 MonoType's
8413         to 14560.
8414
8415         (mono_metadata_free_type): Account for the above change.
8416
8417 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8418
8419         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8420         exception instead of asserting if name is null.
8421         (ves_icall_System_AppDomain_GetData): Ditto.
8422
8423 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8424
8425         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8426         EnumBuilder.
8427
8428         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8429         Return NULL when the domain does not have entry_assembly set.
8430
8431         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8432         Add a 'resource_modules' argument.
8433         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8434
8435         * reflection.c (mono_reflection_create_runtime_class): Move setting
8436         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8437         for enums too.
8438
8439         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8440         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8441         Throw an ArgumentNullException if 'ptr' is null.
8442
8443         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8444         assemblies here. Fixes #69020.
8445
8446 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8447
8448         * reflection.c (build_compressed_metadata): Fix the previous patch for
8449         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8450         the stack.
8451
8452 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8453
8454         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8455         the cultures is false. Fixes #69090.
8456
8457         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8458         detected by valgrind.
8459         
8460         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8461         TypeResolve multiple times for the same type. Fixes #65577.
8462
8463 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8464
8465         * marshal.c: Avoid using ldftn to call managed functions. It is
8466         much slower than just a call.
8467
8468         * reflection.c (mono_module_get_object): free the basename we
8469         allocate here from glib.
8470         
8471         * reflection.c (ensure_runtime_vtable): make sure to free
8472         overrides.  Also, we were allocating an array of MonoMethod not an
8473         array of MonoMethod*.
8474
8475         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8476
8477         * image.c (mono_image_close): free image->guid here.
8478
8479 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8480
8481         * reflection.c: Fix some spec conformance issues with the PE file
8482         structures so mcs compiled apps run on the Net 2.0 beta.
8483
8484 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8485
8486         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8487         Implement this. Fixes #67264.
8488
8489         * debug-helpers.h debug-helpers.c marshal.c: Move 
8490         mono_find_method_by_name to debug-helpers.c.
8491
8492 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8493
8494         * object.c (mono_release_type_locks): type_initialization_hash is
8495         a GHashTable.
8496
8497         * reflection.c object.c object-internals.h: Fix warnings.
8498
8499         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8500         without accessors. Fixes #61561.
8501
8502         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8503         application base from the root domain if not set. Fixes #65641.
8504         (mono_runtime_init): Fix warning.
8505
8506 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8507
8508         * appdomain.c: call mono_thread_pool_init.
8509         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8510         of worker threads based on the number of CPUs and the environment
8511         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8512         for non-windows (windows) systems.
8513
8514 2004-10-27  Chris Toshok  <toshok@ximian.com>
8515
8516         * mono-debug-debugger.c (write_class): don't call mono_class_init
8517         here, as even with the check for (!klass->init_pending), we get
8518         into a situation where we're hitting cycles in class
8519         initialization.  Fixes #68816.
8520
8521 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8522
8523         * image.c: Avoid overwriting values in the loaded_images_hash when an
8524         assembly is loaded multiple times. Fixes #61152.
8525
8526         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8527         so multiple satellite assemblies for the same name can be loaded.
8528         Fixes #68259.
8529
8530         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8531         not NULL.
8532
8533         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8534         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8535
8536         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8537         pending finalizers are not invoked after the appdomain has been 
8538         unloaded. Fixes #67862.
8539
8540 2004-10-22  Martin Baulig  <martin@ximian.com>
8541
8542         * mono-debug-debugger.c
8543         (mono_debugger_runtime_invoke): Don't box valuetypes.
8544
8545 2004-10-22  Chris Toshok  <toshok@ximian.com>
8546
8547         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8548         don't hide private methods.
8549
8550 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8551
8552         * icall.c: Allows the runtime to "share" (when known) the public key
8553         token of an assembly. This avoid the need to recalculate the token 
8554         (from the public key) in managed code.
8555
8556 2004-10-21  Chris Toshok  <toshok@ximian.com>
8557
8558         * debug-helpers.c (append_class_name): argh, revert last patch.
8559         
8560 2004-10-21  Chris Toshok  <toshok@ximian.com>
8561
8562         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8563         not '/', so that it matches what the debugger uses to look up
8564         methods.
8565
8566 2004-10-21  Martin Baulig  <martin@ximian.com>
8567
8568         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8569         public method; this is called each time an exception is thrown and
8570         allows the debugger to use exception catch points.
8571
8572 2004-10-21  Martin Baulig  <martin@ximian.com>
8573
8574         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8575         the stack pointer and the exception object in some struct and pass
8576         that to the debugger.
8577
8578 2004-10-21  Chris Toshok  <toshok@ximian.com>
8579
8580         * mono-debug-debugger.c (do_write_class): add instance/static
8581         event support.  We don't expose "raise" or "other" yet.
8582         (event_is_static): new method.
8583
8584 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8585
8586         * mono-debug-debugger.c
8587         (mono_debugger_handle_exception): Remove
8588         bogus return value for fussy compilers.
8589
8590 2004-10-20  Martin Baulig  <martin@ximian.com>
8591
8592         * mono-debug-debugger.c
8593         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8594         (mono_debugger_handled_exception): Likewise.
8595
8596 2004-10-20  Martin Baulig  <martin@ximian.com>
8597
8598         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8599         MONO_DEBUGGER_EVENT_EXCEPTION.
8600
8601         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8602         public function to send the debugger a notification for an
8603         exception and inform it about a catch/finally clause.
8604
8605 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8606
8607         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8608         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8609         fix 2.95 build. 
8610
8611         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8612
8613 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8614
8615         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8616         marshalled as [In,Out]. Fixes #58325.
8617
8618 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8619
8620         * reflection.c (mono_method_body_get_object): Implement some fields.
8621
8622 2004-10-12  Martin Baulig  <martin@ximian.com>
8623
8624         * reflection.c (mono_reflection_bind_generic_parameters): Small
8625         fix, correctly retrieve our parent from a generic instance.
8626
8627 2004-10-12  Martin Baulig  <martin@ximian.com>
8628
8629         * metadata.c (mono_metadata_generic_param_equal): We always have
8630         an owner.
8631
8632         * class.c
8633         (mono_class_from_generic_parameter): We need to have an owner.
8634         (my_mono_class_from_generic_parameter): Likewise.
8635
8636         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8637         mono_reflection_create_generic_class() and added a new
8638         mono_reflection_setup_generic_class().  
8639         (mono_reflection_initialize_generic_param): If we're a nested
8640         generic type and inherited from the containing class, set our
8641         owner to the outer class.
8642
8643 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8644
8645         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8646
8647         * reflection.c (mono_method_body_get_object): New function to create
8648         a MethodBody object.
8649
8650         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8651
8652 2004-10-11  Martin Baulig  <martin@ximian.com>
8653
8654         * metadata.c (_mono_metadata_type_equal): Renamed to
8655         do_mono_metadata_type_equal() and made static.
8656
8657 2004-10-11  Martin Baulig  <martin@ximian.com>
8658
8659         * appdomain.c: Bump corlib version number to 28.
8660
8661 2004-10-10  Martin Baulig  <martin@ximian.com>
8662
8663         * class-internals.h
8664         (MonoGenericInst): Added `MonoGenericContainer *container'.
8665         (MonoGenericMethod): Likewise.
8666         (MonoGenericContext): Likewise.
8667         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8668
8669         * metadata.c
8670         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8671         (do_mono_metadata_parse_generic_inst): Likewise.
8672         (mono_metadata_parse_type_full): New public method.  This is the actual
8673         mono_metadata_parse_type() implementation - with an additional
8674         `MonoGenericContainer *' argument.
8675         (mono_metadata_parse_array_full): Likewise.
8676         (mono_metadata_parse_signature_full): Likewise.
8677         (mono_metadata_parse_method_signature_full): Likewise.
8678         (mono_metadata_parse_mh_full): Likewise.
8679         (mono_type_create_from_typespec): Likewise.
8680         (mono_metadata_interfaces_from_typedef_full): New public method;
8681         this is similar to the other _full() methods, but we take a
8682         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8683         (mono_metadata_parse_generic_param): Take an additional
8684         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8685         from that container.
8686         (mono_metadata_generic_param_equal): New static method to compare
8687         two type parameters.
8688         (_mono_metadata_type_equal): New static method; takes an
8689         additional `gboolean signature_only' argument - if true, we don't
8690         compare the owners of generic parameters.
8691         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8692         with a TRUE argument - do a signature-only comparision.
8693
8694         * loader.c: Use the new _full() methods and pass the
8695         MonoGenericContainer to them.
8696
8697         * object-internals.h (MonoReflectionTypeBuilder): Added
8698         `MonoGenericContainer *generic_container' field.
8699         (MonoReflectionMethodBuilder): Likewise.
8700
8701 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8702
8703         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8704         case initial images of dynamic assemblies.
8705
8706         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8707
8708         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8709
8710         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8711         length of event->other array.
8712         (typebuilder_setup_events): Ditto.
8713
8714         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8715         'assembly_by_name' and add an 'assemblies' list.
8716
8717         * assembly.h assembly.c: Add a new search hook for determining whenever
8718         an assembly is already loaded. Use this instead of searching in the
8719         loaded_assemblies list.
8720
8721         * domain.c appdomain.c: Implement the new search hook so loaded 
8722         assemblies are now scoped by appdomain. Fixes #67727.
8723
8724 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8725
8726         * threads.c (mono_thread_attach): Initialize synch_lock field so
8727         mono_thread_detach works again.
8728
8729         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8730         'lib' too. Fixes #63130.
8731
8732 2004-10-06  Jackson Harper  <jackson@ximian.com>
8733
8734         * culture-info-tables.h: regenerated.
8735
8736 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8737
8738         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8739         implemented by other interfaces in the result. Fixes #65764.
8740         
8741         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8742         Handle unloadable modules without crashing.
8743
8744         * image.c (load_modules): Revert the previous patch since modules must
8745         have a fixed index inside the array.
8746         
8747         * image.c (load_modules): Don't include native modules in the modules
8748         array.
8749
8750 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8751
8752         * reflection.h: Add param_defaults field.
8753
8754         * reflection.c: Add support for parameter defaults in dynamic methods.
8755         Fixes #64595.
8756
8757         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8758         an empty string when a type has no namespace. Fixes #64230.
8759
8760 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8761
8762         * tabledefs.h: Added "internal" security actions to support non-CAS
8763         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8764         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8765
8766 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8767
8768         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8769         constructor of abstract class. Fixes #61689.
8770
8771 2004-10-04  Martin Baulig  <martin@ximian.com>
8772
8773         * class-internals.h (MonoGenericContainer): New type.
8774         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8775         `MonoGenericContainer *generic_container'.
8776         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8777         `MonoGenericContainer *generic_container'.
8778
8779         * metadata.c (mono_metadata_load_generic_params): Return a
8780         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8781         removed the `num' argument.
8782
8783 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8784
8785         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8786         for dynamic images.
8787
8788         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8789         machine fields.
8790
8791         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8792
8793         * reflection.c: Save pe_kind and machine values into the generated
8794         image file.
8795
8796         * appdomain.c: Bump corlib version number.
8797
8798         * object-internals.h: Reorganize layout of LocalBuilder.
8799
8800         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8801         New helper function.
8802
8803         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8804         created MonoType for dynamic types. Fixes #66180.
8805
8806 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8807
8808         * threadpool.c: the ares hashtable needs a critical section around it.
8809         this prevents some nasty segfaults
8810
8811 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8812
8813         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8814         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8815         bug 67324).
8816         
8817 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8818
8819         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8820         
8821 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8822
8823         * image.c: Always canonicalize image file names, to avoid loading
8824         the same assembly twice when referenced using a relative path.
8825
8826 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8827
8828         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8829
8830         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8831
8832         * marshal.c: Fix warnings.
8833
8834 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8835
8836         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8837         attempting to marshal the delegate_trampoline as the method_addr.
8838         This patch has a static hashtable of marshalled delegates so that 
8839         we can map delegate_trampoline addresses back to delegates.  This
8840         allows a delegate passed to managed code to be passed back into native
8841         code.  Fixes #67039
8842
8843 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8844
8845         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8846
8847         * reflection.c (method_encode_code): Align method headers properly.
8848         Fixes #66025.
8849
8850 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8851
8852         * marshal.c: In the runtime invoke wrapper, reset the abort
8853         exception if it is cached. This avoids the automatic rethrowal of 
8854         the exception after the catch of the wrapper. Also check for pending
8855         interruptions before calling the managed method. This is done using
8856         the new method emit_thread_force_interrupt_checkpoint, since the
8857         normal checkpoint method is ignored when running the invoke wrapper.
8858         * object.c: If the abort exception is rethrown, set the abort_exc
8859         field of the thread, so it will be rethrown aftere every catch.
8860         * threadpool.c: Only run an interruption checkpoint if what has been
8861         requested is a stop of the thread (aborts will be ignored).
8862         * threads.c: By default, a thread will now never be interrumped while
8863         running the runtime invoke wrapper (this ensures that runtime_invoke
8864         will always return to the caller if an exception pointer is provided).
8865         There is a new special method mono_thread_force_interruption_checkpoint()
8866         to force an interruption checkpoint even if running a protected
8867         wrapper, which is used by the same runtime invoke wrapper to do a check
8868         at a safe point.
8869
8870 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8871
8872         * object.c, object-internals.h: Implemented mono_release_type_locks,
8873         which releases the cctor locks held by a thread.
8874         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8875         by a thread. Added mono_thread_exit() method to be used to safely stop
8876         a thread.
8877
8878 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8879
8880         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8881         Move null check before dereference.  Avoid indexing beyond the end
8882         of the 'modules' array.
8883
8884 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8885
8886         * metadata-internals.h (MonoImage): Add module_count field.
8887         * image.c (load_modules): Set image->module_count.
8888         (mono_image_load_file_for_image): Use image->module_count.
8889         * reflection.c (mono_image_load_module): Append to image->modules array 
8890         of dynamic assembly.
8891         (mono_module_get_object): Fix loop to actually increment index.
8892         Use image->module_count.
8893         * assembly.c (mono_assembly_load_references): Use image->module_count.
8894         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8895         Likewise.
8896
8897 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8898
8899         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8900         Avoid assert on generic types.
8901
8902 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8903
8904         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8905
8906         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8907
8908         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8909         function to convert a MarshalSpec structure to its managed counterpart.
8910
8911         * reflection.c: Fix warnings.
8912         
8913         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8914         field.
8915
8916         * icall.c (mono_create_icall_signature): Fix build.
8917
8918 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8919
8920         * icall.c: Add MakePointType icall.
8921
8922         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8923         warnings.
8924
8925 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8926
8927         * threadpool.c: reuse allocated slots in the queue.
8928
8929 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8930
8931         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8932
8933         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8934
8935         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8936         previous change.
8937
8938         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8939         ThrowOnUnmappableChar.
8940
8941         * icall.c (ves_icall_Type_GetPacking): New icall.
8942
8943 2004-09-24  Martin Baulig  <martin@ximian.com>
8944
8945         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8946
8947 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8948
8949         * appdomain.c:
8950         (mono_domain_set): allow setting a domain that is being unloaded.
8951         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8952         being unloaded.
8953
8954 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8955
8956         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8957         the GetCustomAttributes icall.
8958
8959 2004-09-23  Martin Baulig  <martin@ximian.com>
8960
8961         * object-internals.h (MonoReflectionGenericParam): Replaced
8962         'has_ctor_constraint', `has_reference_type' and `has_value_type'
8963         with `guint32 attrs'.
8964
8965 2004-09-23  Martin Baulig  <martin@ximian.com>
8966
8967         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
8968
8969 2004-09-23  Martin Baulig  <martin@ximian.com>
8970
8971         * object-internals.h (GenericParameterAttributes): New enum.
8972
8973 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8974
8975         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
8976         
8977         * class.c (init_events): Fill out event->other field.
8978
8979         * class.c: Fix warnings.
8980
8981         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
8982
8983 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
8984
8985         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
8986         walk which doesn't supply the IL offset.
8987
8988 2004-09-22  Martin Baulig  <martin@ximian.com>
8989
8990         * reflection.c (mono_reflection_setup_internal_class): If we're
8991         System.ValueType, System.Object or System.Enum, set
8992         `klass->instance_size' and create the vtable.
8993         (mono_reflection_create_internal_class): If we're an enum type,
8994         get the base class from our current corlib.
8995
8996 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
8997
8998         * reflection.h (MonoResolveTokenError): New type.
8999
9000         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9001         icall.
9002
9003         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9004
9005 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9006
9007         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9008         Support also calling constructors, but only for already allocated objects.
9009
9010 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9011
9012         * reflection.c (type_get_qualified_name): If the klass is null
9013         return the typename to avoid a NullRefEx.
9014         (encode_cattr_value): Get the qualified name of the boxed type,
9015         not the underlying enumtype.  Fixes #62984.
9016
9017 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9018
9019         * marshal.c: Fix problems with previous checkin.
9020
9021 2004-09-21    <vargaz@freemail.hu>
9022
9023         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9024         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9025
9026         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9027
9028 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9029
9030         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9031         should only return a type for pointers, arrays, and passbyref types.
9032         Fixes bug #63841.
9033
9034 2004-09-21  Martin Baulig  <martin@ximian.com>
9035
9036         * domain.c (mono_debugger_check_runtime_version): New public
9037         function.
9038
9039         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9040
9041 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9042
9043         * reflection.c: Added missing sort to the declarative security 
9044         attributes table. MS implementation stops seeing the attributes if the
9045         token number regress in the table (as shown by ildasm and permview).
9046
9047 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9048
9049         * object-internals.h (MonoReflectionModule): Add 'token' field.
9050         
9051         * reflection.c (mono_reflection_get_token): Add support for Module
9052         and Assembly.
9053         (mono_module_get_object): Set 'token' field.
9054         (mono_module_file_get_object): Set 'token' field.
9055
9056         * icall.c: Add new Assembly and Module icalls.
9057
9058         * appdomain.c: Bump corlib version.
9059
9060 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9061
9062         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9063         tokens of metadata objects.
9064
9065         * reflection.h reflection.c (mono_reflection_get_token): New function
9066         to obtain the token of a metadata object.
9067
9068         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9069
9070 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9071
9072         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9073         
9074         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9075
9076 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9077
9078         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9079         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9080         AssemblyBuilder to access the permissions set in the class lib.
9081         * reflection.c: Added security attributes encoding step in 
9082         mono_image_build_metadata.
9083         * tabledefs.h: Added new security actions defined in 2.0:
9084         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9085
9086 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9087
9088         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9089         macro parameter.
9090
9091 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9092  
9093         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9094           finalized. There where random SIGSEVs at program termination, when
9095           an object being finalized was trying to do a string comparison and
9096           the current culture was already finalized.
9097  
9098 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9099
9100         * threads.c: call thread_cleanup before finishing the thread if we get
9101         there.
9102
9103 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9104
9105         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9106         assemblies from the parent. Fixes #65665.
9107
9108 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9109
9110         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9111         modifiers.
9112
9113 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9114
9115         * reflection.h: add prototype for mono_get_dbnull_object
9116         * reflection.c: add prototypes for get_default_param_value_blobs 
9117         and mono_get_object_from_blob for fussier compilers
9118
9119 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9120  
9121         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9122         false deadlock checks in class initialization.
9123  
9124 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9125
9126         * image.c (mono_image_addref): Fix comment.
9127
9128         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9129         possible.
9130
9131 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9132
9133         * reflection.c (mono_param_get_objects): Modified to return
9134         ParameterInfo.DefaultValue object.
9135
9136         (get_default_param_value_blobs):
9137         (mono_get_object_from_blob):
9138         (mono_get_dbnull_object): New helper routines. 
9139
9140         * object.c (mono_get_constant_value_from_blob): New helper routine
9141         carved out from get_default_field_value ()
9142
9143         * object-internals.h (mono_get_constant_value_from_blob): Added
9144         function declaration.
9145
9146 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9147
9148         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9149         referenced assemblies. Fixes #62135.
9150
9151         * exception.h exception.c (mono_get_exception_file_not_found2): New
9152         helper function.
9153
9154 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9155
9156         * class.h class.c: Add mono_type_get_underlying_type ().
9157
9158 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9159
9160         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9161         Fix GetTypes() to support dynamically created assemblies.
9162
9163 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9164
9165         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9166         
9167         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9168         previous patch.
9169
9170         * reflection.h reflection.c loader.c: Allow dynamic construction of
9171         pinvoke methods. Fixes #65571.
9172         
9173         * reflection.c (mono_reflection_get_type): Revert previous change since
9174         it causes regressions.
9175
9176 2004-09-08  Martin Baulig  <martin@ximian.com>
9177
9178         * class.c (class_compute_field_layout): Don't call
9179         mono_class_layout_fields() for open generic instances.
9180
9181 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9182         * threads.c appdomain.c: fix typo in GC macro
9183
9184 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9185
9186         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9187         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9188
9189 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9190
9191         * image.c (mono_image_close): Applied patch from 
9192         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9193         assembly is loaded multiple times from data.
9194         
9195         * image.c (mono_image_open): Fix warning.
9196
9197 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9198
9199         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9200         once. Fixes #58334.
9201         
9202         * reflection.c (mono_reflection_create_runtime_class): Initialize
9203         klass->nested_classes. Fixes #61224.
9204
9205 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9206
9207         * threads.c: sched_yield() on exit, to allow threads to quit.
9208
9209 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9210
9211         * object.c (mono_unhandled_exception): Remove leftover debug code.
9212
9213 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9214
9215         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9216
9217 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9218
9219         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9220         
9221         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9222
9223 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9224
9225         * marshal.c (emit_marshal_array): Null terminate string arrays.
9226         
9227         * marshal.c (raise_auto_layout_exception): Fix warning.
9228
9229         * reflection.c (mono_param_get_objects): Initialize the default value
9230         with DBNull.Value, not null. Fixes #62123.
9231
9232 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9233
9234         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9235         throw an exception with a cute explanation.
9236
9237 2004-09-06  Dick Porter  <dick@ximian.com>
9238
9239         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9240         Close the new process's thread handle, as we don't use it.  The
9241         handle stays around forever otherwise.
9242
9243 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9244
9245         * object.c (arith_overflow): Fix warning.
9246
9247         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9248         calling conventions in method refs. Fixes #65352.
9249
9250         * reflection.c: Fix warnings.
9251
9252 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9253
9254         * icall.c: Add a new icall for Array.Clear
9255
9256 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9257
9258         * object.c: When allocating an array, we have to throw
9259         an overflow exception if any of the lengths are < 0.
9260
9261 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9262
9263         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9264         properly. Also move implementation of string array marshalling to 
9265         managed code. Fixes #42316.
9266
9267 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9268
9269         * assembly.c: provide more information when loading an assembly fails.
9270
9271 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9272
9273         * filewatcher.c: don't expect the development fam package to be
9274         installed.
9275
9276 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9277
9278         * marshal.c: Make a copy of the signature cookie since it will be
9279         freed by the caller.
9280         
9281         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9282
9283         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9284
9285         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9286         marshal specs.
9287
9288         * marshal.c: More refactoring.
9289         
9290         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9291         smaller functions.
9292
9293 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9294
9295         * object.c: In mono_message_invoke, fill the output parameter array after
9296           calling the managed method (it was done before the call). This fixes
9297           bug #59299.
9298
9299 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9300
9301         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9302         as well.
9303
9304 2004-09-02  Martin Baulig  <martin@ximian.com>
9305
9306         * class.c (mono_class_instance_size): Don't allow generic type
9307         definitions or open generic instances.
9308         (mono_class_array_element_size): If we're a value type, call
9309         mono_class_instance_size() on the original class.
9310
9311         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9312         handle generic instances.
9313
9314         * mono-debug-debugger.c (write_type): Handle generic instances
9315         like classes.
9316
9317 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9318
9319         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9320         the allocation request fails. Fixes #65089.
9321
9322         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9323         
9324         * object.c (mono_runtime_free_method): New function to free a dynamic
9325         method.
9326
9327         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9328         delegate trampoline.
9329
9330         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9331         with hasthis as dynamic,
9332
9333         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9334
9335         * domain.c (mono_jit_info_table_remove): New function to remove an
9336         entry from the jit info table.
9337
9338         * class-internals.h (MonoMethod): Add 'dynamic' field.
9339
9340         * loader.c: Fix warnings.
9341
9342 2004-09-01  Martin Baulig  <martin@ximian.com>
9343
9344         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9345         instead of mono_debugger_lock() because the latter one is a no-op
9346         unless running in the debugger.
9347
9348 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9349
9350         * class.c (class_compute_field_layout): Classes with auto-layout or
9351         reference fields are not blittable.
9352         
9353 2004-09-01  Dick Porter  <dick@ximian.com>
9354
9355         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9356         mono_image_get_filename() to get the assembly location.
9357
9358         * icall.c:
9359         * metadata.h: Fix compile warnings
9360
9361 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9362
9363         * class.c (class_compute_field_layout): System.Object is blittable.
9364
9365         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9366         as in/out. Fixes #59909.
9367
9368 2004-09-01  Martin Baulig  <martin@ximian.com>
9369
9370         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9371         mono_metadata_generic_inst_is_valuetype() if we're a generic
9372         instance to check whether our underlying type is a reference type.
9373
9374 2004-09-01  Martin Baulig  <martin@ximian.com>
9375
9376         * metadata.c (mono_type_size): If we're a generic instance, call
9377         mono_class_value_size() for value types.
9378
9379 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9380
9381         * marshal.c: Implement more custom marshalling functionality. Fixes
9382         #64915.
9383
9384 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9385
9386         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9387
9388 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9389
9390         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9391
9392         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9393
9394         * icall.c: Fix some warnings.
9395
9396         * threads.c (abort_appdomain_thread): Fix unref errors.
9397         (mono_thread_current): Fix THREAD_DEBUG define.
9398
9399 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9400
9401         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9402
9403         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9404
9405 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9406
9407         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9408         string arrays.
9409
9410 2004-08-28  Martin Baulig  <martin@ximian.com>
9411
9412         * metadata.c
9413         (mono_metadata_generic_inst_is_valuetype): New public function.
9414
9415         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9416         mono_metadata_generic_inst_is_valuetype() if we're a generic
9417         instance to check whether our underlying type is a valuetype.
9418
9419 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9420
9421         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9422         #63768.
9423
9424 2004-08-25  Martin Baulig  <martin@ximian.com>
9425
9426         * loader.c (mono_get_method_from_token): Abstract methods can also
9427         be generic and thus have type parameters.
9428
9429         * metadata-internals.h
9430         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9431
9432         * reflection.c (mono_image_get_generic_param_info): Don't create a
9433         metadata row, just add an entry to the `gen_params' array.
9434         (build_compressed_metadata): Sort the `gen_params' array and then
9435         actually create the metadata.
9436
9437 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9438
9439         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9440
9441 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9442
9443         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9444
9445 2004-08-24  Martin Baulig  <martin@ximian.com>
9446
9447         * class.cs (mono_class_is_subclass_of): Like an interface, a
9448         generic instance also derives from System.Object.
9449
9450 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9451
9452         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9453         custom modifiers to be in any order. Fixes #61990.
9454
9455 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9456
9457         * object.c: Register mono_object_new_fast icall.
9458         
9459         * object.c (mono_class_get_allocation_ftn): Return to calling
9460         mono_object_new_fast, since it seems faster to compute the object 
9461         size in unmanaged code than passing it as a parameter.
9462
9463         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9464
9465         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9466         this function with Boehm as the oom handler, so we don't have to check
9467         the result of GC_malloc.
9468
9469         * object.c: Remove checks for oom.
9470
9471         * object.h object.c (mono_class_get_allocation_ftn): New function to
9472         return the icall which can be used to allocate an instance of a given
9473         class. 
9474
9475         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9476
9477         * class-internals.h: Add 'enabled' field.
9478
9479 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9480
9481         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9482
9483 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9484         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9485         value 0x0010.
9486
9487 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9488
9489         * appdomain.c: use the Tls function for appdomain too,
9490         at Zoltan's request. Actually return in mono_context_get
9491
9492         * appdomain.c, profiler.c, threads.c: use __thread
9493
9494 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9495
9496         * appdomain.c threads.c: Call GC_CreateThread on windows.
9497
9498         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9499         multiple libraries since this don't work on windows.
9500
9501 2004-08-18  Martin Baulig  <martin@ximian.com>
9502
9503         * class-internals.h
9504         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9505         MonoMethodHeader.
9506
9507         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9508         MonoMethodNormal since we also need it for abstract and interface
9509         methods.
9510
9511         * reflection.c
9512         (build_compressed_metadata): Sort the GenericParam table.
9513         (mono_image_create_token): Added `gboolean create_methodspec'
9514         argument; this is false when generating a MethodImpl token.
9515         (reflection_methodbuilder_to_mono_method): Abstract and interface
9516         methods may also have generic parameters.
9517
9518 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9519
9520         * appdomain.c: thread local alloc
9521
9522 2004-08-17  Martin Baulig  <martin@ximian.com>
9523
9524         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9525
9526         * icall.c
9527         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9528         argument.
9529
9530         * class.c (mono_type_get_full_name): New public function.
9531         (mono_type_get_name): Don't include the type arguments.
9532
9533 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9534
9535         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9536         for inclusion into the mono executable.
9537
9538 2004-08-16  Martin Baulig  <martin@ximian.com>
9539
9540         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9541         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9542
9543 2004-08-14  Martin Baulig  <martin@ximian.com>
9544
9545         * class.c (dup_type): Also copy the `byref' field.
9546
9547 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9548
9549         * reflection.c (create_dynamic_mono_image): Revert the last change 
9550         since it breaks bootstrap.
9551
9552 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9553
9554         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9555
9556         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9557         not free them with g_free.
9558
9559 2004-08-11  Martin Baulig  <martin@ximian.com>
9560
9561         * reflection.c (mono_reflection_setup_internal_class): Also call
9562         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9563
9564 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9565
9566         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9567         called during default (first) AppDomain creation. Keep track of
9568         Evidence when loading assemblies.
9569
9570 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9571
9572         * opcodes.c, opcodes.h: reduce runtime relocations.
9573
9574 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9575
9576         * culture-info.h, locales.c: fixes and chages to sue the new
9577         optimized format of the locale data.
9578         * culture-info-tables.h: regenerated.
9579
9580 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9581         
9582         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9583
9584 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9585
9586         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9587         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9588         * domain-internals.h: icall declaration.
9589         * icall.c: icall registration.
9590         * object-internals.h: New fields in MonoAssembly for CAS.
9591
9592 2004-08-05  Duncan Mak  <duncan@ximian.com>
9593
9594         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9595         CEE_LDELEM_ANY.
9596
9597 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9598
9599         * reflection.c: fix to deal with object[] arrays in custom ctors
9600         (bug #62550).
9601
9602 2004-08-05  Martin Baulig  <martin@ximian.com>
9603
9604         * class.c (mono_class_array_element_size): Added support for
9605         generic instances and correctly handle "recursive" types.
9606
9607 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9608
9609         * assembly.c: Fix warnings.
9610
9611 2004-08-04  Martin Baulig  <martin@ximian.com>
9612
9613         * class.c
9614         (mono_type_get_name_recurse): Added `gboolean include_arity'
9615         argument specifying whether or not we should include the generic
9616         arity in the type name.
9617         (_mono_type_get_name): New static function.
9618         (mono_class_setup_vtable): If we're a generic instance, don't
9619         include the generic arity in the names of explicit method
9620         implementations.        
9621
9622 2004-08-03  Martin Baulig  <martin@ximian.com>
9623
9624         * class.c (mono_type_get_name_recurse): Enclose the generic type
9625         arguments in `<', '>'.
9626
9627 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9628
9629         * gc.c: make GC warning messages use the trace API, they are just
9630         noise to most of the users.
9631
9632 2004-08-03  Martin Baulig  <martin@ximian.com>
9633
9634         * debug-mono-symfile.c (read_string): Correctly read the string.
9635
9636 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9637
9638         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9639         
9640         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9641         icalls.
9642         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9643
9644 2004-07-30  Martin Baulig  <martin@ximian.com>
9645
9646         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9647         Reflect latest symbol writer changes.   
9648
9649 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9650
9651         * object.c: always create an object if null is passed
9652         to Invoke() where a valuetype is expected.
9653
9654 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9655
9656         * marshal.c (mono_marshal_init): make managed
9657         signatures match native ones better for 64bits.
9658
9659 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9660
9661         * appdomain.c: hack to build correctly the private bin path on windows.
9662         Fixes bug #61991.
9663
9664 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9665
9666         * assembly.c: Load mscorlib from the correct framework directory
9667           (mono/<version>/mscorlib.dll).
9668         * appdomain.h: Added prototypes for new functions.
9669         * internals.h: Added some prototypes.
9670         * domain.c: When initializing the runtime, get from the executable and
9671           the configuration files the runtime version that the app supports.
9672           Added support methods for reading app.exe.config. Added list of versions
9673           supported by the JIT. Added two new methods: mono_init_from_assembly,
9674           which initializes the runtime and determines the required version from
9675           the provided exe file, and mono_init_version, which initializes
9676           the runtime using the provided version.
9677         * icall.c: Get machine.config from version-specific directory.
9678         * reflection.c: When generating an image, embed the version number
9679           of the current runtime.
9680
9681 2004-07-28  Dick Porter  <dick@ximian.com>
9682
9683         * socket-io.c
9684         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9685         returned sockaddr size before creating the remote address object.
9686         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9687         61608.
9688
9689 2004-07-28  Dick Porter  <dick@ximian.com>
9690
9691         * locales.c (string_invariant_compare_char): Fix invariant char
9692         compares between upper and lower cases.  Fixes bug 61458.
9693
9694 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9695         
9696         * marshal.c: actually cache stelem.ref wrappers.
9697         
9698 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9699
9700         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9701         sections and remove the mono_cli_rva_map () function.
9702
9703 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9704
9705         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9706         by Geoff Norton (<gnorton@customerdna.com>).
9707
9708 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9709
9710         * class.c: fix class loads for pointer types (typeof(int) !=
9711         typeof(int*)).
9712
9713 2004-07-27  Martin Baulig  <martin@ximian.com>
9714
9715         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9716         reading the debugging information from an external ".mdb" file.
9717
9718 2004-07-24  Martin Baulig  <martin@ximian.com>
9719
9720         * reflection.c (mono_image_get_type_info): Only write a class
9721         layout entry if we actually have a size or a packing size.
9722
9723 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9724
9725         * reflection.c (type_get_fully_qualified_name): 
9726         insert cast to get type checking of ?: with non-gcc compilers
9727
9728 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9729
9730         * rand.c: use g_getenv for both lookups of
9731         MONO_EGD_SOCKET
9732
9733 2004-07-17  Martin Baulig  <martin@ximian.com>
9734
9735         * reflection.c (mono_reflection_bind_generic_method_parameters):
9736         Set `gmethod->reflection_info'.
9737
9738 2004-07-17  Martin Baulig  <martin@ximian.com>
9739
9740         * class.c (mono_class_create_from_typedef): Insert the newly
9741         created class into the hash table before computing the interfaces
9742         since we could be called recursively.
9743
9744 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9745
9746         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9747         function to implement stelem.ref in managed code
9748         * class-internals.h, debug-helpers.c: a new wrapper type
9749         for the above.
9750
9751 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9752
9753         * gc.c: allow GC handles to work even when no GC is compiled in.
9754         Fix part of bug #61134 (GetAddrOfPinnedObject).
9755
9756 2004-07-13  Peter Williams  <peter@newton.cx>
9757  
9758         * process.c (complete_path): Make sure we don't attempt to execute
9759         directories.
9760  
9761 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9762
9763         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9764           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9765           and will add/subtract the hour if needed
9766
9767 2004-07-12  Martin Baulig  <martin@ximian.com>
9768
9769         * reflection.c (mono_field_get_object): If we have
9770         `field->generic_info', take the attributes from
9771         `field->generic_info->generic_type'.    
9772
9773 2004-07-12  Martin Baulig  <martin@ximian.com>
9774
9775         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9776         This function must be called before initializing the runtime.
9777         (mono_debug_init_1): New function; call this after initializing
9778         the runtime, but before loading the assembly.  It tells the
9779         debugger to load corlib and the builtin types.
9780
9781         * mono-debug-debugger.c: Did some larger changes in the debugging
9782         code; support recursive class declarations, make sure we actually
9783         add all classes.
9784
9785 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9786
9787         * debug-helpers.c: undo my previous patch and fixed the real issue in
9788         ../mini/exceptions-x86.c
9789
9790 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9791
9792         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9793         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9794         called from other .cctors.
9795
9796 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9797
9798         * loader.c: Removed the mono_loader_wine_init hack now that we are
9799         doing a managed version of Windows.Forms.
9800
9801 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9802
9803         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9804         threadpool.c, threads.c: remove static data from rootset.
9805
9806 2004-07-09  Dick Porter  <dick@ximian.com>
9807
9808         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9809         Don't do any more processing if the matched length was 0.  It was
9810         increasing the size of the string before.  Fixes bug 61167.
9811
9812 2004-07-09  Dick Porter  <dick@ximian.com>
9813
9814         * socket-io.h:
9815         * socket-io.c
9816         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9817         Add support for SO_PEERCRED if its available.
9818
9819 2004-07-09  Peter Bartok <pbartok@novell.com>
9820         * loader.c: winelib.exe.so error message is now only displayed if
9821         MONO_DEBUG is set. To help us avoid questions when people are trying
9822         out the new Managed.Windows.Forms.
9823
9824 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9825
9826         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9827         for isinst and castclass wrappers.
9828
9829         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9830         to libmetadata from the JIT, so they could be used by the marshalling
9831         code and the interpreter.
9832
9833         * marshal.c: Register marshalling related JIT icalls here instead of
9834         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9835         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9836
9837         * metadata.h: Remove unneeded marshalling conversions.
9838
9839         * opcodes.c: Update for new opcodes.
9840         
9841 2004-07-08  Martin Baulig  <martin@ximian.com>
9842
9843         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9844         (mono_debug_get_domain_data): Make this function static.
9845
9846 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9847
9848         * gc.c, object.h: add nice GC handle API for embedders.
9849
9850 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9851
9852         * reflection.c: more changes for the new api
9853
9854         * object.c: When we reflect on a field w/ a constant value, it
9855         will not have a memory location, so we must access metadata. Also,
9856         allow easier reading of strings so that we can read them from
9857         the constant data.
9858
9859         * class.c (mono_class_layout_fields): no need for literal fields here.
9860
9861         * class-internals.h: api changes for const fields
9862
9863         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9864
9865 2004-07-06  Martin Baulig  <martin@ximian.com>
9866
9867         * mono-debug.h: Increment version number to 44.
9868
9869         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9870         now a gpointer, rewrote this whole method.
9871
9872         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9873         function.  Add information about the wrapper in a new "misc table".
9874
9875         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9876         for the new misc table.
9877
9878 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9879
9880         * metadata-internals.h image.c: Add a cache for helper signatures.
9881
9882         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9883
9884 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9885
9886         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9887         delegates from a delegate. Fixes #61033.
9888         
9889         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9890         marshalling of stringbuilder arrays. Fixes #59900.
9891
9892 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9893
9894         * icall.c: Add EnumBuilder:setup_enum_type icall.
9895
9896 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9897
9898         * icall.c: Added a new icall for the property version of
9899         OffsetOfStringData.
9900
9901 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9902
9903         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9904         it has a constant size across platforms.
9905
9906         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9907         stack trace.
9908
9909 2004-06-29  Martin Baulig  <martin@ximian.com>
9910
9911         * mono-debug.c (mono_debug_add_method): Protect the whole function
9912         in mono_debugger_lock(), not just parts of it.
9913
9914 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9915
9916         * reflection.c: make sure padding bytes in heaps are zeroed.
9917
9918 2004-06-24  David Waite  <mass@akuma.org>
9919
9920         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9921         image.c, loader.c, locales.c, marshal.c, metadata.c,
9922         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9923         string-icalls.c, threads.c: change to C90-style comments from C99 /
9924         C++ -style
9925
9926 2004-06-24  Dick Porter  <dick@ximian.com>
9927
9928         * threads.c
9929         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9930         return createdNew.  Fixes bug 60412.
9931
9932         * threads-types.h: 
9933         * icall.c: Add createdNew parameter to CreateMutex icall
9934
9935 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9936
9937         * reflection.c, object-internals.h: save default value in params.
9938
9939 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9940
9941         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9942         no need to build a new path combining that with the application base.
9943         Fixes bug #60442.
9944
9945 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9946
9947         * reflection.c: fixed minor standard compliance issues.
9948
9949 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9950
9951         * reflection.c: fixed issue with encoding some custom attributes
9952         (arrays in properties and fields, bug #60411).
9953
9954 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9955
9956         * reflection.c: fix start address when copying the public key token.
9957
9958 2004-06-23  Martin Baulig  <martin@ximian.com>
9959
9960         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
9961         the `exc' object in a static object to put it into the GC's root set.
9962
9963 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
9964
9965         * reflection.c: make mono_reflection_setup_internal_class ()
9966         callable a second time to setup a new parent class.
9967
9968 2004-06-23  Dick Porter  <dick@ximian.com>
9969
9970         * threads.c: Check for WAIT_IO_COMPLETION return values.
9971
9972 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
9973
9974         * appdomain.c: Removed the g_free on the public key token. Now copy 
9975         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
9976         * assembly.c: Added public key token string value when loading 
9977         assemblies. Fix bug #60439.
9978         * icall.c: Added missing informations (like public key) in 
9979         GetReferencedAssemblies. Fix #60519.
9980         * image.h: Changed definition for public key token from const char*
9981         public_tok_value to guchar public_key_token [17];
9982         * reflection.c: Updated for changes to public key token.
9983
9984 2004-06-22  Lluis Sanchez Gual
9985
9986         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
9987         for the field in base classes.
9988
9989 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9990
9991         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
9992         mark headers as not supported, they are installed only for use by the
9993         debugger.
9994
9995 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
9996
9997         * *.c, *.h: avoid namespace pollution in public headers.
9998
9999 2004-06-21  Martin Baulig  <martin@ximian.com>
10000
10001         * exception.c (mono_get_exception_security): It's in
10002         "System.Security", not in "System".
10003
10004         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10005         the exception classes.
10006
10007 2004-06-21  Martin Baulig  <martin@ximian.com>
10008
10009         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10010         Protect the exception object from being finalized.
10011
10012 2004-06-21  Martin Baulig  <martin@ximian.com>
10013
10014         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10015         public function.
10016
10017 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10018
10019         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10020         if it was not loaded before. Fix parts of #60439.
10021
10022 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10023
10024         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10025         code that was broken since Ben's change: wrappers are now
10026         dependent on the method signature only again.
10027
10028 2004-06-21  Martin Baulig  <martin@ximian.com>
10029
10030         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10031         added interface support.
10032
10033 2004-06-21  Martin Baulig  <martin@ximian.com>
10034
10035         * class.c (mono_vtable_get_static_field_data): New public method.
10036
10037 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10038
10039         * filewatcher.c : Windows build fix to be compliant with API changes.
10040
10041 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10042
10043         * class.h, class.c: more accessors.
10044         * metadata.h, metadata.c: prepare for hiding MonoType and
10045         MonoMethodSignature: people should use the accessors from now on
10046         outside of the tree.
10047
10048 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10049
10050         * *.c, *.h: more API cleanups.
10051
10052 2004-06-18  Jackson Harper  <jackson@ximian.com>
10053
10054         * assembly.c: Trace loading assemblies.
10055         * loader.c: Trace loading native libraries.
10056         * mono-config.c: Trace loading config files.
10057         
10058 2004-06-18  Dick Porter  <dick@ximian.com>
10059
10060         * locales.c: Tell ICU the lengths of strings, it can cope with
10061         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10062
10063 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10064
10065         * image.c: swapped name/filename;
10066
10067 2004-06-18  Martin Baulig  <martin@ximian.com>
10068
10069         * mono-debug-debugger.c (write_class): Write the parent class at
10070         the end of the header.
10071
10072 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10073
10074         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10075
10076 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10077
10078         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10079         (bundle_obj): New conditional define.
10080         (BUILT_SOURCES): Remove.
10081         ($(bundle_srcs)): Make parallel-make safe.
10082         (libmonoruntime_la_LIBADD): Make unconditional.
10083         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10084         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10085
10086 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10087
10088         * culture-info-tables.h: It was inconsistent with the latest
10089           supp info files.
10090
10091 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10092
10093         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10094         be loaded.
10095
10096         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10097         with gcc 2.95.
10098
10099 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10100
10101         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10102         cleaned up public header threads.h.
10103
10104 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10105
10106         * Makefile.am, *.c, *.h: more API cleanups.
10107
10108 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10109
10110         * Makefile.am: removed monosn from compilation.
10111         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10112         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10113         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10114         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10115         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10116         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10117
10118 2004-06-15  Jackson Harper  <jackson@ximian.com>
10119
10120         * assembly.c: Make locales lower case when searching the GAC for
10121         assemblies. gacutil will always make locales lowercase when
10122         installing so this effectively makes them case insensitive.
10123         
10124 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10125
10126         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10127         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10128           parameter which allows to choose whether the wait can be interrupted or 
10129           not. Also added the method mono_monitor_enter(), which locks the monitor
10130           using an infinite wait and without allowing interruption.
10131           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10132           interrupted.
10133         * object.h: Added new fields in MonoThread. suspend_event holds the event
10134           used to susped/resume the thread. synch_lock is the lock object to use for
10135           modifying the thread state.
10136         * threads.c: Use the new synch_lock object for locking, instead of "this",
10137           which can generate deadlocks.
10138           Moved thread state change in Thread.Sleep and Thread.Join from managed
10139           to unmanaged code. This avoids a deadlock when the thread was suspended
10140           just after acquiring the thread lock.
10141           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10142           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10143           which is not fully implemented in the io-layer.
10144         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10145
10146 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10147
10148         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10149         threads-types.h: more API cleanups.
10150
10151 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10152
10153         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10154         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10155         threadpool.c, threads.c: first pass at the exported API cleanup.
10156
10157 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10158
10159         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10160
10161 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10162
10163         * icall.c: added internalGetHome.
10164
10165 2004-06-14  Dick Porter  <dick@ximian.com>
10166
10167         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10168         possible to return successfully when '.' or '..' were the only
10169         entries in a directory, but were skipped.  The MonoIOStat was not
10170         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10171         Fixes bug 59574.
10172
10173 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10174
10175         * reflection.c: make binaries run on .Net 1.1 by default.
10176
10177 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10178
10179         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10180
10181 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10182
10183         * marshal.c: keep track of struct size with explicit layout
10184         (bug #59979).
10185
10186 2004-06-12  Martin Baulig  <martin@ximian.com>
10187
10188         * mono-debug-debugger.c: Comment out a debugging g_message().
10189
10190 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10191
10192         * reflection.c, reflection.h: do not free custom attrs that are cached.
10193         * icall.c: use braces to make code clearer.
10194
10195 2004-06-11  Martin Baulig  <martin@ximian.com>
10196
10197         * class.h (MonoInflatedField): New type.
10198         (MonoClassField): Replaced `MonoType *generic_type' with
10199         `MonoInflatedField *generic_info'.
10200
10201         * icall.c
10202         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10203
10204 2004-06-11  Martin Baulig  <martin@ximian.com>
10205
10206         * reflection.c (mono_image_create_method_token): Correctly encode
10207         varargs methods.
10208
10209 2004-06-11  Martin Baulig  <martin@ximian.com>
10210
10211         * metadata.c (mono_metadata_parse_method_signature): When parsing
10212         a MethodDef which has VarArgs, also set sentinelpos if we don't
10213         have any parameters.
10214
10215 2004-06-11  Martin Baulig  <martin@ximian.com>
10216
10217         * verify.c (mono_method_verify): In CEE_CALL, use
10218         mono_method_get_signature() to get the method's signature, unless
10219         we're a PInvoke method.
10220
10221 2004-06-10  Jackson Harper  <jackson@ximian.com>
10222
10223         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10224         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10225         logical name as the supplied path is just a prefix to the gac not
10226         the direct path to it.
10227         
10228 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10229
10230         * reflection.c: make the token for a created method match
10231         the token of the MethodBuilder it was created from
10232         (IKVM requires this behaviour now).
10233
10234 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10235
10236         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10237         reflection.c, socket-io.c: leak fixes.
10238
10239 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10240
10241         * icall.c: handle sentinel pos in vararg methods in position different
10242         from 0.
10243
10244 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10245
10246         * culture-info-tables.h: freshly generated.
10247
10248 2004-06-09  Martin Baulig  <martin@ximian.com>
10249
10250         * loader.c (mono_get_method_constrained): Call `mono_class_init
10251         (constrained_class)'.   
10252
10253 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10254
10255         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10256         any methods. Fixes #59629.
10257
10258 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10259
10260         * culture-info-tables.h: reflecting locale-builder updates.
10261
10262 2004-06-08  Dick Porter  <dick@ximian.com>
10263
10264         * object.h:
10265         * locales.c: Fixed compile warnings, including a real bug in
10266         CompareInfo_internal_compare.
10267         
10268 2004-06-08  Dick Porter  <dick@ximian.com>
10269
10270         * locales.c
10271         (ves_icall_System_Globalization_CompareInfo_internal_index):
10272         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10273         Double-check the resuls of usearches, because ICU currently
10274         ignores most of the collator settings here.  Fixes bug 59720.
10275         
10276 2004-06-08  Dick Porter  <dick@ximian.com>
10277
10278         * locales.c
10279         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10280         Fix memory leak and segfault-causing typo.  No idea how this one
10281         lasted so long without being noticed.
10282
10283 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10284
10285         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10286         any methods. Fixes #59629.
10287
10288 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10289
10290         * assembly.c:
10291         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10292         own the critical section before). Removed dead code (that's done
10293         in the preload hook).
10294
10295         (mono_assembly_load_with_partial_name): call the preload hook.
10296
10297 2004-06-08  Martin Baulig  <martin@ximian.com>
10298
10299         * metadata.c (mono_metadata_signature_alloc): Default
10300         `sentinelpos' to -1.
10301
10302         * reflection.c (mono_image_get_array_token): Likewise.
10303
10304 2004-06-08  Martin Baulig  <martin@ximian.com>
10305
10306         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10307
10308         * metadata.c (mono_metadata_parse_method_signature): When parsing
10309         a MethodDef which has VarArgs, set sentinelpos.
10310
10311         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10312         `gint16' since we're using -1 for non-varargs methods.
10313
10314         * reflection.c
10315         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10316         (method_encode_signature): Added varargs support.
10317         (method_builder_encode_signature): Likewise.
10318         (mono_image_get_varargs_method_token): New static method.
10319         (mono_image_create_method_token): New public method; this is
10320         called via an icall instead of mono_image_create_token() when
10321         calling a varargs method.       
10322
10323 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10324
10325         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10326
10327 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10328
10329         * culture-info-tables.h : Reflecting the latest locale-builder that
10330           fixed empty array representation ({} to {0}).
10331
10332 2004-06-07  Jackson Harper  <jackson@ximian.com>
10333
10334         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10335         looking up extra gac paths. This allows MONO_GAC_PATH to act
10336         exactly like a prefix.
10337         
10338 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10339
10340         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10341         type name before modifying it. Fixes #59405.
10342
10343 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10344
10345         * culture-info.h: added fields for "all datetime patterns".
10346         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10347           _construct_datetime_format ()): fill xxx_patterns fields.
10348         * object.h: added fields for "all datetime patterns" to
10349           MonoDateTimeFormatInfo.
10350         * culture-info-tables.h: reflecting locale-builder updates.
10351
10352 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10353
10354         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10355         the event has no add and remove methods. Fixes #59629.
10356
10357 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10358
10359         * object.c: Fixed possible integer overflow when allocating large
10360         strings.
10361
10362 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10363
10364         * culture-info-tables.h: reflecting locale-builder updates.
10365
10366 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10367
10368         * culture-info-tables.h: reflecting locale-builder updates.
10369
10370 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10371
10372         * culture-info-tables.h: reflecting locale-builder updates.
10373
10374 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10375
10376         * threads.c: Made Thread.Sleep abortable.
10377
10378 2004-06-02  Martin Baulig  <martin@ximian.com>
10379
10380         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10381
10382         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10383
10384 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10385
10386         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10387
10388 2004-05-30  Jackson Harper  <jackson@ximian.com>
10389
10390         * reflection.c: Do not hardcode assembly versions or public key
10391         tokens anymore. All of this except the corlib section was dead
10392         code anyways.
10393         
10394 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10395
10396         * object.c (mono_runtime_invoke_array): Automatically create boxed
10397         objects for byref valuetypes if needed. Fixes #59300.
10398         
10399         * object.c (mono_method_return_message_restore): Handle 
10400         MONO_TYPE_OBJECT as well.
10401
10402 2004-05-28  Jackson Harper  <jackson@ximian.com>
10403
10404         * reflection.c: The modified type encoding was causing build
10405         problems. Reverted for now.
10406         
10407 2004-05-28  Jackson Harper  <jackson@ximian.com>
10408
10409         * reflection.c/h: Take an assembly ref so that we dont create
10410         fully qualified names when encoding types in the same assembly as
10411         the custom attribute being emitted.
10412         * appdomain.c: Increment version number.
10413         
10414 2004-05-26  Duncan Mak  <duncan@ximian.com>
10415
10416         * icall.c
10417         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10418         Set the full version number (major, minor, build, revision).
10419
10420 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10421
10422         * marshal.c (emit_struct_conv): increment src/dst after blit
10423         (mono_marshal_get_managed_wrapper,
10424         mono_marshal_get_native_wrapper): make sure we have marshalling
10425         info before marshalling params (info computation affects
10426         blittable)
10427
10428         * class.c (class_compute_field_layout): correctly deal with
10429         blittable
10430         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10431         value types (as per what windows dows by default)
10432         (mono_class_setup_mono_type): System.ValueType is blittable
10433         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10434         blittable
10435
10436         * marshal.c (mono_marshal_load_type_info): flag types  as
10437         non-blittable if the native layout doesn't match the managed
10438         layout
10439
10440 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10441
10442         * appdomain.c: don't add stuff in the private search path that is
10443         above the application base. If application base is not set, there's
10444         no private search path.
10445
10446 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10447
10448         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10449         byref struct arguments in native->managed marshalling.
10450
10451 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10452
10453         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10454         cache methods using signature (special case for methods
10455         that are value type or string class)
10456         
10457         * image.c (mono_image_close): clean up allocated GSList's
10458         in runtime_invoke_cache.
10459
10460 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10461
10462         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10463         there's no MONO_CFG_DIR environment variable defined.
10464
10465 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10466
10467         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10468
10469 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10470
10471         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10472           is interrumped.
10473         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10474           before waiting for it, and call CloseHandle after the wait to unref it.
10475           This will make sure that handles are not disposed too early.
10476
10477 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10478
10479         * appdomain.c:
10480         * appdomain.h:
10481         * icall.c: removed
10482         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10483         needed now.
10484
10485         * object.c: se the application_base only for the domain that runs
10486         Main. Fixes bug #59216,
10487
10488 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10489
10490         * appdomain.c:
10491         * object.c: only the domain in which Main is run have
10492         SetupInformation.ConfigurationFile set, so moved a few lines from
10493         appdomain.c to object.c.
10494
10495 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10496
10497         * appdomain.c: we tried to load [name].(dll|exe), but according
10498         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10499         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10500         There's a test case attached to bug #58922.
10501
10502 2004-05-27  Dick Porter  <dick@ximian.com>
10503
10504         * icall.c:
10505         * file-io.c: Implemented icalls for locking and unlocking regions
10506         in a file.
10507         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10508         FALSE on error (fixes both compiler warning and real bug.)
10509
10510 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10511
10512         * culture-info-tables.h: reflecting locale-builder updates.
10513
10514           (Added missing ChangeLog entry for 05/26)
10515
10516 2004-05-27  Jackson Harper  <jackson@ximian.com>
10517
10518         * locales.c: Fix some cut and paste errors.
10519         
10520 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10521
10522         * mono-config.c: set the correct path for config. directory on windows.
10523
10524 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10525
10526         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10527           on win32.
10528
10529 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10530
10531         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10532         from pinvoke functions.
10533         
10534         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10535
10536 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10537
10538         * culture-info-tables.h: reflecting locale-builder updates.
10539
10540 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10541
10542         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10543         #59086.
10544
10545 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10546
10547         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10548         * icall.c: Modified icalls for RNG.
10549         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10550         Windows (CryptoAPI).
10551
10552 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10553
10554         * locales.c: Fix build.
10555
10556 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10557
10558         * culture-info-tables.h: reflecting locale-builder updates.
10559
10560 2004-05-25  Jackson Harper  <jackson@ximian.com>
10561
10562         * locales.c: When creating the current culture use the $LANGs
10563         specific culture. So DateTimeFormat and NumberFormat entries are created.
10564         
10565 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10566
10567         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10568         a char array as parameter.
10569
10570 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10571
10572         * image.c: In mono_image_open(), always use an absolute path name to
10573           look for already loaded images.
10574
10575 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10576
10577         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10578         missing in the windows build (like older cygwin include files).
10579
10580 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10581
10582         * icall.c: Fixed check for possible integer overflow in Buffer_
10583         BlockCopy icall. Replaced comments style // by /* */.
10584
10585 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10586
10587         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10588         
10589         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10590         check after MONO_VTADDR. Fixes pinvoke2.exe.
10591
10592         * marshal.h marshal.c metadata.h: Add beginnings of support for
10593         ftnptr -> delegate marshalling.
10594
10595 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10596
10597         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10598         * threads.c: Fix warnings.
10599
10600 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10601
10602         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10603         * icall.c: Registered icalls for Suspend and Resume.
10604         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10605           Thread.Abort.
10606         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10607         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10608         * process.c: Use WaitForSingleObjectEx.
10609         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10610           checkpoints.
10611         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10612           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10613           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10614           background threads. Added basic support for Abort in Windows.
10615           Start new threads using a managed delegate invoke wrapper. This wrapper
10616           has an interruption checkpoint that is needed since an interruption
10617           can be requested before the thread leaves the unmanaged code that starts 
10618           the thread.
10619         * marshal.c: Added interruption checkpoint after every native call, and
10620           also before managed calls for wrappers called from unmanaged code to
10621           go into managed code.
10622         * object.h: Added new field in MonoThread to keep track of interruption
10623           requests.
10624
10625 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10626
10627         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10628         calls.
10629
10630 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10631
10632         * appdomain.c:
10633         * assembly.c:
10634         * gc.c:
10635         * locales.c:
10636         * mono-config.c:
10637         * rand.c: getenv -> g_getenv (windows!)
10638
10639         * process.c: complete_path is also used on non-windows platforms.
10640
10641 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10642
10643         * icall.c: new signature for Process_Start.
10644
10645         * process.[ch]: new signature for Process_Start. If we're on windows
10646         and UseShellExecute is false, we have to search for the program by
10647         ourselves if we don't get a full path.
10648
10649 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10650
10651         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10652         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10653
10654 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10655
10656         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10657         Fixes bug #58373.
10658
10659 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10660
10661         * process.c: use double quotes to quote program name and arguments on
10662         windows. Fixes bug #58575.
10663
10664 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10665
10666         * file-io.c: don't return "." and ".." when using windows Find*File.
10667
10668 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10669
10670         * marshal.c: Don't pass wrappers to message init because method 
10671         addressed used to lookup metadata. part of remoting[2|3] fix.
10672
10673 2004-05-15  Jackson Harper  <jackson@ximian.com>
10674
10675         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10676         path is essentially the same as MONO_PATH except that it points to
10677         GACs instead of lib directories.
10678         * loader.h: The user gac is gone so we dont need function to
10679         enable/disable it.
10680         * mono-config.c: user gac option is now gone.
10681         
10682 2004-05-15  Jackson Harper  <jackson@ximian.com>
10683
10684         * culture-info.h: Make defines more consistent, add calendar data
10685         to the culture info table.
10686         * culture-info-tables.h: Add basic calendar data. Basically
10687         everyone gets default gregorian until all the data is
10688         updated.
10689         * locales.c: Use the new consistent defines. Set calendar data for
10690         culture info objects.
10691         * object.h: add a field for calendar data to CultureInfo
10692         
10693 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10694
10695         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10696         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10697         a signature.
10698         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10699         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10700         an extra param that is the pointer of the method to invoke. The IL for
10701         the invoke method is no longer specific to the method, but to the
10702         signature of the method. Thus, we can share the same code for multiple
10703         methods. This reduces the number of methods that have to be compiled.
10704
10705 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10706
10707         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10708
10709         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10710
10711         * icall.c: Optimize Buffer.BlockCopy.
10712
10713 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10714
10715         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10716         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10717         quote). Changed them to "MMMM yyyy".
10718
10719 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10720
10721         * rand.c
10722         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10723
10724 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10725
10726         * reflection.h: Updated after changes to managed structures.
10727
10728         * appdomain.c: Bump corlib version.
10729
10730 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10731
10732         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10733         windows.
10734
10735 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10736
10737         * Makefile.am: link to ../os/libmonoos.la on windows.
10738
10739         * assembly.c:
10740                 -If MONO_DEBUG, warn about non-existing directories in
10741                 MONO_PATH.
10742                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10743                 compile time variable.
10744                 -Removed init_default_path and call mono_set_rootdir from
10745                 libmonoos.a instead (windows only).
10746
10747         * assembly.h: declare mono_assembly_getrootdir().
10748
10749         * domain.c:
10750         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10751
10752         * loader.c: s/getenv/g_getenv/
10753
10754 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10755
10756         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10757
10758         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10759
10760         * metadata.h: Add new marshalling conversions.
10761
10762         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10763         function.
10764
10765         * reflection.c (mono_reflection_get_type): Lookup the type in all
10766         modules of a multi-module assembly. Fixes #58291.
10767
10768 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10769
10770         * threads.c: Before aborting a background, set the StopRequested
10771         state.  This avoids throwing the Abort exception.
10772         In mono_thread_manage, don't continue with the shutdown until all
10773         aborted threads have actually stopped.
10774
10775 2004-05-10  Jackson Harper  <jackson@ximian.com>
10776
10777         * locales.c: Remove the modifier from culture names.
10778         
10779 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10780
10781         * Makefile.am: monosn is not installed any more. It has been deprecated
10782         in favor of sn.
10783
10784 2004-05-07  Jackson Harper  <jackson@ximian.com>
10785
10786         * locales.c
10787         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10788         Fix array construction, add bailout if the length is 0.
10789
10790 2004-05-07  Dick Porter  <dick@ximian.com>
10791
10792         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10793         machine doesn't have a DNS entry.  Patch by Urs Muff
10794         (umuff@quark.com), fixes bug 57928.
10795
10796 2004-05-06  Jackson Harper  <jackson@ximian.com>
10797
10798         * reflection.c: Handle null PublicTokens properly. alloc mem for
10799         assembly names culture so we dont crash when freeing it.
10800         
10801 2004-05-06  Jackson Harper  <jackson@ximian.com>
10802
10803         * assembly.c: Check the usergac when loading with partial names.
10804         
10805 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10806
10807         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10808         does nothing for now (not required for Linux/Windows) but the class
10809         library can call it (and a newer or modified runtime could need it).
10810         * icall.c: Registred icall.
10811
10812 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10813
10814         * loader.c: prints a message on module loading error we set MONO_DEBUG
10815         environment variable.
10816
10817 2004-05-05  Jackson Harper  <jackson@ximian.com>
10818
10819         * appdomain.c: Handle PublicKeyToken=null properly.
10820         
10821 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10822
10823         * environment.c|h: Added icall ves_icall_System_Environment_
10824         GetOSVersionString to get the current OS version as a string.
10825         * icall.c: Registred icall.
10826
10827 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10828
10829         * object.c: in mono_object_get_virtual_method(), take into account that
10830         non-virtual methods don't have a slot in the vtable. Check needed when
10831         the object is a proxy.
10832
10833 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10834
10835         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10836         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10837
10838         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10839
10840         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10841         passed when a valuetype is expected.
10842
10843         * object.c (mono_unhandled_exception): Only set the exit code if the
10844         exception happens in the main thread. Fixes thread5.exe.
10845
10846         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10847         invalid names. Fixes #58047.
10848
10849 2004-05-03  Jackson Harper  <jackson@ximian.com>
10850
10851         * assembly.c: This line was committed accidently and is unneeded.
10852         
10853 2004-05-03  Jackson Harper  <jackson@ximian.com>
10854
10855         * icall.c: Add new icall for Assembly::LoadWithPartialName
10856         * assembly.c/.h: new function that probes the GAC to load partial
10857         assembly names by Paolo Molaro.
10858         
10859 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10860
10861         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10862         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10863         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10864         full type name.
10865
10866 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10867
10868         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10869         * reflection.c: fix bug when parsing a full type name and Version is not
10870         the last thing in the string.
10871
10872 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10873
10874         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10875         crashes when it is freed.
10876
10877 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10878
10879         * assembly.c: print the compat warning to stderr.
10880
10881 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10882
10883         * assembly.c (mono_assembly_load_references): Add a compatibility
10884         hack to run old applications that might be still referencing the
10885         3300-based assemblies, only do this for System.xxx.
10886
10887 2004-05-01  Jackson Harper  <jackson@ximian.com>
10888
10889         * appdomain.c: If the culture is neutral we set it to "".
10890         
10891 2004-04-29  Jackson Harper  <jackson@ximian.com>
10892
10893         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10894
10895 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10896  
10897         * string-icalls.c: added low overhead function for copying chars
10898         * icall.c: added needed icall for the above function
10899  
10900 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10901
10902         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10903         Environment.GetLogicalDrives.
10904
10905 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10906
10907         * rand.c: try and talk to egd or prngd
10908         for random bytes if opening devices fail.
10909
10910 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10911
10912         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10913         alignment for the type using the native alignment of its members 
10914         instead of using klass->min_align.
10915
10916         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10917
10918 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10919
10920         * file-io.c:
10921         * socket-io.c: added check for sys/aio.h.
10922
10923 2004-04-28  Dick Porter  <dick@ximian.com>
10924
10925         * threads.c: Don't abort a thread thats already aborting, when
10926         terminating everything.
10927
10928 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10929
10930         * icall.c: added 2 new async calls for Socket.
10931
10932         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10933         IO on *nix systems.
10934
10935         * threadpool.c: removed unused variable.
10936
10937 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10938
10939         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10940
10941 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10942
10943         * locales.c: put back string_invariant_tolower () and
10944         string_invariant_toupper ().
10945
10946 2004-04-26 David Waite <mass@akuma.org>
10947
10948         * file-io.h:
10949         * socket-io.h:
10950         * threads.h:
10951         * unicode.h: remove comma from end of enumeration declarations
10952
10953 2004-04-26 David Waite <mass@akuma.org>
10954
10955         * debug-mono-symfile.h:
10956         * decimal.c:
10957         * mono_debug.h:
10958         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
10959
10960
10961 2004-04-26  Jackson Harper  <jackson@ximian.com>
10962
10963         * appdomain.c: Increment version number.
10964         
10965 2004-04-26  Jackson Harper  <jackson@ximian.com>
10966
10967         * appdomain.c: Set assembly references public token value when
10968         PublicKeyToken is specified, not the hash_value. Free public token
10969         values when free assembly name data. Previously the public key
10970         token was hex decoded, however we are using hex encoded public key
10971         tokens, so this is not neccasary.
10972         * assembly.c: Lookup assemblies in the gac if their public token
10973         value is set. Add function to allow enabling user gac
10974         lookups. Specify whether or not the assembly was loaded from the
10975         GAC. Compare full assembly names when checking the cache for
10976         assemblies (Temporarily disabled see comment in code). Remove
10977         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
10978         specifies trace-loader they get extra info to stdout on the
10979         loading of assemblies.
10980         * image.h: Add a field for an assembly references public token
10981         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
10982         whether an assembly has been loaded from the GAC.
10983         * image.c: Remove a corlib -> mscorlib name mapping.
10984         * loader.h: Add function to enable/disable the user gac.
10985         * mono-config.c: Check if the usergac is enabled in the config
10986         file.
10987         * icall.c: New icall to determine whether or not an assembly has
10988         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
10989         * tabldefs.h: Add constant for assemblyref flag that specifies a
10990         full public key is used instead of a public token.
10991         * reflection.c: Remove mscorlib -> corlib mappings. Set
10992         PublicTokenValue instead of hash value. This value is a hex
10993         string so it does not need to be expanded.
10994
10995 2004-04-26  Martin Baulig  <martin@ximian.com>
10996
10997         * mono-debug-debugger.c (mono_debugger_initialize): Set
10998         `mono_debugger_initialized' before calling mono_debug_lock().
10999
11000 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11001
11002         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11003           InternalToUpper/InternalToLower.
11004         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11005           removed invariant culture shortcut.  This is now done in managed code.
11006         * locales.c: (string_invariant_toupper/tolower) removed.
11007
11008 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11009
11010         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11011         Added Poll internal call.
11012
11013         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11014         call for Poll. Select was too heavy for polling a single socket.
11015
11016         * threadpool.[ch]: added mono_threadpool_cleanup.
11017         * threads.c: use it. Don't use Thread_Abort on windows.
11018
11019 2004-04-23  Martin Baulig  <martin@ximian.com>
11020
11021         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11022
11023 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11024
11025         * icall.c: Registred new icalls for key pair protection and added an
11026         icall for Environment.GetFolderPath on Windows.
11027         * security.c|h: Added new icalls for key pair protection.
11028
11029 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11030
11031         * socket-io.c: don't display the non-supported family warning for known
11032         families. Now this is not displayed on windows when checking support
11033         for IPv4/IPv6.
11034
11035 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11036
11037         * class.c: don't display the layout warning for static fields.
11038
11039 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11040
11041         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11042         * locales.c, locales.h: Added new icalls for culture-specific
11043         Char.ToLower and Char.ToUpper.
11044
11045 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11046
11047         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11048         by David Waite.
11049
11050 2004-04-20  Martin Baulig  <martin@ximian.com>
11051
11052         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11053         of the type name before passing it to mono_reflection_type_from_name().
11054
11055 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11056
11057         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11058         encodings here. Fixes #56965.
11059
11060 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11061
11062         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11063         fix test on strstr result not that I can see anything that
11064         relies on the result.
11065
11066 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11067
11068         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11069         Fixes #57081.
11070
11071         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11072
11073         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11074         function to determine which marshalling to use for strings. Fixes
11075         #56965.
11076
11077         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11078
11079         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11080
11081 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11082
11083         * icall.c: #include mono-config.h
11084
11085 2004-04-15  Jackson Harper  <jackson@ximian.com>
11086
11087         * culture-info-tables.h: Fix date formats for en-US culture.
11088         
11089 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11090
11091         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11092         ThreadPool.SetMinThreads.
11093         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11094         ThreadPool.SetMinThreads.
11095
11096 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11097
11098         * mono-config.c: also load the .config file in the directory
11099         where the assembly was found.
11100
11101 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11102
11103         * assembly.c: load per-assembly config files.
11104         * icall.c: decrapified code to get the config dir and moved to
11105         mono-config.c.
11106         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11107         per-assembly config files. When doing a dll map lookup give precedence
11108         to the per-assembly data.
11109
11110 2004-04-14  Martin Baulig  <martin@ximian.com>
11111
11112         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11113         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11114         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11115
11116         * mono-debugger-debugger.c: While the debugger is locked, remember
11117         whether the symbol tables have changes and send one single
11118         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11119
11120 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11121
11122         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11123
11124         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11125         function.
11126
11127         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11128         account when marshalling string arrays. Fixes #56965.
11129
11130 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11131
11132         * icall.c: Add new icalls mapping for security.
11133         * security.c|h: Add internal calls for WindowsIdentity,
11134         WindowsImpersonationContext and WindowsPrincipal.
11135
11136 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11137
11138         * class.c: Added comment to ensure the System.MonoDummy class
11139         is removed when no longer necessary
11140
11141 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11142
11143         * appdomain.c: Pass arguments to the bootstraping exceptions to
11144         minimize JITed methods at boot
11145
11146         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11147         second string to be null.
11148
11149         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11150         Change the protocol to minimize the JIT methods at startup.  Now
11151         it Returns the internal codepage, if the value of "int_code_page"
11152         is 1 at entry, and we can not compute a suitable code page
11153         number, returns the code page as a string.
11154
11155 2004-04-13  Jackson Harper  <jackson@ximian.com>
11156
11157         * culture-info-tables.h: Fix number of decimal digits for all
11158         english locales.
11159
11160 2004-04-13  Jackson Harper  <jackson@ximian.com>
11161
11162         * icall.c: Clairfy out of sync error message. It is not always
11163         your corlib that is out of sync.
11164
11165 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11166
11167         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11168         properties when only the set accessor is overriden. Fixes #55874.
11169
11170 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11171
11172         * assembly.c (mono_assembly_load_references): Make this thread safe.
11173         Fixes #56327.
11174
11175 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11176
11177         * monosn.c: Add missing initialization calls.
11178
11179 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11180
11181         * locales.c:
11182         ves_icall_System_Globalization_CultureInfo_construct_number_format
11183         Fix g_assert so it compiles on fussier compilers re int/ptr
11184         mismatch
11185
11186 2004-04-08  Dick Porter  <dick@ximian.com>
11187
11188         * socket-io.h:
11189         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11190         53992.  Also rearrange the code so that the internal calls return
11191         an error value and exceptions are thrown from managed code.
11192
11193         * icall.c: Add type info to the socket icalls.
11194
11195 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11196
11197         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11198         owes me a beer.
11199
11200 2004-04-07  Martin Baulig  <martin@ximian.com>
11201
11202         * class.c (mono_class_from_generic_parameter): Don't default
11203         `klass->parent' to `mono_defaults.object_type'.
11204
11205 2004-04-07  Martin Baulig  <martin@ximian.com>
11206
11207         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11208         `param->pklass->reflection_info'.       
11209
11210 2004-04-07  Jackson Harper  <jackson@ximian.com>
11211
11212         * culture-info-tables.h: Fix date separator symbol.
11213         
11214 2004-04-07  Martin Baulig  <martin@ximian.com>
11215
11216         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11217         from System.Type to System.MonoType.
11218
11219 2004-04-07  Martin Baulig  <martin@ximian.com>
11220
11221         * reflection.h
11222         (MonoReflectionGenericParam): Added `has_reference_type' and
11223         `has_value_type' fields.
11224
11225         * reflection.c (mono_image_get_generic_param_info): Encode the
11226         correct flags if we have the `class' or `struct' constraint.
11227
11228 2004-04-07  Martin Baulig  <martin@ximian.com>
11229
11230         * reflection.h
11231         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11232
11233 2004-04-07  Jackson Harper  <jackson@ximian.com>
11234
11235         * appdomain.c: Revert extra patches, just wanted to bump the
11236         version number.
11237         
11238 2004-04-07  Jackson Harper  <jackson@ximian.com>
11239
11240         * Makefile.am: Add culture-info private headers.
11241         * icall.c: Add new icalls for contructing locales.
11242         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11243         * locales.h: Declare new culture info construction methods.
11244         * object.h: Add new fields used to avoid the CultureMap to
11245         MonoCultureInfo.
11246         * culture-info.h: Definition of structs used in the culture info
11247         tables.
11248         * culture-info-tables.h: Autogenerated tables that contain culture
11249         info data. This file was generated with the locale-builder tool.
11250         * appdomain.c: Incement corlib version number.
11251         
11252 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11253
11254         * appdomain.c: (mono_runtime_init) move mono_thread_init
11255         to before mono_object_new calls so critical sections
11256         are initialized before use.
11257
11258 2004-04-07  Martin Baulig  <martin@ximian.com>
11259
11260         * icall.c
11261         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11262         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11263         (ves_icall_MonoGenericParam_initialize): Removed.
11264         (monogenericparam_icalls): Removed.
11265         (generictypeparambuilder_icalls): Added new table for
11266         System.Reflection.Emit.GenericTypeParameterBuilder.
11267
11268         * reflection.c
11269         (mono_reflection_define_generic_parameter): Removed.
11270         (mono_reflection_initialize_generic_parameter): This is now called
11271         from GenericTypeParameterBuilder's .ctor.
11272
11273 2004-04-06  Martin Baulig  <martin@ximian.com>
11274
11275         * class.c (mono_class_init): Don't inflate nested classes in a
11276         generic instance.
11277         (mono_type_get_name_recurse): Include the generic arguments for
11278         generic instances and generic type declarations.
11279         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11280         (_mono_class_get_instantiation_name): Removed.
11281         (mono_class_create_generic): Always use `gklass->name' as our name.
11282
11283         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11284
11285         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11286         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11287         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11288         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11289         closed generic methods here.
11290
11291         * reflection.c
11292         (mono_reflection_generic_inst_get_nested_types): Removed.
11293         (inflate_mono_method): Copy the generic parameters from the
11294         MonoMethodHeader into out MonoGenericMethod.
11295
11296 2004-04-06  Martin Baulig  <martin@ximian.com>
11297
11298         * row-indexes.h
11299         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11300
11301         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11302
11303         * reflection.c (build_compressed_metadata): If we have any entries
11304         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11305         set the header version to 1.1.
11306
11307 2004-04-06  Martin Baulig  <martin@ximian.com>
11308
11309         * class.c (mono_class_init): If we're a generic instance,
11310         initialize our nested classes, too.
11311         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11312         suffix. 
11313
11314 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11315
11316         * process.c: quote the argument passed to the shell on windows.
11317
11318 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11319
11320         * threads.c (mono_alloc_special_static_data): Allow this to be
11321         called during startup.
11322
11323 2004-04-02  Martin Baulig  <martin@ximian.com>
11324
11325         * icall.c
11326         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11327
11328 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11329
11330         * icall.c: Fix build.
11331
11332 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11333
11334         * Makefile.am: Added security.c|h.
11335         * icall.c: Added icall for get_UserName;
11336         * security.c: New file for security related icalls. Added function
11337         get_UserName for System.Environment (fix #56144).
11338         * security.h: New. Header file for security.c
11339
11340 2004-04-02  Dick Porter  <dick@ximian.com>
11341
11342         * icall.c: Deleted the icalls that were obsoleted some time ago
11343         by the ICU string code, and which were mixed into the icall
11344         rearranging.  Fixes bug 55969.
11345
11346         * string-icalls.h: 
11347         * string-icalls.c: Deleted the code that those icalls reference.
11348
11349 2004-04-01  Martin Baulig  <martin@ximian.com>
11350
11351         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11352
11353         * class.c (mono_class_from_generic_parameter): Don't set 
11354         TYPE_ATTRIBUTE_INTERFACE.
11355         (my_mono_class_from_generic_parameter): Likewise.
11356
11357 2004-04-01  Martin Baulig  <martin@ximian.com>
11358
11359         * loader.c (find_method): Added an optional `MonoClass *ic'
11360         argument to search in a specific interface.
11361         (mono_get_method_constrained): New public function.
11362
11363 2004-04-01  Martin Baulig  <martin@ximian.com>
11364
11365         * reflection.c (mono_image_get_generic_field_token): Use the
11366         `handleref' cache here.
11367
11368 2004-04-01  Martin Baulig  <martin@ximian.com>
11369
11370         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11371
11372         * reflection.c (create_generic_typespec): Use the `typespec' hash
11373         here, not the `typeref' one.    
11374
11375 2004-04-01  Martin Baulig  <martin@ximian.com>
11376
11377         * class.c (mono_class_inflate_generic_type): Moved the
11378         functionality into a new static inflate_generic_type() which
11379         returns NULL if it didn't do anything.  Only increment the
11380         `mono_stats.inflated_type_count' if we actually inflated
11381         something.
11382         (mono_class_get_full): Check the classes type to see whether we
11383         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11384
11385 2004-04-01  Jackson Harper  <jackson@ximian.com>
11386
11387         * reflection.c: Set culture for assembly references.
11388         
11389 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11390
11391         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11392
11393 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11394
11395         * assembly.c:
11396         (do_mono_assembly_open): the critical section also covers
11397         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11398
11399 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11400
11401         * threads.c:
11402         (mono_manage_threads): abort the background threads when finishing.
11403         Fixes bug #47232.
11404
11405 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11406
11407         * gc.c: only close the done_event handle if there was no timeout.
11408         C-ified comments.
11409
11410 2004-03-30  Martin Baulig  <martin@ximian.com>
11411
11412         * icall.c (icall_entries): It's called "System.Activator", not
11413         "System.Activation".    
11414
11415 2004-03-30  Martin Baulig  <martin@ximian.com>
11416
11417         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11418         (mono_class_create_from_typespec): Likewise.
11419
11420 2004-03-30  Martin Baulig  <martin@ximian.com>
11421
11422         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11423         `has_ctor_constraint' and `initialized'.
11424
11425 2004-03-30  Martin Baulig  <martin@ximian.com>
11426
11427         * reflection.c (encode_new_constraint): New static function to add
11428         the constructor constraint attribute to a type parameter.
11429         (encode_constraints): Call encode_new_constraint() if necessary.
11430
11431         * reflection.h
11432         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11433
11434         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11435         
11436 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11437
11438         * reflection.c, icall.c: add support for pinning variables. 
11439
11440 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11441
11442         * marshal.c (mono_marshal_get_managed_wrapper):
11443         init bool local with zero rather than null.
11444
11445 2004-03-29  Martin Baulig  <martin@ximian.com>
11446
11447         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11448         the "official" behavior here.
11449         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11450
11451 2004-03-29  Martin Baulig  <martin@ximian.com>
11452
11453         * icall.c: Reflect latest API changes.
11454
11455 2004-03-29  Martin Baulig  <martin@ximian.com>
11456
11457         * loader.c (mono_get_method_from_token): Also call
11458         mono_metadata_load_generic_params () for abstract and interface
11459         methods; replace the type arguments in the method signature with
11460         the ones which are loaded from the metadata.
11461
11462 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11463
11464         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11465         of the lock is not the current thread. MS.NET don't do it, in spite of
11466         what the documentation says. See bug #56157.
11467
11468 2004-03-28  Martin Baulig  <martin@ximian.com>
11469
11470         * class.c (mono_class_init): Don't call init_properties() and
11471         init_events() for generic instances; set `prop->parent' when
11472         inflating properties.
11473
11474         * reflection.c (mono_generic_inst_get_object): Call
11475         `mono_class_init (ginst->klass)'.
11476         (mono_type_get_object): Only create a MonoGenericInst if your
11477         generic type is a TypeBuilder.
11478         (do_mono_reflection_bind_generic_parameters): Only set
11479         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11480
11481 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11482
11483         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11484         Fixes #56091.
11485
11486 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11487
11488         * icall.c: added Kill_internal icall.
11489         * process.[ch]: added Kill_internal icall.
11490
11491 2004-03-25  Martin Baulig  <martin@ximian.com>
11492
11493         * class.h (MonoStats): Added `generic_instance_count',
11494         `inflated_method_count', `inflated_type_count' and
11495         `generics_metadata_size'.       
11496
11497 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11498
11499         * reflection.c: no warnings now.
11500
11501 2004-03-25  Martin Baulig  <martin@ximian.com>
11502
11503         * class.c (mono_class_get_full): New public function; does a
11504         mono_class_get(), but also takes a `MonoGenericContext *'.
11505
11506         * loader.c (mono_field_from_memberref): Renamed to
11507         `field_from_memberref', made static and added `MonoGenericContext *'
11508         argument.
11509         (mono_field_from_token): Added `MonoGenericInst *' argument.
11510         (method_from_memberef): Likewise.
11511         (mono_get_method_from_token): Likewise.
11512         (mono_get_method_full): New public function; does a
11513         mono_get_method(), but also takes a `MonoGenericContext *'.
11514
11515         * verify.c (mono_method_verify): Get the method's generic context
11516         and pass it to mono_field_from_token(), mono_get_method_full() and
11517         mono_class_get_full().
11518
11519 2004-03-25  Martin Baulig  <martin@ximian.com>
11520
11521         * class.c (mono_class_inflate_generic_type): Take a
11522         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11523         `MonoGenericMethod *'.
11524
11525 2004-03-25  Martin Baulig  <martin@ximian.com>
11526
11527         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11528         instead of the MonoGenericMethod here.
11529
11530 2004-03-25  Martin Baulig  <martin@ximian.com>
11531
11532         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11533         each time we create a new MonoGenericInst, we also create a new
11534         context which points back to us.
11535
11536         * class.c (inflate_method): Use `ginst->context' instead of
11537         creating a new context.
11538
11539         * loader.c (method_from_memberref): Use
11540         `klass->generic_inst->context' instead of creating a new context.
11541
11542 2004-03-25  Martin Baulig  <martin@ximian.com>
11543
11544         * class.h (MonoGenericContext): New struct.
11545         (MonoGenericMethod): Removed `generic_inst'.
11546
11547         * class.c (mono_class_inflate_generic_method): Take a
11548         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11549
11550 2004-03-25  Martin Baulig  <martin@ximian.com>
11551
11552         * loader.h (MonoMethodInflated): New typedef.
11553
11554         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11555         `generic_param_count' consume just 30 bits, added `is_inflated'
11556         and `has_type_parameters' flags (one bit each).
11557
11558         * class.c (mono_class_inflate_generic_method): Create a
11559         MonoMethodInflated instead of a MonoMethodNormal and set
11560         `is_inflated' in the method signature.
11561
11562         * class.h (MonoGenericMethod): Removed `generic_method'.
11563
11564 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11565
11566         * image.c: Make sure the name of a MonoImage is always an absolute path.
11567           This fixes bug #54415.
11568
11569 2004-03-24  Martin Baulig  <martin@ximian.com>
11570
11571         * class.c (mono_class_setup_vtable): If we're a generic instance,
11572         use our generic type's vtable size.
11573
11574 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11575
11576         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11577         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11578         problems.
11579
11580 2004-03-23  Martin Baulig  <martin@ximian.com>
11581
11582         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11583         `MonoEvent *events'.
11584
11585         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11586         (typebuilder_icalls): Added "get_event_info"; calls
11587         mono_reflection_event_builder_get_event_info(). 
11588
11589         * reflection.c (mono_reflection_generic_inst_initialize): Added
11590         `MonoArray *events'.
11591         (mono_reflection_event_builder_get_event_info): New function.
11592
11593 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11594
11595         * object.h: add mono_type_initialization_init
11596
11597         * object.c (mono_runtime_class_init): 
11598         implement class constructor synchronization rules
11599         to cope with threading issues.  
11600         add mono_type_initialization_init
11601
11602         * appdomain.c (mono_runtime_init): call 
11603         mono_type_initialization_init
11604
11605         * class.h: removing initializing field from MonoVTable
11606
11607 2004-03-23  Martin Baulig  <martin@ximian.com>
11608
11609         * class.c (my_mono_class_from_generic_parameter): Use
11610         `param->name' if it's not NULL. 
11611
11612 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11613
11614         * class.c: do not insert non-virtual methods in the vtable.
11615         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11616         that means the method is non-virtual. This never would have
11617         happened before.
11618
11619 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11620
11621         * profiler.c: Added lock for accessing coverage_hash.
11622
11623 2004-03-22  Martin Baulig  <martin@ximian.com>
11624
11625         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11626         `method->method->signature->generic_param_count != 0' to make it
11627         work for interface methods.
11628
11629 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11630
11631         * process.c: quote the string passed to the shell using g_shell_quote.
11632
11633 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11634
11635         * threads.c:
11636         (mono_threads_manage): don't remove the finalizer thread and self
11637         from the threads hash table so that mono_thread_manage can be called
11638         more than once.
11639
11640 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11641
11642         * process.c: quote the arguments when UseShellExecute is true. Fixes
11643         bug #55790.
11644
11645 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11646
11647         * threads.c: set mono_thread_detach as a cleanup routine for every
11648         thread. This way it's always executed upon thread termination, either
11649         aborted or finished normally. No more xsp hangs!
11650
11651 2004-03-17  Martin Baulig  <martin@ximian.com>
11652
11653         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11654         `int count_nested' and a `MonoType **nested'.
11655
11656         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11657         most of the functionality into a new static
11658         do_mono_reflection_bind_generic_parameters() and don't take a
11659         `MonoType *nested_in' argument any more.  Don't compute nested
11660         types here.
11661         (mono_reflection_generic_inst_get_nested_types): New public method
11662         to get nested types.
11663
11664         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11665         we're a nested class.
11666
11667         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11668         mono_reflection_generic_inst_get_nested_types() to compute the
11669         nested types.
11670
11671 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11672
11673         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11674         descriptive error message under windows.
11675         
11676 2004-03-17  Martin Baulig  <martin@ximian.com>
11677
11678         * class.c (dup_type): Added `const MonoType *original' argument;
11679         copy the attrs from the original type.
11680
11681 2004-03-17  Martin Baulig  <martin@ximian.com>
11682
11683         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11684         `m->generic_inst_cache' here.
11685
11686 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11687
11688         * exception.h exception.c: Add stack_overflow_exception.
11689
11690 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11691
11692         * threadpool.c:
11693         (overlapped_callback): call SetEvent *after* invoking the callback.
11694         No need to call CloseHandle.
11695
11696 2004-03-16  Martin Baulig  <martin@ximian.com>
11697
11698         * reflection.c (mono_image_get_fieldref_token): Take a
11699         `MonoReflectionField *' instead of a `MonoClassField *' and a
11700         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11701
11702 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11703
11704         * appdomain.c: don't add the culture to the filename we're looking for
11705         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11706
11707 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11708
11709         * locales.c: don't ignore symbols when doing case insensitive compares.
11710         Thanks Dick! Fixes bug #54046.
11711
11712         * threads.c: surround 'threads' usage with enter/leave in
11713         mono_thread_manage.
11714
11715 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11716
11717         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11718         implicitly marshalled as [Out]. Fixes #55450.
11719
11720         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11721         an exception.
11722
11723 2004-03-16  Martin Baulig  <martin@ximian.com>
11724
11725         * class.c (mono_class_from_generic_parameter): Use the actual
11726         parameter name. 
11727
11728 2004-03-16  Martin Baulig  <martin@ximian.com>
11729
11730         * reflection.c (type_get_signature_size): New static function.
11731         Compues the size of the type in a method signature.
11732         (method_get_signature_size): New static function; calls
11733         type_get_signature_size() to compute the actual size of the
11734         method's signature.
11735         (method_encode_signature): Use method_get_signature_size() to get
11736         the signature's size rather than using `nparams * 10'.
11737
11738 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11739
11740         * file-io.h: define here WapiOverlapped on windows. I don't want the
11741         regular OVERLAPPED one.
11742
11743         * file-io.c:
11744         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11745         Disabling AIO on windows.
11746
11747 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11748
11749         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11750         bug #55385.
11751
11752 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11753
11754         * appdomain.c: upgraded corlib version.
11755
11756         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11757         and BeginWrite. Allow opening files for asynchrnous operations.
11758
11759         * file-io.h: new struct that maps FileStreamAsyncResult.
11760         * icall.c: added new icalls.
11761         * process.[ch]: support setting child process environment variables
11762         and use the SHELL or COMSPEC when UseShellExecute is true.
11763
11764         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11765         callback for async. IO is here and also BindHandle.
11766
11767         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11768         from here.
11769
11770 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11771
11772         * reflection.c (create_custom_attr): Allow len == 0.
11773
11774         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11775         computation on big-endian machines.
11776
11777 2004-03-13  Martin Baulig  <martin@ximian.com>
11778
11779         * class.h (MonoGenericInst): Added `int count_ifaces'.
11780
11781         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11782         `ginst->count_ifaces' instead `klass->interface_count' since we
11783         may get called before the vtable is created.
11784
11785         * loader.c (mono_method_get_param_names): If we're a generic
11786         instance, return and don't initialize the class.
11787
11788         * reflection.c (mono_reflection_setup_generic_class): Don't call
11789         ensure_runtime_vtable().
11790         (mono_reflection_bind_generic_parameters): Set
11791         `ginst->count_ifaces'.
11792
11793 2004-03-11  Jackson Harper <jackson@ximian.com>
11794
11795         * icall.c:
11796         * unicode.c:
11797         * unicode.h: Remove unused System.Char icalls.
11798         
11799 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11800
11801         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11802         code when we P/Invoke the first library in Windows.Forms, instead
11803         of when we first open the assembly.
11804
11805         * assembly.c: Drop the lookup from here.
11806
11807 2004-03-10  Martin Baulig  <martin@ximian.com>
11808
11809         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11810         class for properties, fields and events.  Finally fixes #54945.
11811
11812 2004-03-10  Martin Baulig  <martin@ximian.com>
11813
11814         * metadata.c (mono_metadata_class_equal): New static function;
11815         checks whether two generic instances or two generic parameters are
11816         equal.
11817         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11818         compare classes.        
11819
11820 2004-03-10  Martin Baulig  <martin@ximian.com>
11821
11822         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11823
11824         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11825         argument and write it into the `reflection_info' field.
11826
11827         * icall.c
11828         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11829         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11830
11831 2004-03-09  Jackson Harper  <jackson@ximian.com>
11832
11833         * char-conversions.h: use 8 bits for numeric data its all we need
11834         * icall.c: numeric data is only 8 bits now.
11835
11836 2004-03-09  Martin Baulig  <martin@ximian.com>
11837
11838         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11839
11840         * class.c (init_properties, init_events): Initialize the new
11841         `parent' field.
11842
11843         * reflection.c (typebuilder_setup_properties): Likewise.
11844         (typebuilder_setup_events): Likewise.
11845
11846         * reflection.h (MonoEventInfo): Replaced `parent with
11847         `declaring_type' and `reflected_type'.
11848
11849         * icall.c (ves_icall_get_property_info): Distinguish between
11850         declaring and reflected type.
11851         (ves_icall_get_event_info): Likewise.
11852
11853 2004-03-09  Martin Baulig  <martin@ximian.com>
11854
11855         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11856         (ves_icall_Type_GetField): Correctly set field->klass.
11857
11858 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11859
11860         * loader.h: Fix warning.
11861
11862 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11863
11864         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11865         library routine if present.  Notice that it will still continue
11866         executing even if its missing, for those working on the Gtk#
11867         edition of Windows.Forms.
11868
11869         * assembly.c (do_mono_assembly_open): If loading the
11870         System.Windows.Forms call mono_loader_wini_init.
11871
11872 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11873
11874         * class.h: Added MonoRemoteClass struct.
11875         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11876         function for MonoStrings.
11877         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11878         Added internal call for getting the proxy type.
11879         * marshal.c: Get the type of transparent proxies from its remote_class.
11880         Added methods that generate the IL for type checks and casts:
11881         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11882         mono_marshal_get_proxy_cancast.
11883         * marshal.h: Declaration of the previous new methods.
11884         * object.c: Added new moethods for creating and updating MonoRemoteClass
11885         instances: mono_remote_class, mono_upgrade_remote_class, 
11886         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11887         * verify.c: FIx transparent_proxy_fields layout.
11888         * appdomain.c: Bump corlib version.
11889
11890 2004-03-04  Jackson Harper  <jackson@ximian.com>
11891
11892         * icall.c: Add icall to access char conversion tables.
11893         * char-conversions.h: Character conversion tables.
11894         * Makefile.am: Add char-conversions.h private header file.
11895         
11896 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11897
11898         * appdomain.c (unload_thread_main): Increase unloading timeout to
11899         10 sec as a temporary workaround for Nant problems.
11900
11901 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11902
11903         * gc.c: Add checks for GC_enable and GC_disable.
11904
11905         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11906         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11907         (bug #54988).
11908         
11909 2004-02-27  Martin Baulig  <martin@ximian.com>
11910
11911         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11912         `MonoReflectionType *' instead of a `MonoType *'.
11913
11914 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11915
11916         * gc.c (run_finalize): Avoid finalizing the object representing the
11917         finalizer thread.
11918         (finalizer_thread): Fix warning.
11919
11920 2004-02-25  Martin Baulig  <martin@ximian.com>
11921
11922         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11923         argument for nested types.
11924         (mono_class_create_generic): Added support for nested generictypes.
11925
11926         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11927         `GList *nested'.
11928
11929         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11930
11931         * reflection.c (method_encode_signature): Increase the minimum
11932         value of `size' from 10 to 11.
11933         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11934         and `MonoType **types' arguments instead of the `MonoArray
11935         *types'; added `MonoType *nested_in'.  Recursively instantiate
11936         nested classes. 
11937
11938 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11939
11940         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11941         stack_overflow_ex members which are used by exception handling.
11942
11943         * appdomain.c (mono_runtime_init): Initialize the new members.
11944
11945         * gc.c (mono_gc_enable): New helper function.
11946         * gc.c (mono_gc_disable): New helper function.
11947
11948 2004-02-23  Martin Baulig  <martin@ximian.com>
11949
11950         * icall.c: I must have been really stupid - make it actually work
11951         this time ;-)
11952
11953 2004-02-23  Martin Baulig  <martin@ximian.com>
11954
11955         * loader.c (method_from_memberref): Only inflate the method if
11956         it's in another klass.
11957
11958 2004-02-23  Martin Baulig  <martin@ximian.com>
11959
11960         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
11961         (mono_class_init): If we're a generic instance and an interface,
11962         compute `class->interface_id'; also create `class->interfaces'
11963         here and inflate them.
11964
11965         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
11966         `ginst->is_open'.
11967         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
11968
11969         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
11970
11971 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
11972
11973         * reflection.c (method_encode_code): Improved the error message
11974         generated by the exception.
11975
11976 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11977
11978         * icall.c: Martin did not do what he said in the ChangeLog for
11979         2004-02-18, but put back the changes for properties and events.
11980         Commenting those changes out again and adding comment to bug #54518.
11981         
11982         * process.c: removed warning.
11983
11984 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
11985
11986         * marshal.c (emit_struct_conv): Print an error message instead of
11987         asserting when a type does not have the StructLayout attribute.
11988
11989 2004-02-20  Martin Baulig  <martin@ximian.com>
11990
11991         * reflection.c (mono_type_get_object): Also use the cache for
11992         generic instances.
11993         (mono_reflection_bind_generic_parameters): Always compute
11994         `ginst->ifaces'.        
11995
11996 2004-02-20  Martin Baulig  <martin@ximian.com>
11997
11998         * class.h (MonoGenericMethod): Removed `klass'.
11999
12000         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12001         *klass' argument.
12002
12003 2004-02-20  Martin Baulig  <martin@ximian.com>
12004
12005         * reflection.c (method_encode_methodspec): Actually use the
12006         uninflated signature for the memberref.
12007
12008 2004-02-20  Martin Baulig  <martin@ximian.com>
12009
12010         * class.h (MonoGenericMethod): Removed `declaring'.
12011
12012         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12013         is NULL, compute it here.
12014
12015 2004-02-20  Martin Baulig  <martin@ximian.com>
12016
12017         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12018
12019         * metadata.c (mono_metadata_generic_inst_hash): New method.
12020         (mono_metadata_generic_inst_equal): New method.
12021
12022         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12023         `klass->image->generic_inst_cache' cache to avoid creating
12024         duplicate MonoGenericInst's.
12025
12026         * class.c (mono_class_inflate_generic_type): Use the cache.
12027
12028 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12029
12030         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12031
12032 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12033
12034         * icall.c: added Socket.WSAIoctl icall.
12035
12036         * socket-io.[ch]: implemented
12037         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12038
12039 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12040
12041         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12042
12043 2004-02-18  Urs C Muff  <umuff@quark.com>
12044
12045         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12046         this work on PPC and other big-endian architectures.
12047
12048         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12049         fields with an underscore to make sure they're only accessed by
12050         the read32() macro.
12051
12052 2004-02-18  Martin Baulig  <martin@ximian.com>
12053
12054         * icall.c: Put the klass->refclass changes back for methods and
12055         fields, but not for properties and events.  We're currently not
12056         distinguishing between DeclaringType and ReflectedType for
12057         properties and events, that's what caused the regressions.
12058
12059 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12060
12061         * object.c:
12062         (mono_async_result_new): the handle can be NULL.
12063
12064         * threadpool.c: Use an event instead of a semaphore, don't initialize
12065         it until needed. This saves quite a few semaphores from being created
12066         when using the threadpool.
12067
12068 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12069
12070         * object.c (mono_string_is_interned_lookup): Fix interning of long
12071         strings. Fixes #54473.
12072
12073         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12074
12075         * icall.c: Revert the klass->refclass changes since they introduce
12076         regressions (bug #54518).
12077
12078 2004-02-18  Martin Baulig  <martin@ximian.com>
12079
12080         * class.c (mono_class_init): If we're a generic instance and don't
12081         come from a TypeBuilder, inflate our members here.
12082         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12083         (mono_class_create_generic): New public method.
12084         (mono_class_initialize_generic): Removed.
12085         (get_instantiation_name): Renamed to
12086         _mono_class_get_instantiation_name() and made it public.
12087
12088 2004-02-18  Martin Baulig  <martin@ximian.com>
12089
12090         * class.c (mono_class_inflate_generic_type): Clear the new
12091         instance's `nginst->klass' when inflating a generic instance.
12092         (mono_class_is_subclass_of): Added (basic) support for generic
12093         instances.
12094
12095 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12096
12097         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12098         MonoMempool to hold compiled native code.
12099
12100 2004-02-17  Martin Baulig  <martin@ximian.com>
12101
12102         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12103         `properties'.
12104
12105         * reflection.c (mono_reflection_generic_inst_initialize): Added
12106         `MonoArray *properties' argument.
12107
12108         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12109
12110 2004-02-17  Martin Baulig  <martin@ximian.com>
12111
12112         * icall.c (ves_icall_Type_GetFields): Renamed to
12113         ves_icall_Type_GetFields_internal() and added a
12114         `MonoReflectionType *rtype' argument; pass it to
12115         mono_field_get_object() to set the field's "reflected" type.
12116         (ves_icall_Type_GetConstructors): Likewise.
12117         (ves_icall_Type_GetEvents): Likewise.
12118         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12119         argument; pass it to mono_method_get_object() to set the method's
12120         "reflected" type.       
12121
12122 2004-02-17  Martin Baulig  <martin@ximian.com>
12123
12124         * class.h (MonoDynamicGenericInst): New type.
12125         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12126
12127         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12128         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12129         (ves_icall_MonoGenericInst_GetFields): New interncall.
12130
12131         * class.c (mono_class_from_generic): Don't call
12132         mono_class_initialize_generic() if this is a dynamic instance;
12133         ie. it's being created from a TypeBuilder.
12134         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12135         `class->byval_arg.type'.
12136
12137         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12138         to `inflate_method' and made static.
12139         (mono_reflection_inflate_field): Removed.
12140         (mono_reflection_generic_inst_initialize): New public method.
12141
12142         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12143         `ctors' and `fields'; added `initialized'.
12144
12145 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12146
12147         * debug-helpers.c (mono_method_full_name): Fix output for empty
12148         namespaces.
12149
12150 2004-02-12  Martin Baulig  <martin@ximian.com>
12151
12152         * class.h (MonoClassField): Added `MonoType *generic_type'.
12153
12154         * reflection.c (mono_image_get_fieldref_token): Added support for
12155         instantiated generic types.
12156         (field_encode_inflated_field): Removed.
12157         (mono_image_get_inflated_field_token): Removed.
12158         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12159
12160         * reflection.h (MonoReflectionInflatedField): Removed.
12161
12162 2004-02-12  Martin Baulig  <martin@ximian.com>
12163
12164         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12165         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12166
12167         * reflection.c (mono_image_get_methodspec_token): Take a
12168         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12169         (mono_image_create_token): Check whether we have a
12170         `method->signature->gen_method' and call
12171         mono_image_get_methodspec_token() if appropriate.
12172         (inflated_method_get_object): Removed.
12173         (mono_reflection_bind_generic_method_parameters): Return a
12174         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12175         (mono_reflection_inflate_method_or_ctor): Likewise.
12176
12177         * reflection.h (MonoReflectionInflatedMethod): Removed.
12178
12179 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12180
12181         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12182         for custom valuetype marshalling.
12183
12184         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12185
12186 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12187
12188         * icall.c: fixed WSAGetLastError_internal name.
12189
12190 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12191
12192         * threads.c (mono_thread_attach): Allow this to be called multiple
12193         times for a thread.
12194         
12195         * threads.c (build_wait_tids): Do not wait for ourselves.
12196
12197         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12198         appdomain list is empty.
12199
12200         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12201         memory returned by mono_string_builder_to_utf16, since it points into
12202         managed memory. Thanks to Bernie Solomon for noticing this.
12203
12204         * icall.c: Add AppDomainSetup icalls.
12205
12206         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12207
12208         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12209         types.
12210
12211         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12212         custom attributes to the method_aux struct. Also fix array indexes etc.
12213
12214         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12215         
12216 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12217
12218         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12219         (both static and runtime) and reduce startup time.
12220
12221 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12222
12223         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12224         AsAny marshalling conversion instead of crashing.
12225
12226         * marshal.c: Fix warnings.
12227
12228 2004-02-09  Martin Baulig  <martin@ximian.com>
12229
12230         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12231
12232         * reflection.h (MonoReflectionInflatedMethod): Removed the
12233         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12234
12235         * reflection.c (method_encode_methodspec): Removed the `method'
12236         argument; we get it from `gmethod->declaring'.
12237         (inflated_method_get_object): Removed the `declaring' argument.
12238
12239 2004-02-09  Martin Baulig  <martin@ximian.com>
12240
12241         * class.h (MonoGenericMethod): New type.
12242         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12243         `generic_method'.
12244
12245         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12246         a `MonoGenericMethod *gen_method' one.
12247
12248         * class.c (mono_class_inflate_generic_type): Take an additional
12249         `MonoGenericMethod * argument.  This is only non-NULL if we're
12250         inflating types for a generic method.   
12251         (mono_class_inflate_generic_signature): Renamed to
12252         inflate_generic_signature() and made static; take a
12253         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12254         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12255         instead of a `MonoGenericInst *' one.
12256         (mono_class_inflate_generic_method): Likewise.
12257
12258         * reflection.c (encode_generic_method_sig): Take a
12259         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12260         (method_encode_methodspec): Likewise.
12261         (inflated_method_get_object): Likewise. 
12262
12263         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12264         field with a `MonoGenericMethod *gmethod' one.  
12265
12266 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12267
12268         * class.h (mono_class_has_parent): add parens to expansion
12269         so you can ! this.
12270
12271 2004-02-08  Martin Baulig  <martin@ximian.com>
12272
12273         * image.h (MonoImage): Removed `generics_cache'.
12274
12275         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12276         instead of a `MonoType *' argument; removed the `inflate_methods'
12277         argument.  Don't inflate methods here.
12278
12279         * loader.c (find_method): If it's a generic instance, call
12280         mono_class_init() on the `sclass->generic_inst->generic_type'.
12281
12282         * metadata.c (mono_type_size): Make this work on uninitialized
12283         generic instances; call it on the `ginst->generic_type's class.
12284
12285         * reflection.c (mono_reflection_bind_generic_parameters): Call
12286         mono_class_from_generic() to create the `ginst->klass'.
12287
12288 2004-02-08  Martin Baulig  <martin@ximian.com>
12289
12290         * class.h (MonoClass): Changed type of `generic_inst' from
12291         `MonoType *' to `MonoGenericInst *'.
12292
12293 2004-02-08  Martin Baulig  <martin@ximian.com>
12294
12295         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12296         mono_type_get_object(), this is now creating a `MonoGenericInst'
12297         for MONO_TYPE_GENERICINST.
12298         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12299         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12300
12301         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12302         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12303         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12304         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12305         and reflected type.
12306
12307         * reflection.h (MonoReflectionInflatedMethod): Removed
12308         `declaring_type' and `reflected_type'.
12309
12310 2004-02-08  Martin Baulig  <martin@ximian.com>
12311
12312         * class.h (MonoGenericInst): Added `MonoType *parent' and
12313         `MonoType **ifaces'.
12314
12315         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12316         `parent' and `interfaces'.
12317
12318         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12319         `MonoType *' argument and return a `MonoType *'.
12320
12321         * icall.c
12322         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12323         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12324
12325 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12326
12327         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12328         valuetype marshalling.
12329
12330 2004-02-06  Martin Baulig  <martin@ximian.com>
12331
12332         * class.c
12333         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12334         (my_mono_class_from_generic_parameter): Likewise.
12335
12336 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12337
12338         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12339         contents of the symbol files lazily.
12340
12341         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12342
12343         * threads.h threads.c icall.c: New icalls for getting and setting the
12344         threads name.
12345
12346 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12347
12348         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12349         Raise an exception when the domain is not found.
12350
12351 2004-02-03  Martin Baulig  <martin@ximian.com>
12352
12353         * reflection.c (mono_image_get_methodspec_token): Use the
12354         uninflated signature; fixes gen-33.
12355
12356 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12357
12358         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12359         the finalizer code can use thread functionality.
12360
12361         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12362         the finalizer thread.
12363
12364         * threads.c: Make some functions more robust.
12365
12366         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12367
12368         * metadata.h: Add new marshalling conventions.
12369
12370         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12371         stringbuilder marshalling. Fixes #53700.
12372
12373         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12374
12375         * reflection.c (mono_image_get_type_info): Save declarative security
12376         info.
12377
12378         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12379         unmanaged fields as well.
12380
12381         * appdomain.c: Bump corlib version.
12382
12383 2004-02-01  Martin Baulig  <martin@ximian.com>
12384
12385         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12386         method type arguments.  
12387
12388 2004-01-30  Duncan Mak  <duncan@ximian.com>
12389
12390         * marshal.h: Add prototype for
12391         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12392         and
12393         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12394         fix the build.
12395
12396 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12397
12398         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12399         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12400
12401 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12402
12403         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12404         custom marshalling of valuetypes.
12405
12406         * marshal.c: Fix some warnings.
12407
12408 2004-01-29  Martin Baulig  <martin@ximian.com>
12409
12410         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12411         for generic method parameters.
12412
12413         * reflection.c (method_encode_methodspec): Write the uninflated
12414         signature into the methodspec table.
12415         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12416         is always the uninflated method.
12417         (reflection_methodbuilder_to_mono_method): Copy the generic
12418         parameters from the MethodBuilder into `header->gen_params'.
12419
12420 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12421
12422         * class.c (mono_class_from_generic_parameter): Fix warning.
12423
12424 2004-01-27  Martin Baulig  <martin@ximian.com>
12425
12426         * class.c (mono_class_from_generic_parameter): Don't create
12427         `klass->methods' here.  
12428
12429 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12430
12431         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12432         extension since it does not work with libraries named lib<FOO>.dll.so.
12433
12434 2004-01-25  Martin Baulig  <martin@ximian.com>
12435
12436         * class.c (mono_class_inflate_generic_type): Added support for
12437         MONO_TYPE_GENERICINST.
12438
12439         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12440         inflate methods on open constructed types.      
12441
12442 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12443
12444         * object.c: fire ProcessExit event in the root AppDomain after running
12445         Main. Fixes bug #53299.
12446
12447 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12448
12449         * socket-io.c: include the new socket-wrappers.h header.
12450         Use the wrappers instead of the unix socket functions to make the code
12451         more clear.
12452
12453 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12454
12455         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12456
12457         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12458         Fixes #22532.
12459
12460 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12461
12462         * reflection.c (mono_image_create_pefile): Handle the case when the
12463         entry point is not a MethodBuilder.
12464
12465         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12466         field to ReflectionMethod since it is not allways a builder.
12467
12468         * reflection.c (type_get_fully_qualified_name): New helper function to
12469         return the fully qualified name of a type.
12470
12471         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12472         type name for custom marshallers.
12473
12474         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12475
12476         * class.c (mono_class_setup_vtable): If a parent class already 
12477         implements an interface, use the implementing methods from that class.
12478         Fixes #53148.
12479
12480 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12481
12482         * threadpool.c: just return instead of ExitThread to allow for thread
12483         clean up earlier.
12484
12485 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12486
12487         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12488         when closing resource modules.
12489
12490         * reflection.c (mono_image_create_pefile): Handle the case when the
12491         entry point is not a MethodBuilder.
12492
12493         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12494         field to ReflectionMethod since it is not allways a builder.
12495
12496 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12497
12498         * marshal.c (mono_marshal_get_managed_wrapper): 
12499         mono_marshal_alloc takes native int so CONV_I
12500         the arg for 64bits.
12501
12502 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12503
12504         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12505         tokens in the cattr table. Fixes #53108.
12506
12507 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12508
12509         * loader.c: don't trim ".dll" before looking up in the config file.
12510         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12511
12512 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12513
12514         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12515         Return the module which contains the resource as well.
12516         (ves_icall_System_Reflection_Module_Close): New icall.
12517
12518         * appdomain.c: Bump corlib version number.
12519
12520         * image.c (mono_image_addref): New public function.
12521
12522         * assembly.c: Call mono_image_addref.
12523
12524         * reflection.c (mono_module_get_object): Increase reference count of 
12525         the image.
12526
12527         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12528         Fixes #22532.
12529
12530         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12531         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12532         proper exceptions on DllImport problems.
12533
12534 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12535
12536         * class.c, metadata.c: eliminate CSIZE macro.
12537
12538 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12539
12540         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12541         * object.h: Added async_callback field in MonoAsyncResult.
12542         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12543         * verify.c: Added async_callback in MonoAsyncResult layout.
12544
12545 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12546
12547         * reflection.c (mono_reflection_get_custom_attrs): Add support
12548         for Modules.
12549
12550 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12551
12552         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12553         marshalling.
12554         (mono_marshal_method_from_wrapper): Add null pointer check.
12555
12556 2004-01-16  Martin Baulig  <martin@ximian.com>
12557
12558         * debug-mono-symfile.h: Set version number to 36 and reflect
12559         latest symbol writer changes.
12560
12561 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12562
12563         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12564         multi-dimensional arrays.
12565         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12566         (mono_class_from_mono_type): Use bounded_array_class_get.
12567         
12568         * class.c (mono_bounded_array_class_get): New function which takes
12569         a 'bounded' bool argument to distinguish vectors from one dimensional
12570         arrays.
12571
12572         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12573         bounded_array_class_get if the array has bounds.
12574
12575         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12576         Search modules loaded using AssemblyBuilder:AddModule as well.
12577
12578 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12579
12580         * appdomain.c: increased corlib version.
12581         * filewatcher.c: removed g_print.
12582         * icall.c:
12583         (get_property_info): only allocate what is actually requested.
12584         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12585
12586 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12587
12588         * Makefile.am: added filewatcher.[ch]
12589         * filewatcher.[ch]: FileSystemWatcher runtime support.
12590         * icall.c: added new FSW icalls.
12591
12592 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12593
12594         * string-icalls.c: fix stringbuilder regression as suggested by
12595         Iain McCoy <iain@mccoy.id.au>.
12596
12597 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12598
12599         * process.c (process_read_stringtable_block): Recognize '007f' as
12600         a language neutral stringtable block.
12601
12602 2004-01-12  Patrik Torstensson
12603
12604         * object.h (MonoStringBuilder) : Changed layout to support our
12605         new stringbuilder class.
12606         * marshal.c: Change marshalling to support the new layout of 
12607         string builder.
12608         * appdomain.c: increased version number because new layout of
12609         string builder.
12610
12611 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12612
12613         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12614         assembly name as an string instead of an AssemblyName, since it is
12615         easier to extract info from it.
12616
12617         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12618         the culture subdirectories too. Fixes #52231.
12619
12620 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12621
12622         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12623         It takes 2 new parameters with an optional name for the method to look
12624         for and case ignoring info.
12625
12626         * threadpool.c: removed unused variable.
12627
12628 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12629
12630         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12631         It takes 2 new parameters with an optional name for the property to look
12632         for and case ignoring info.
12633         Fixes bug #52753.
12634
12635 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12636
12637         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12638         Fix #52451.
12639
12640 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12641
12642         * appdomain.c:
12643         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12644         Fixes bug #52630.
12645
12646 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12647
12648         * reflection.c: Add support for more than one unmanaged resource.
12649
12650         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12651         in field->def_value, as done in all other cases.
12652
12653         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12654         TypeBuilders.
12655
12656         * reflection.c (mono_reflection_create_runtime_class): Remove 
12657         errorneous assignment to klass->element_class, since it is already
12658         done in mono_reflection_setup_internal_class.
12659
12660 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12661
12662         * gc.c: added missing LeaveCriticalSection.
12663         * icall.c: indented a couple of lines.
12664         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12665         if we call EndInvoke inside a callback. Fixes bug #52601.
12666
12667 2004-01-07  Martin Baulig  <martin@ximian.com>
12668
12669         * mono-debug-debugger.h
12670         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12671
12672 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12673
12674         * appdomain.c: Use messages in NotImplementedException.
12675
12676         * exception.c (mono_get_exception_not_implemented): Now this takes
12677         a message argument.
12678
12679         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12680         exception instead of g_asserting an aborting when something is not
12681         implemented.
12682
12683         Add some inline docs.
12684
12685 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12686
12687         * reflection.h: Update after changes to object layout.
12688
12689         * reflection.c: Implement saving of unmanaged aka win32 resources.
12690
12691         * appdomain.c: Bump version number.
12692
12693         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12694         Handle missing domains gracefully.
12695
12696 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12697
12698         * file-io.c : On Windows, there are much more invalid_path_chars.
12699
12700 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12701
12702         * class.h, object.c: prepare for GetType () speedup.
12703
12704 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12705
12706         * profiler.c: workaround for --profile null reference exception on
12707           cygwin. Patch by Patrik Torstensson.
12708
12709 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12710
12711         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12712         make work for unaligned access.
12713
12714 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12715
12716         * class.c: small cleanup (class->fields [i] -> field).
12717         * image.c: check address of metadata is valid.
12718
12719 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12720
12721         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12722         search the list of loaded assemblies.
12723
12724         * reflection.c (mono_reflection_type_from_name): Use 
12725         mono_assembly_loaded instead of mono_image_loaded.
12726
12727         * reflection.c: Fix warnings.
12728
12729 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12730
12731         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12732         is dynamic. This is needed since an assembly can contain both dynamic and
12733         non-dynamic images.
12734
12735         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12736         assembly->dynamic.
12737
12738         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12739
12740         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12741         to store modules loaded using AddModule.
12742
12743         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12744         on Modules.
12745
12746         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12747
12748         * reflection.c (mono_image_fill_export_table_from_module): New function to
12749         fill out the EXPORTEDTYPES table from a module.
12750
12751         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12752         into a separate function. Also handle loaded non-dynamic modules.
12753
12754         * reflection.c (mono_image_basic_init): Fix memory allocation.
12755
12756         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12757
12758         * assembly.c (mono_assembly_load_references): Make this public.
12759
12760 2003-12-19  Martin Baulig  <martin@ximian.com>
12761
12762         * class.c (mono_class_initialize_generic): Made this static, take
12763         a `MonoGenericInst *' instead of a `MonoClass *'.
12764         (mono_class_from_generic): Call mono_class_initialize_generic()
12765         unless we're already initialized or being called from
12766         do_mono_metadata_parse_generic_inst().
12767
12768         * class.h (MonoGenericInst): Added `initialized' and
12769         `init_pending' flags.
12770
12771         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12772         `mono_class_init (gklass)' or mono_class_initialize_generic()
12773         here; set `generic_inst->init_pending' while parsing the
12774         `type_argv'.
12775
12776 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12777
12778         * locales.c: include string.h for memxxx prototypes
12779
12780 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12781
12782         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12783         constructor when accessing literal fields.
12784
12785 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12786
12787         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12788
12789         * reflection.c (assembly_add_resource_manifest): New function to fill
12790         the MANIFESTRESOURCE table.
12791
12792         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12793
12794         * reflection.h: Update to changes in class layout.
12795
12796         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12797         Reenable call to mono_runtime_is_shutting_down ().
12798
12799         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12800         determine if the runtime is shutting down.
12801
12802 2003-12-16  Jackson Harper <jackson@ximian.com>
12803
12804         * icall.c: comment out call to mono_runtime_is_shutting_down to
12805         fix build.
12806         
12807 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12808
12809         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12810         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12811
12812 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12813
12814         * reflection.c: move definition of swap_with_size
12815         to before its first call
12816
12817 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12818
12819         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12820
12821         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12822         icall.
12823
12824         * object.c: Fix warnings.
12825
12826         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12827         members if FlattenHierarchy is set.
12828
12829         * reflection.c (mono_image_add_decl_security): New function to emit
12830         declarative security.
12831
12832         * reflection.h reflection.c: Add support for declarative security.
12833
12834         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12835         
12836 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12837
12838         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12839         
12840         * appdomain.c verify.c: Moved corlib version checking into its own
12841         function in appdomain.c since it needs to create vtables etc.
12842
12843 2003-12-13  Patrik Torstensson <p@rxc.se>
12844
12845         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12846         instead of unwrapped server.
12847
12848 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12849
12850         * verify.c (check_corlib): Fix field index.
12851
12852 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12853
12854         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12855         GetGacPath icall.
12856
12857 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12858
12859         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12860         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12861         cope with sizeof(size_t) != sizeof(guint32).
12862
12863 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12864
12865         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12866         in case of failure.
12867
12868 2003-12-10  Mark Crichton <crichton@gimp.org>
12869
12870         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12871         in managed code.
12872
12873         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12874
12875 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12876
12877         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12878         marked as deleted.
12879
12880 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12881
12882         * verify.c (check_corlib): Handle the case when the version field is 
12883         initialized by a static constructor.
12884
12885 2003-12-08  Patrik Torstensson  <p@rxc.se>
12886
12887     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12888
12889 2003-12-08  Martin Baulig  <martin@ximian.com>
12890
12891         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12892         a MonoReflectionGenericParameter, also take the parameter index
12893         and name as arguments.
12894         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12895         (ves_icall_MonoGenericParam_initialize): New interncall.
12896         (ves_icall_Type_make_byref_type): New interncall.
12897
12898         * reflection.h (MonoReflectionGenericParam): Derive from
12899         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12900         `index' fields.
12901
12902         * reflection.c (mono_reflection_define_generic_parameter): Create
12903         and return a new MonoReflectionGenericParam; don't initialize the
12904         constraints here.
12905         (mono_reflection_initialize_generic_parameter): New public method;
12906         initializes the constraints and creates the `param->pklass'.
12907
12908 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12909
12910         * reflection.h reflection.c: Use the new fields 'num_types', 
12911         'num_fields' and 'num_methods' to track the number of types etc.
12912
12913         * verify.c (check_corlib): Check corlib version number.
12914
12915 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12916
12917         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12918         function works on all methods.
12919
12920 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12921
12922         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12923         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12924         the custom_type_info flag of the transparent proxy.
12925         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12926         objects that supports IRemotingTypeInfo.
12927         * object.h: Added custom_type_info field in transparent proxy.
12928
12929 2003-12-06  Martin Baulig  <martin@ximian.com>
12930
12931         * class.c (mono_class_create_from_generic): Removed.
12932         (mono_class_from_generic): Check `ginst->klass' before doing
12933         anything else.  This is important to fully support "recursive"
12934         generic types.
12935
12936         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12937         empty `generic_inst->klass' before doing anything else.
12938
12939 2003-12-06  Dick Porter  <dick@ximian.com>
12940
12941         * verify.c: 
12942         * object.h:
12943         * icall.c:
12944         * locales.c: Use C structs to access class fields.  Don't do a
12945         conversion between MonoString and UChar because both are
12946         platform-endian UTF-16.  Compare now takes startindex and count
12947         parameters.  Add a char overload for IndexOf.  Speed up the
12948         invariant string IndexOf.
12949
12950 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12951
12952         * Makefile.am (monosn_LDADD): Fix parallel build.
12953
12954 2003-12-04  Martin Baulig  <martin@ximian.com>
12955
12956         * icall.c
12957         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12958         (ves_icall_Type_make_array_type): New interncall.       
12959
12960 2003-12-04  Martin Baulig  <martin@ximian.com>
12961
12962         * locales.c: also change it in the !HAVE_ICU case.
12963
12964 2003-12-04  Dick Porter  <dick@ximian.com>
12965
12966         * icall.c:
12967         * locales.c: construct_compareinfo is now in CompareInfo, not
12968         CultureInfo.
12969
12970 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
12971
12972         * image.c (mono_image_load_file_for_image): Cache loaded images in the
12973         image->files array.
12974
12975         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
12976         table as well.
12977
12978         * assembly.c (mono_assembly_load_references): Only load references
12979         once.
12980
12981         * class.c (mono_class_from_name): Avoid linear search of the 
12982         EXPORTEDTYPE table.
12983
12984         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
12985
12986 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
12987
12988         * image.h (MonoImage): Add 'field_cache' field.
12989
12990         * loader.c (mono_field_from_token): Cache field lookups.
12991         
12992         * reflection.c (mono_module_get_object): Fix name property.
12993
12994         * icall.c (ves_icall_get_enum_info): Update after changes to 
12995         mono_metadata_get_constant_index ().
12996
12997         * icall.c: Get rid of get_type_info icall, use a separate icall for
12998         each type property to avoid needless memory allocations. Fixes #51514.
12999
13000         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13001         to avoid needless binary searches.
13002
13003         * class.c (class_compute_field_layout): Move the initialization of
13004         field->def_value to mono_class_vtable ().
13005
13006         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13007         non-corlib types.
13008
13009         * object.c (mono_object_allocate): Make it inline.
13010
13011         * object.c (mono_object_allocate_spec): Make it inline.
13012         
13013 2003-12-02  Dick Porter  <dick@ximian.com>
13014
13015         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13016         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13017
13018 2003-12-01  Dick Porter  <dick@ximian.com>
13019
13020         * threads.c: Fix signature and call in CreateMutex and
13021         CreateEvent.
13022
13023 2003-12-01  Dick Porter  <dick@ximian.com>
13024
13025         * icall.c: 
13026         * locales.c: Implement string compares and searching
13027
13028         * object.h: Add extra Thread field
13029
13030 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13031
13032         * reflection.c (fixup_method): Add support for MonoCMethod.
13033
13034 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13035
13036         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13037
13038         * reflection.c (assembly_name_to_aname): Allow extra characters in
13039         assembly names. Fixes #51468.
13040
13041 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13042
13043         * exception.c (mono_exception_from_name_domain): New helper function.
13044
13045         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13046         exception object in the correct domain.
13047
13048         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13049         formatting + make a copy a the input data.
13050
13051         * loader.c (mono_get_method_from_token): Methods which contain
13052         native code do not have entries in the ImplMap.
13053
13054         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13055         Thanks to Gonzalo for spotting this.
13056         
13057         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13058         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13059
13060         * assembly.h (mono_assembly_load_from): Split the second part of 
13061         assembly loading into a new public function.
13062
13063         * exception.h (mono_get_exception_bad_image_format): New function.
13064
13065 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13066
13067         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13068         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13069         
13070         * icall.c: Add new icall for creating dynamic methods.
13071
13072         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13073
13074         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13075
13076         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13077         create a dynamic method.
13078
13079         * reflection.c (resolve_object): New helper function.
13080
13081         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13082         which manipulate it so they can also work on dynamic methods.
13083
13084         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13085         creating the MonoReflectionMethodAux structure if it is not needed.
13086         
13087         * reflection.h verify.c: Update after changes to object layout.
13088
13089         * reflection.c (method_builder_encode_signature): Fix compilation on
13090         gcc 2.95.x.
13091
13092 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13093
13094         * appdomain.h: Added support for context static fields. Added static_data
13095           field to MonoAppContext and renamed thread_static_fields to a more
13096           generic special_static_fields in MonoAppDomain, since it can now contain
13097           context static fields.
13098         * domain.c: Updated hashtable name.
13099         * object.c: Replaced field_is_thread_static() for a more generic
13100           field_is_special_static() which also checks for context static attribute.
13101           In mono_class_vtable(), added support for static context fields.
13102         * threads.c: Changed methods that manage thread static fields to more
13103           generic methods so they can be reused both for thread and context static
13104           data.
13105         * threads.h: Declared some new methods.
13106
13107 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * reflection.h: Update after changes to the managed types.
13110
13111         * reflection.c (encode_custom_modifiers): New helper function.
13112
13113         * reflection.c (method_encode_signature): Emit custom modifiers.
13114
13115         * reflection.c (field_encode_signature): Emit custom modifiers.
13116
13117 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13118
13119         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13120
13121         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13122         implementation.
13123
13124         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13125         icall.
13126
13127         * object.c (mono_field_get_value_object): New function.
13128
13129         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13130         specific.
13131
13132 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13133
13134         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13135         return a preallocated out-of-memory exception instance.
13136
13137         * object.c (out_of_memory): Use the new function.
13138
13139         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13140         flag is before the custom modifiers. Fixes #49802.
13141
13142 2003-11-16  Martin Baulig  <martin@ximian.com>
13143
13144         * class.c (mono_class_is_open_constructed_type): Implemented the
13145         MONO_TYPE_GENERICINST case.
13146
13147 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13148
13149         * assembly.c (mono_assembly_fill_assembly_name): New function to
13150         fill out the MonoAssemblyName structure.
13151         (mono_assembly_open): Use the new function.
13152
13153         * icall.c (fill_reflection_assembly_name): New helper function.
13154
13155         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13156         new function.
13157
13158         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13159
13160 2003-11-15  Martin Baulig  <martin@ximian.com>
13161
13162         * class.c (mono_class_is_open_constructed_type): New public
13163         function; checks whether a type is an open constructed type,
13164         ie. whether it still contains type parameters.
13165         (mono_class_inflate_generic_type): If we're a type parameter and
13166         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13167         type.
13168
13169         * class.h (MonoGenericInst): Added `guint32 is_open'.
13170
13171         * loader.c (method_from_methodspec): Check whether we're an open
13172         or closed constructed type and set `ginst->is_open'.
13173
13174         * reflection.c (mono_reflection_bind_generic_parameters): Check
13175         whether we're an open or closed constructed type and set
13176         `ginst->is_open'.
13177         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13178         from open constructed types.
13179
13180 2003-11-15  Martin Baulig  <martin@ximian.com>
13181
13182         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13183         a generic instance (instead of a generic type declaration) with
13184         unbound generic parameters, bind them to our actual types.
13185
13186 2003-11-14  Martin Baulig  <martin@ximian.com>
13187
13188         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13189
13190         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13191         an interface type, populate `res->interfaces' with instantiated
13192         versions of all the interfaces we inherit.
13193
13194 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13195
13196         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13197         when MONO_PATH is set but doesn't contain the install dir.
13198
13199 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13200
13201         * icall.c:
13202         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13203         it's also implemented in base classes. Fixes bug #50927.
13204
13205 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13206
13207         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13208         if this method is called from a finalizer. Fixes #50913.
13209
13210 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13211
13212         * threads.c: Implement VolatileRead/VolatileWrite
13213
13214         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13215
13216 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13217
13218         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13219         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13220         2.95.3.
13221
13222         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13223         from Peter Ross (pro@missioncriticalit.com).
13224         
13225 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13226
13227         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13228
13229 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13230
13231         * assembly.c (mono_assembly_load_references): Disable check because it
13232         triggers on older corlibs which lots of people have.
13233
13234 2003-11-12  Jackson Harper  <jackson@ximian.com>
13235
13236         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13237         load corlib.dll if mscorlib.dll is not found.
13238         * assembly.h: Remove corlib name define.
13239         * class.c:
13240         * domain.c:
13241         * image.c: Change corlib name to mscorlib.
13242         
13243 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13244
13245         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13246
13247 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13248
13249         * appdomain.h: Added loader_optimization here to sync with the C#
13250         code, and add disallow_binding_redirects field.
13251
13252 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13253
13254         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13255
13256         * reflection.c (mono_image_build_metadata): Fix crash on modules
13257         with no types.
13258
13259         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13260
13261         * icall.c (ves_icall_get_method_info): Return callingConvention as
13262         well.
13263
13264         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13265         namespaces from the EXPORTEDTYPE table as well.
13266
13267         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13268         from all modules inside the assembly.
13269         
13270 2003-11-11  Martin Baulig  <martin@ximian.com>
13271
13272         * reflection.c (mono_reflection_bind_generic_parameters): Make
13273         this work for interfaces.
13274
13275 2003-11-11  Martin Baulig  <martin@ximian.com>
13276
13277         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13278
13279 2003-11-11  Martin Baulig  <martin@ximian.com>
13280
13281         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13282         "MonoInflatedMethod" and "MonoInflatedCtor".
13283
13284 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13285
13286         * reflection.c (resolution_scope_from_image): Use the assembly table
13287         from the manifest module, since other modules don't have it.
13288
13289         * debug-helpers.c (mono_type_full_name): New helper function.
13290
13291         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13292
13293         * image.c (mono_image_load_file_for_image): New public function which
13294         is a replacement for the load_file_for_image in class.c.
13295
13296         * assembly.c (mono_assembly_load_module): A wrapper for the function
13297         above which does assembly association and reference loading too.
13298
13299         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13300
13301 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13302
13303         * appdomain.c: not all of the attributes for the full assembly name
13304         are required and the order doesn't matter. Fixes bug #50787.
13305
13306 2003-11-10  Dick Porter  <dick@ximian.com>
13307
13308         * locales.c: Use platform-endian UTF16
13309
13310 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13311
13312         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13313         
13314 2003-11-10  Martin Baulig  <martin@ximian.com>
13315
13316         * metadata.c
13317         (mono_metadata_load_generic_params): Make this actually work.
13318
13319         * reflection.c (mono_reflection_bind_generic_parameters): If our
13320         parent is a generic instance, pass all the `types' to it, no
13321         matter whether it has the same number of type parameters or not.
13322
13323 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13324
13325         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13326
13327         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13328         assignment code to this function so it gets called recursively for all
13329         modules.
13330
13331         * image.c (load_modules): Remove the assembly assignment since it is
13332         now done by mono_assembly_load_references.
13333         
13334         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13335         Add 'module' argument.
13336         (mono_module_get_types): New helper function.
13337         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13338
13339 2003-11-08  Martin Baulig  <martin@ximian.com>
13340
13341         * class.c (mono_class_inflate_generic_method): Interface method
13342         don't have a header.
13343
13344         * reflection.c (mono_image_get_methodspec_token): Take an
13345         additional `MonoGenericInst *' argument instead of reading it from
13346         the header; this is necessary to support interfaces.
13347         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13348         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13349         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13350         argument.
13351
13352         * reflection.h (MonoReflectionInflatedMethod): Added
13353         `MonoGenericInst *ginst'.
13354
13355 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13356
13357         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13358
13359 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13360
13361         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13362
13363 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13364
13365         * reflection.c 
13366         (reflection_methodbuilder_from_method_builder):
13367         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13368         initialize a ReflectionMethodBuilder structure.
13369         (mono_image_get_methodbuilder_token):
13370         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13371         tokens which point to types in another module inside the same assembly.
13372
13373         * reflection.c: Use the new helper functions.
13374         
13375         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13376
13377         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13378         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13379
13380         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13381         neccesary.
13382
13383         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13384         current module. Emit the manifest only for the main module.
13385
13386         * reflection.c (mono_image_create_token): Add assertion when a 
13387         memberref needs to be created.
13388
13389         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13390
13391         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13392         larger buffer for the custom attribute blob. Fixes #50637.
13393         
13394 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13395
13396         * threadpool.c: notify listener on async processing handles after
13397         invoking the async callback. Thanks to Zoltan.
13398
13399 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13400
13401         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13402         avoid code duplication.
13403
13404         * reflection.h (MonoDynamicImage): New type which is currently unused,
13405         but will be used through the ref.emit code in place of 
13406         MonoDynamicAssembly.
13407
13408         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13409         object layout.
13410
13411         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13412         a MonoDynamicImage instead of just a MonoImage.
13413         
13414         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13415         icalls to ModuleBuilder but keep their semantics, so they will work
13416         with moduleb->assemblyb. This will change later.
13417         
13418 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13419
13420         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13421         object layout.
13422
13423         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13424         main module, since it is now done by the managed code.
13425
13426 2003-11-03  Martin Baulig  <martin@ximian.com>
13427
13428         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13429         `ginst->klass' here.
13430         (method_encode_methodspec): Don't use the `ginst->generic_method's
13431         klass if it's a generic instance, use `ginst->klass' in this case.
13432
13433 2003-11-03  Martin Baulig  <martin@ximian.com>
13434
13435         * reflection.c (mono_image_get_generic_method_param_info):
13436         Removed, use mono_image_get_generic_param_info() instead.
13437         (mono_image_get_type_info): Write the GenericParam table before
13438         the Method table.  This is neccessary because in the GenericParam
13439         table, type parameters of the class (ie. '!0' etc.) must come
13440         before the ones from its generic methods (ie. '!!0' etc).
13441
13442 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13443
13444         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13445
13446 2003-11-02  Martin Baulig  <martin@ximian.com>
13447
13448         * reflection.c (create_generic_typespec): Take a
13449         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13450         the generic parameters from it.
13451
13452 2003-11-02  Martin Baulig  <martin@ximian.com>
13453
13454         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13455         instead of a `MonoClassField *' since we just need the type.
13456         (create_generic_typespec): New static function.  Creates a
13457         TypeSpec token for a generic type declaration.
13458         (mono_image_get_generic_field_token): New static function.
13459         (mono_image_create_token): If we're a FieldBuilder in a generic
13460         type declaration, call mono_image_get_generic_field_token() to get
13461         the token.
13462
13463 2003-11-02  Martin Baulig  <martin@ximian.com>
13464
13465         * reflection.h
13466         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13467         `MonoReflectionGenericInst *declaring_type' and
13468         `MonoReflectionGenericInst *reflected_type' fields.
13469
13470         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13471         `MonoReflectionGenericInst *declaring_type' and a
13472         `MonoReflectionGenericInst *reflected_type' argument instead of a
13473         single `MonoReflectionGenericInst *type' one.  Set
13474         `res->declaring_type' and `res->reflected_type' from them.
13475         (mono_reflection_inflate_field): Likewise.      
13476
13477 2003-11-02  Martin Baulig  <martin@ximian.com>
13478
13479         * class.c (mono_class_setup_vtable): Don't store generic methods
13480         in the vtable.  
13481
13482 2003-11-02  Martin Baulig  <martin@ximian.com>
13483
13484         * reflection.h (MonoReflectionGenericInst): Added
13485         `MonoReflectionType *declaring_type'.
13486
13487         * reflection.c (mono_reflection_bind_generic_parameters): Use
13488         `if (tb->parent)' instead of `klass->parent'.
13489
13490 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13491
13492         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13493         with an empty ASSEMBLY table.
13494
13495         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13496         variable in the inner and outer loops.
13497
13498 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13499
13500         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13501         argument.
13502
13503         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13504         
13505         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13506         icalls. Instead, do everything in managed code. This is needed since
13507         it is hard to restore the original domain etc. in unmanaged code in the
13508         presence of undeniable exceptions.
13509
13510         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13511         New icalls to push and pop appdomain refs.
13512
13513 2003-10-31  Martin Baulig  <martin@ximian.com>
13514
13515         * class.c (inflate_generic_type): Renamed to
13516         mono_class_inflate_generic_type() and made it public.
13517
13518         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13519         New interncall.
13520
13521         * loader.c (mono_field_from_memberref): Also set the retklass for
13522         typespecs.
13523
13524         * fielder.c (mono_image_get_inflated_field_token): New static
13525         method; creates a metadata token for an inflated field.
13526         (mono_image_create_token, fixup_method): Added support for
13527         "MonoInflatedField".
13528         (fieldbuilder_to_mono_class_field): New static function.
13529         (mono_reflection_inflate_field): New public function.
13530
13531         * reflection.h
13532         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13533         (MonoReflectionInflatedField): New typedef.     
13534
13535 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13536
13537         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13538         for Solaris and other platforms without s6_addr16
13539
13540 2003-10-30  Martin Baulig  <martin@ximian.com>
13541
13542         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13543         argument instead of two.
13544         (mono_class_inflate_generic_signature): Likewise.
13545         (inflate_generic_header): Likewise.
13546         (mono_class_inflate_generic_method): Likewise.  In addition, if
13547         `ginst->klass' is set, it becomes the new `method->klass'.
13548
13549         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13550         field.
13551
13552         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13553         first byte. [FIXME]
13554         (method_encode_methodspec): If we have generic parameters, create
13555         a MethodSpec instead of a MethodRef.
13556         (fixup_method): Added support for "MonoInflatedMethod" and
13557         "MonoInflatedCtor".
13558         (mono_image_create_token): Added support for "MonoInflatedMethod"
13559         and "MonoInflatedCtor".
13560         (inflated_method_get_object): New static function; returns a
13561         managed "System.Reflection.MonoInflatedMethod" object.
13562         (mono_reflection_bind_generic_method_parameters): Return a
13563         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13564         (mono_reflection_inflate_method_or_ctor): Likewise.
13565         (mono_image_get_generic_method_param_info): Initialize unused
13566         fields to zero.
13567         (mono_image_get_generic_param_info): Likewise.
13568
13569         * reflection.h (MonoReflectionInflatedMethod): New public
13570         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13571         "S.R.MonoInflatedCtor" classes.
13572
13573         * loader.c (method_from_memberref): If we're a TypeSpec and it
13574         resolves to a generic instance, inflate the method.
13575
13576 2003-10-28  Dick Porter  <dick@ximian.com>
13577
13578         * object.c (mono_runtime_run_main): Convert command-line arguments
13579         into utf8, falling back to the user's locale encoding to do so.
13580
13581 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13582
13583         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13584         at this time.
13585
13586         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13587
13588         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13589         up icalls at method definition time. Partially fixes #33569.
13590
13591 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13592
13593         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13594         marshalling of arrays. Fixes #50116.
13595
13596         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13597
13598         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13599         points to a vtable in the dying appdomain.
13600
13601         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13602         listeners into unmanaged code inside the lock.
13603
13604         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13605         domains and add some comments.
13606
13607 2003-10-25  Martin Baulig  <martin@ximian.com>
13608
13609         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13610
13611         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13612
13613         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13614         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13615         currently parsing.  Create the generic class and store it in
13616         `generic_inst->klass' before parsing the type arguments.  This is
13617         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13618         for an example.
13619         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13620         to support recursive typespec entries.
13621
13622         * class.c (mono_class_setup_parent): If our parent is a generic
13623         instance, we may get called before it has its name set.
13624         (mono_class_from_generic): Splitted into
13625         mono_class_create_from_generic() and mono_class_initialize_generic().
13626
13627 2003-10-25  Martin Baulig  <martin@ximian.com>
13628
13629         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13630         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13631         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13632         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13633
13634         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13635         (create_typespec): Likewise.
13636         (mono_reflection_bind_generic_parameters): Return a
13637         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13638         (mono_reflection_inflate_method_or_ctor): New public function.
13639
13640         * reflection.h (MonoReflectionGenericInst): New typedef.        
13641
13642 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13643
13644         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13645         inside the domain lock. Fixes #49993.
13646         
13647         * object.c (mono_class_vtable): When typed allocation is used, 
13648         allocate vtables in the GC heap instead of in the mempool, since the
13649         vtables contain GC descriptors which are used by the collector even
13650         after the domain owning the mempool is unloaded.
13651
13652         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13653
13654         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13655         reflect what it does. Also invalidate mempools instead of freeing
13656         them if a define is set.
13657
13658         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13659         of the appdomain.
13660         
13661         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13662         hold the finalizable objects in this domain.
13663
13664         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13665         appdomain.
13666
13667         * appdomain.c (mono_domain_set): New function to set the current
13668         appdomain, but only if it is not being unloaded.
13669
13670         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13671         appdomain which is being unloaded.
13672         
13673         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13674         unloading of the root appdomain.
13675
13676         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13677         icall to execute a method in another appdomain. Intended as a 
13678         replacement for InternalSetDomain, which can confuse the code 
13679         generation in the JIT.
13680
13681         * appdomain.c (mono_domain_is_unloading): New function to determine
13682         whenever an appdomain is unloading.
13683
13684         * appdomain.c (mono_domain_unload): New function to correctly unload
13685         an appdomain.
13686
13687         * assembly.c (mono_assembly_load_references): Check that an assembly
13688         does not references itself.
13689
13690         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13691         domain manually, it asks the finalizer thread to do it, then waits for
13692         the result. Also added a timeout.
13693
13694         * icall.c: Register the new icalls.
13695
13696         * threads.h threads.c: Export the mono_gc_stop_world and 
13697         mono_gc_start_world functions.
13698         
13699         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13700         function to fill out the mempool with 0x2a.
13701
13702 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13703
13704         * reflection.h (MonoReflectionMethodAux): New structure to store
13705         information which is rarely used, thus is not in the MonoMethod
13706         structure.
13707
13708         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13709         store the aux info.
13710
13711         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13712         and marshalling info into the aux structure.
13713
13714         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13715         from the aux structure.
13716
13717         * loader.c (mono_method_get_param_names): Retrieve the param names from
13718         the aux structure.
13719         
13720 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13721
13722         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13723         warning.
13724
13725 2003-10-21  Dick Porter  <dick@ximian.com>
13726
13727         * socket-io.c
13728         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13729         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13730
13731 2003-10-21  Martin Baulig  <martin@ximian.com>
13732
13733         * reflection.c (mono_reflection_bind_generic_parameters):
13734         `klass->parent' is NULL for interfaces.
13735
13736 2003-10-21  Martin Baulig  <martin@ximian.com>
13737
13738         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13739
13740 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13741
13742         * exception.c (mono_exception_from_name_msg): New helper function for
13743         creating exceptions and initializing their message field.
13744
13745         * exception.c: Simplify functions using the new helper.
13746
13747         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13748         New function.
13749
13750         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13751         mono_raise_exception, since otherwise gcc doesn't generate the function
13752         epilog for raise_exception, confusing the stack unwinding in the JIT.
13753         Fixes #45043.
13754
13755         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13756         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13757         Fixes #49499.
13758
13759 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13760
13761         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13762         utf8.
13763
13764 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13765
13766         * icall.c: Removed GetUninitializedObject method because
13767           AllocateUninitializedClassInstance does the same.
13768
13769 2003-10-18  Martin Baulig  <martin@ximian.com>
13770
13771         * class.c (inflate_generic_signature): Renamed to
13772         mono_class_inflate_generic_signature() and made it public.
13773         (my_mono_class_from_generic_parameter): New static function; if we
13774         don't already have the generic parameter's MonoClass, create a
13775         very simple one which is just used internally in the runtime and
13776         not passed back to managed code.
13777
13778         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13779
13780         * metadata.h (MonoMethodSignature): Moved the
13781         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13782         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13783
13784         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13785         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13786         interncall on the MonoMethod class, not on MethodInfo.
13787         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13788         calling mono_reflection_bind_generic_method_parameters() directly.
13789
13790         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13791         return the already computed `method->signature'.
13792         (method_from_methodspec): New static function to load a method
13793         from a MethodSpec entry.
13794         (mono_get_method_from_token): Call the new method_from_methodspec()
13795         for MethodSpec tokens.  
13796         (mono_get_method_from_token): If we're a generic method, load the
13797         type parameters.
13798
13799         * reflection.c (mono_image_get_memberref_token): Allow
13800         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13801         table.
13802         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13803         (mono_image_create_token): First check whether it's a generic
13804         method (so we'd need to create a MethodSpec), then do the other
13805         two alternatives.
13806         (mono_reflection_bind_generic_method_parameters): Return a
13807         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13808         called directly from the interncall.
13809
13810 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13811
13812         * reflection.c (load_public_key): Move loading of the public key
13813         into managed code.
13814
13815         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13816
13817         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13818         fields.
13819
13820         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13821         culture, hash_alg and public_key. Fixes #49555.
13822
13823 2003-10-17  Martin Baulig  <martin@ximian.com>
13824
13825         * class.h (MonoGenericInst): Moved this declaration here and added
13826         `MonoMethod *generic_method'.
13827
13828         * icall.c
13829         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13830         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13831
13832         * metadata.c (mono_metadata_type_equal): Two types of
13833         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13834         index; ie. don't compare the address of the `MonoGenericParam'
13835         structure.
13836         (mono_metadata_load_generic_params): Removed the `MonoMethod
13837         *method' argument.
13838
13839         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13840         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13841
13842         * reflection.c (method_encode_signature): Encode the number of
13843         generic parameters.
13844         (encode_generic_method_sig): New static function.
13845         (method_encode_methodspec): New static function; creates an entry
13846         in the MethodSpec table for a generic method.
13847         (mono_image_get_methodspec_token): New static function.
13848         (mono_image_create_token): Call mono_image_get_methodspec_token()
13849         for generic methods.
13850         (mono_reflection_bind_generic_method_parameters): New public
13851         function.  Instantiates a generic method.
13852
13853 2003-10-16  Martin Baulig  <martin@ximian.com>
13854
13855         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13856         *gen_params' here from MonoMethodHeader.
13857
13858         * metadata.c (mono_metadata_parse_method_signature): If we have
13859         generic parameters, initialize `method->gen_params' and then set
13860         the correct `type->data.generic_param' in all the parameters.
13861
13862 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13863
13864         * threads.c (mono_threads_get_default_stacksize): New function to 
13865         return the default stacksize.
13866
13867         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13868         termination of the finalizer thread, since the previous method had
13869         race conditions. Fixes #49628.
13870
13871         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13872         as for the other managed threads.
13873
13874 2003-10-16  Martin Baulig  <martin@ximian.com>
13875
13876         * class.c (inflate_generic_signature): Copy `generic_param_count'
13877         and `gen_params'.
13878
13879         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13880         New interncall.
13881
13882         * metadata.c (mono_metadata_parse_method_signature): Actually set
13883         the `method->generic_param_count' here.
13884         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13885
13886 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13887
13888         * object.h: Add a new field to TypedRef to simplify the implementation
13889         of the REFANY opcodes in the JIT.
13890
13891         * icall.c: Make use of the new field.
13892
13893         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13894         dynamically.
13895
13896 2003-10-15  Martin Baulig  <martin@ximian.com>
13897
13898         * class.c (mono_class_from_gen_param): Renamed to
13899         mono_class_from_generic_parameter() and moved most of the
13900         functionality from mono_reflection_define_generic_parameter()
13901         here; ie. we create a "real" class here.
13902         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13903         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13904         previously been called.
13905
13906         * class.h (MonoGenericParam): Moved the declaration of this struct
13907         here from metadata.h and added `MonoMethod *method'.
13908
13909         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13910         interncall.
13911
13912         * loader.c (mono_get_method_from_token): If we have any generic
13913         parameters, call mono_metadata_load_generic_params() to read them
13914         from the MONO_TABLE_GENERICPAR.
13915
13916         * metadata.c (mono_metadata_load_generic_params): Added
13917         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13918
13919         * metadata.h (MonoMethodSignature): Replaced
13920         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13921         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13922
13923         * reflection.c (mono_reflection_define_generic_parameter): Moved
13924         most of the functionality into the new
13925         mono_class_from_generic_parameter(); set the `method' field if
13926         we're a method parameter.       
13927
13928 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13929
13930         * marshal.c (emit_struct_conv): if native size is 0
13931         emit no code.
13932
13933 2003-10-14  Martin Baulig  <martin@ximian.com>
13934
13935         * icall.c: The generics API has changed in the spec since it was
13936         added to System.Type; these modifications make it match the spec
13937         again.
13938         (ves_icall_Type_GetGenericParameters): Renamed to
13939         `ves_icall_Type_GetGenericArguments'.
13940         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13941         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13942         `ves_icall_MonoType_get_HasGenericArguments'.
13943         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13944         `ves_icall_MonoType_get_IsGenericParameter'.
13945         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13946         this is no interncall anymore.
13947         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13948         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13949
13950 2003-10-14  Martin Baulig  <martin@ximian.com>
13951
13952         * reflection.c (mono_reflection_bind_generic_parameters): Also
13953         inflate generic methods if we're reading the class from IL.
13954
13955 2003-10-13  Martin Baulig  <martin@ximian.com>
13956
13957         * reflection.c (mono_reflection_define_generic_parameter): This
13958         method isn't called directly from the icall anymore; take a
13959         `MonoReflectionAssemblyBuilder *' so we can use this for type and
13960         method generic parameters.
13961         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
13962         (method_builder_encode_signature): Encode generic parameters.
13963         (mono_image_get_method_info): Write generic params to the
13964         MONO_TABLE_GENERICPARAM table.
13965
13966         * reflection.h (MonoReflectionMethodBuilder): Added
13967         `MonoArray *generic_params'.
13968
13969         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
13970
13971         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
13972         wrapper for mono_reflection_define_generic_parameter().
13973         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
13974
13975 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
13976
13977         * marshal.h: Add missing function to fix build.
13978
13979         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
13980         the SetLastError pinvoke attribute.
13981
13982         * marshal.c (mono_marshal_set_last_error): New helper function called
13983         by the generated code.
13984         
13985         * marshal.c (mono_mb_emit_branch): New helper function.
13986
13987         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
13988
13989         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13990         classes as parameters and return values of delegates. Fixes #29256. 
13991
13992 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
13993
13994         * locales.c: use gint32 in non HAVE_ICU case
13995
13996 2003-10-11  Martin Baulig  <martin@ximian.com>
13997
13998         * mono-debug.c (mono_debug_add_method): Added a workaround for
13999         bug #48591.
14000
14001 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14002
14003         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14004         delegates passed to native code must use the STDCALL calling 
14005         convention. Fixes #35987.
14006
14007 2003-10-10  Martin Baulig  <martin@ximian.com>
14008
14009         * class.c (inflate_generic_type): If we're inflating for a generic
14010         type instance (and not for a generic method), return
14011         MONO_TYPE_MVAR unchanged.
14012
14013 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14014
14015         * string-icalls.c: Join ignores null strings in the source array.
14016         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14017         * threads.c: GetAvailableTheads is slightly more accurate.
14018
14019 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14020
14021         * threads.h threads.c : add mono_threads_set_default_stacksize
14022         and pass default to CreateThread calls.
14023
14024 2003-10-09  Dick Porter  <dick@ximian.com>
14025
14026         * icall.c:
14027         * locales.h:
14028         * locales.c: Internal calls for constructing CultureInfo and
14029         related objects from libicu (if its available.)
14030
14031 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14032
14033         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14034
14035 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14036
14037         * threadpool.c: added an argument to async_invoke_thread that is the
14038         item to process, pass the MonoAsyncResult to the thread start function
14039         when creating a new thread. This way we don't need to acquire any lock
14040         when we're creating a new thread. Readded a semaphore for faster
14041         response times (instead of that Sleep i added).
14042
14043 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14044
14045         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14046         get daylight change dates better on Windows, fix handling
14047         of platforms without tm_gmtoff.
14048
14049 2003-10-06  Martin Baulig  <martin@ximian.com>
14050
14051         * class.c (inflate_generic_method): Renamed to
14052         mono_class_inflate_generic_method() and made public.
14053         (mono_class_init): Don't inflate the generic methods here.
14054         (mono_class_from_generic): Added `gboolean inflate_methods'
14055         argument.  Inflate the methods here.
14056
14057         * loader.c (mono_method_get_param_names): Ignore instances of
14058         generic types for the moment.
14059
14060         * reflection.c (fixup_method): Added support for inflated methods.
14061         (mono_image_create_token): Use mono_image_get_methodref_token()
14062         for inflated methods.
14063         (mono_custom_attrs_from_param): Ignore instances of generic types
14064         for the moment.
14065         (mono_reflection_bind_generic_parameters): New public function.
14066         Moved all the functionality from
14067         ves_icall_Type_BindGenericParameters() here and added support for
14068         dynamic types.
14069         (mono_reflection_define_generic_parameter): Initialize
14070         `klass->methods' here.
14071
14072         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14073         functionality into mono_reflection_define_generic_parameter().
14074         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14075         TypeBuilder, return that TypeBuilder.
14076
14077 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14078
14079         * appdomain.c: removed mono_delegate_semaphore.
14080
14081         * threadpool.c:
14082         (mono_thread_pool_add): moved hash table creation inside and the thread 
14083         creation outside of the critical region.
14084         (mono_thread_pool_finish): removed obsolete code.
14085         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14086         continue or exit the thread depending on the queue.
14087
14088 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14089
14090         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14091         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14092         handle more bool marshalling options
14093
14094 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14095
14096         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14097         arrays of structs. Also add a more descriptive error message when
14098         a structure member is marshalled as LPArray.
14099
14100 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14101
14102         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14103         marshalling arrays of complex types. Fixes #29098. Also remove an
14104         usused and incomplete function.
14105
14106 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14107
14108         * gc.c: report heap_size - free_bytes as total memory allocated
14109         (bug#49362).
14110
14111 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14112
14113         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14114         fix timezone handling problems on Windows.
14115         
14116         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14117         asserts when the year is outside the range handled by ms the functions.
14118
14119         * class.c (setup_interface_offsets): If the class is an interface,
14120         fill out its interface_offsets slot.
14121
14122 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14123
14124         * threadpool.c: mark threadpool threads as background.
14125
14126 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14127
14128         * decimal.c - define DECINLINE to nothing if not using GCC
14129
14130 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14131
14132         * assembly.c: More refcount fixes.
14133
14134 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14135
14136         * string-icalls.c: if we're not trimming, return the same string.
14137         When not splitting, don't create a new string.
14138
14139 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14140
14141         * image.c:
14142         (mono_image_open): increment the ref_count inside the critical section.
14143
14144 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14145
14146         * image.c (mono_image_open): Fix reference counting bug.
14147
14148 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14149
14150         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14151         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14152         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14153         mono_lookup_pinvoke_call throws.        
14154
14155 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14156
14157         * reflection.c (mono_reflection_parse_type): Fix #49114.
14158
14159         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14160         temporary workaround for cygwin header problem.
14161
14162         * object.c (mono_object_isinst): Synchronize this with the code
14163         generated by the JIT for casts.
14164
14165 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14166
14167         * reflection.c (encode_type): Fix #38332.
14168
14169 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14170
14171         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14172         the original method from the wrapper method.
14173
14174 2003-09-25  Martin Baulig  <martin@ximian.com>
14175
14176         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14177         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14178         (ves_icall_Type_get_IsGenericInstance): New interncall.
14179
14180 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14181
14182         * object.c: fix cast warning in big endian code.
14183
14184 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14185
14186         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14187         
14188 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14189
14190         * assembly.c: don't call check_env from mono_assembly_load. It's
14191         already done once in mono_assemblies_init and may cause headaches when
14192         multiple threads are loading assemblies.
14193
14194 2003-09-19  Martin Baulig  <martin@ximian.com>
14195
14196         * reflection.c (mono_reflection_define_generic_parameter): Don't
14197         allocate `klass->methods', set `klass->flags' to
14198         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14199
14200 2003-09-18  Martin Baulig  <martin@ximian.com>
14201
14202         * class.c (mono_class_init): Don't create `class->methods' if it's
14203         already initialized.
14204
14205         * metadata.c (mono_metadata_load_generic_params): Make this
14206         actually work.
14207
14208         * reflection.c (mono_reflection_define_generic_parameter): Set
14209         parent class and interfaces from the constraints.
14210
14211         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14212         to keep this struct in sync with the declaration in TypeBuilder.cs.
14213
14214 2003-09-17  Martin Baulig  <martin@ximian.com>
14215
14216         * metadata.h (MonoType): Replaced the data's `int type_param'
14217         field with `MonoGenericParam *generic_param'.
14218         (MonoGenericParam): Added `MonoClass *klass'.
14219
14220         * class.c (mono_class_from_gen_param): Removed the
14221         `MonoImage *image' and `int type_num' arguments.
14222
14223         * metadata.c (mono_metadata_parse_generic_param): New static
14224         method; creates a MonoGenericParam which just contains the index.
14225         (do_mono_metadata_parse_type): Call
14226         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14227         MONO_TYPE_MVAR.
14228
14229         * reflection.c (mono_image_typedef_or_ref): Generic type
14230         parameters may be in the same assembly, but never use a typedef
14231         for them.
14232         (mono_reflection_define_generic_parameter): We're now creating a
14233         "real" class for the type parameter; it's now safe to call
14234         mono_class_from_mono_type() on the class'es type, it'll do the
14235         right thing.
14236
14237 2003-09-16  Martin Baulig  <martin@ximian.com>
14238
14239         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14240         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14241         the `symfile' data structure must be fully initialized before it
14242         gets added to the table.
14243
14244 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14245
14246         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14247
14248         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14249         class init trampolines.
14250
14251 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14252
14253         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14254         to the built-in profiler to turn off time and allocation profiling
14255         respectively.
14256
14257 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14258
14259         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14260         g_direct_equal.
14261
14262         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14263         in human readable form.
14264
14265 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14266
14267         * reflection.c icall.c: Fixed warnings.
14268
14269         * image.c (load_class_names): Use a temporary hash table to hold the
14270         namespaces in order to avoid doing many string comparisons.
14271
14272         * image.h: Fix typo.
14273
14274         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14275         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14276         since the NULL case is short-circuited inside g_hash_table_lookup, 
14277         leading to better performance.  
14278
14279         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14280         obtain the first custom attribute for a given index. Depends on the
14281         CustomAttribute table being sorted by the parent field.
14282
14283         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14284         for better performance.
14285
14286 2003-09-07  Martin Baulig  <martin@ximian.com>
14287
14288         * class.c (mono_class_init): If we're a generic instance, inflate
14289         all our methods instead of loading them from the image.
14290         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14291
14292 2003-09-07  Martin Baulig  <martin@ximian.com>
14293
14294         * mono-debug-debugger.c: Added support for constructors.
14295
14296 2003-09-06  Martin Baulig  <martin@ximian.com>
14297
14298         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14299         New interncall.
14300
14301         * reflection.c (mono_reflection_setup_generic_class): Call
14302         ensure_runtime_vtable() to create the vtable.
14303
14304 2003-09-05  Martin Baulig  <martin@ximian.com>
14305
14306         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14307         MONO_TYPE_MVAR.
14308
14309 2003-09-04  Martin Baulig  <martin@ximian.com>
14310
14311         * reflection.c (mono_reflection_define_generic_parameter): Generic
14312         parameters start with zero.
14313
14314 2003-09-04  Martin Baulig  <martin@ximian.com>
14315
14316         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14317
14318         * reflection.h (MonoReflectionGenericParam): New typedef.
14319         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14320         the generic parameters from the managed TypeBuilder.
14321
14322         * reflection.c (mono_reflection_define_generic_parameter): New function.
14323         (mono_reflection_create_runtime_class): Encode generic parameters.
14324         (mono_reflection_setup_generic_class): New function; this is
14325         called after adding adding all generic params to the TypeBuilder.
14326         (encode_type): Added MONO_TYPE_VAR.
14327
14328 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14329
14330         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14331         here from the JIT.
14332
14333         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14334         load hook.
14335
14336 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14337
14338         * reflection.h reflection.c class.h class.c: Delete duplicate 
14339         definition of mono_type_get_name () from reflection.c and export the
14340         one in class.c.
14341
14342         * class.c: Class loading fixes from Bernie Solomon 
14343         (bernard@ugsolutions.com).
14344
14345         * reflection.c: Endianness fixes from Bernie Solomon 
14346         (bernard@ugsolutions.com).
14347         
14348 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14349
14350         * assembly.h assembly.c: Define a file format version for AOT
14351         libraries.
14352         
14353         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14354
14355         * appdomain.h (MonoJitInfo): New field to determine whenever the
14356         code is domain neutral.
14357         
14358 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14359
14360         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14361
14362 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14363
14364         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14365         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14366         Avoid caching the result since strings must be domain specific. Fixes
14367         #48050.
14368
14369 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14370
14371         * marshal.c (mono_marshal_init): Make this callable multiple times
14372         since it is hard to find a correct place to call it.
14373
14374         * object.c (mono_runtime_class_init): Execute static constructors in
14375         the correct appdomain.
14376
14377         * image.c (build_guid_table): Handle the case when multiple images have
14378         the same GUID.
14379
14380 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14381
14382         * icall.c: added a couple of icalls for System.Web.
14383
14384 2003-08-28  Martin Baulig  <martin@ximian.com>
14385
14386         * icall.c (ves_icall_Type_BindGenericParameters): Use
14387         `klass->generic_inst' instead of `&klass->byval_arg' in the
14388         mono_type_get_object() call.  The returned type must be
14389         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14390
14391 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14392
14393         * NOTES: New file.
14394
14395         * object.c (mono_class_proxy_vtable): Make it thread safe.
14396
14397         * pedump.c: Fix warning.
14398
14399         * object.c appdomain.h: Get rid of metadata_section. 
14400         It is no longer needed and it was causing deadlocks with domain->lock.
14401
14402         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14403
14404 2003-08-26  Martin Baulig  <martin@ximian.com>
14405
14406         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14407
14408 2003-08-26  Martin Baulig  <martin@ximian.com>
14409
14410         * pedump.c (main): Call mono_metadata_init(),
14411         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14412         and mono_loader_init().
14413
14414 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14415
14416         * loader.h: Add missing include to fix build.
14417
14418         * image.h: mono_image_load_references is no more.
14419
14420         * assembly.c: Reworked assembly loading to make it really thread safe.
14421         After these changes, the assembly returned by mono_assembly_open is
14422         fully initialized, i.e. all its references assemblies are loaded.
14423
14424         * assembly.c (mono_image_load_references): Renamed to 
14425         mono_assembly_load_references, and made private, since clients no
14426         longer need to call it.
14427
14428         * class.c: Removed calls to mono_assembly_load_references, since it was
14429         a source of deadlocks.
14430
14431         * loader.h loader.c class.h class.c: Protect data structures using a 
14432         new lock, the loader lock.
14433
14434         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14435         GPtrArrays only when needed.
14436
14437         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14438         into empty structures by mcs. Fixes pinvoke7.cs.
14439         
14440         * domain.c (mono_init): Call a new initialization function.
14441
14442         * appdomain.c (mono_runtime_init): Call the new initializer function
14443         of the marshal module.
14444
14445         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14446         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14447
14448         * marshal.h marshal.c: Added locks around the wrapper caches to make
14449         this module thread safe.
14450
14451         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14452         this argument. Fixes pinvoke1.exe.
14453
14454 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14455
14456         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14457         enumeration of values. Removed fields to store remote call output values in
14458         MonoAsyncResult. Not needed any more.
14459         * object.c: Initialize call_type and async_result fields in mono_message_init.
14460         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14461         dispatching the message.
14462         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14463         async call to finish. To do it use a message with EndInvoke call type.
14464
14465 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14466
14467         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14468         determines whenever a method has marshalling info.
14469
14470 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14471
14472         * assembly.c: fix the build on windows.
14473
14474 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14475
14476         * object.cs: Fixed bug #47785.
14477
14478 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14479
14480         * string-icalls.c (StringReplace): If their are no occurances of
14481         the old string found return a reference to the supplied
14482         string. This saves some memory and matches MS behavoir.
14483         
14484 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14485
14486         * socket-io.c: fixed compilation for systems that define AF_INET6
14487         and don't define SOL_IP/SOL_IPV6.
14488
14489 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14490
14491         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14492         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14493
14494         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14495
14496         * domain.c: Make this module thread safe.
14497
14498         * domain.c (mono_init): Call new initialization function.
14499
14500         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14501         reference types too. Fixes #38812.
14502
14503         * image.c (mono_image_init): Fixed warnings.
14504
14505         * class.c (mono_class_from_typeref): Handle assembly load failure
14506         correctly.
14507
14508         * appdomain.c (add_assemblies_to_domain): Handle the case when
14509         the references of an assembly are not yet loaded.
14510
14511         * metadata.c image.c assembly.c: Moved initialization of global
14512         variables to a separate function called at startup since lazy 
14513         initialization of these variables is not thread safe.
14514         
14515         * image.c assembly.c: Made this module thread safe by adding locks in 
14516         the appropriate places.
14517
14518         * domain.c (mono_init): Call the new initialization functions of the
14519         three modules.
14520
14521 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14522
14523         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14524           make a direct call. It is proxy's work to make the call asynchronous.
14525           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14526           the return values.
14527         * object.cs: mono_method_call_message_new(): read AsyncResult and
14528           state object from parameters list, if this info is requested.
14529         * object.h: Added fields to store remote call output values in
14530           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14531
14532 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14533
14534         * object.h: add needed fields to MonoThread.
14535         * threads.c, threads.h: allow registering a function to cleanup data
14536         allocated per thread by the JIT.
14537
14538 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14539
14540         * loader.h: portability fix by Bernie Solomon
14541         * <bernard@ugsolutions.com>.
14542
14543 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14544
14545         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14546         return a MonoArray. This simplifies the code and also ensures that
14547         the cache allways contains an object reference as a value.
14548
14549         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14550         function.
14551
14552 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14553
14554         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14555         fixes a problem with byte ordering when getting the address family for
14556         a socket.
14557
14558 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14559
14560         * .cvsignore: Added monosn.
14561
14562         * reflection.h reflection.c loader.c: Added support for parameter
14563         marshalling to dynamically created types. Fixes #47295.
14564
14565 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14566
14567         * rand.c: remove useless warnings.
14568
14569 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14570
14571         * class.c: implemented ldtoken for methods and fieldrefs.
14572
14573 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14574
14575         * threadpool.c: when mono_async_invoke was called, no one took care of
14576         monitoring the queue. So if the method invoked took some time and we
14577         got new async invoke requests after 500 ms (the thread created waited
14578         that long in WaitForSingleObject), the new async invoke was not called
14579         until the previous one finished.
14580
14581         This is fixed now. Thanks to Totte for helping with it.
14582
14583 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14584
14585         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14586
14587 2003-08-11  Martin Baulig  <martin@ximian.com>
14588
14589         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14590
14591 2003-08-06  Martin Baulig  <martin@ximian.com>
14592
14593         * mono-debug-debugger.c: Added support for static fields,
14594         properties and methods.
14595
14596 2003-08-06  Martin Baulig  <martin@ximian.com>
14597
14598         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14599         make this work for applications with multiple application domains.
14600
14601 2003-08-04  Martin Baulig  <martin@ximian.com>
14602
14603         * mono-debug-debugger.c: Completely reworked the type support; the
14604         most important thing is that we're now just using one single
14605         `MonoType' instance per type.
14606
14607 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14608
14609         * mono-endian.h, mono-endian.c, icall.c: Added icall
14610         ves_icall_System_Double_AssertEndianity to assert double word endianity
14611         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14612
14613 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14614
14615         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14616         support, icalls and fixes.
14617
14618 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14619
14620         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14621         classes that are a punctuation character in .NET is not the same a
14622         g_unichar_ispunct.
14623
14624 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14625
14626         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14627
14628 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14629
14630         * icall.c: Add new MemCopy internalcall.
14631         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14632         Simplified code; It is not necessary to handle all the cases here,
14633         as the C# code takes care of it.  Only handle the case of the name
14634         resource embedded into the assembly.
14635
14636         Changed signature to return the data pointer and the size of the
14637         data. 
14638
14639 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14640
14641         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14642         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14643
14644 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14645
14646         * socket-io.c: ignore EINTR error in select.
14647
14648 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14649
14650         * class.h, class.c: removed unused subclasses field in MonoClass.
14651
14652 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14653
14654         * icall.c: improve fix of get_base_definition(). If the parent class
14655           doesn't have the mehod, look at the parent of the parent.
14656         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14657           to check if a parameter is an in or out parameter
14658           (PARAM_ATTRIBUTE_IN is not set by default).
14659           mono_method_return_message_restore(): Use mono_class_value_size to
14660           get the size of a value type. mono_type_stack_size (parameterType)
14661           does not return the correct value if parameterType is byRef.
14662           mono_load_remote_field(), mono_load_remote_field_new(),
14663           mono_store_remote_field(), mono_store_remote_field_new():
14664           raise exception if the remote call returns an exception.
14665
14666 2003-07-28  Martin Baulig  <martin@ximian.com>
14667
14668         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14669         method.  This is a wrapper around mono_runtime_invoke() which
14670         boxes the instance object if neccessary.
14671
14672 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14673
14674         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14675         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14676
14677 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14678
14679         * icall.c: disable mcs bug workaround.
14680
14681 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14682
14683         * object.c (mono_runtime_class_init): Take the metadata_section
14684         mutex before obtaining the domain mutex.
14685
14686         * appdomain.h: Added definition of metadata_section mutex here. 
14687
14688         * object.c: define metadata_mutex here.
14689
14690 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14691
14692         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14693         fixed.
14694
14695 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14696
14697         * reflection.c: Fix bug #46669
14698
14699 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14700
14701         * exception.c:
14702         * exception.h:
14703         * icall.c:
14704         * object.h: fill in the type name for TypeLoadException.
14705
14706 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14707
14708         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14709         relationship between TypeBuilders while compiling corlib) and bug
14710         45993 (Array types returned from the runtime while compiling
14711         corlib were from the loaded corlib).
14712
14713 2003-07-22  Martin Baulig  <martin@ximian.com>
14714
14715         * mono-debug-debugger.c: Reworked the type support a bit more;
14716         distinguish between types and classes.
14717
14718 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14719
14720         * icall.c: add IsArrayImpl icall.
14721
14722 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14723
14724         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14725         initializing real_size only once. Also fix bug #46602.
14726
14727 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14728
14729         * object.c: Renamed mono_metadata_section to metadata_section.
14730
14731 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14732
14733         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14734           empty array if the type is an array. Fixed.
14735           ves_icall_MonoMethod_get_base_definition: if the base method
14736           is abstract, get the MethodInfo from the list of methods of
14737           the class.
14738         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14739           and it was 1-based. Fixed in mono_param_get_objects.
14740
14741 2003-07-20  Martin Baulig  <martin@ximian.com>
14742
14743         * mono-debug.h: Set version number to 31.
14744         (mono_debug_init): Added `MonoDomain *' argument.
14745
14746         * mono-debug-debugger.c: Reworked the type support; explicitly
14747         tell the debugger about builtin types; pass the `klass' address to
14748         the debugger.
14749
14750 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14751
14752         * image.c: Allow new metadata tables to be loaded without a
14753         warning. Also update the warning message to give the new constant value.
14754                 
14755 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14756
14757         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14758         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14759         array type representation changes.
14760
14761 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14762
14763         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14764         on Environment.Exit () call.
14765
14766 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14767
14768         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14769         requires a matching corlib.
14770
14771 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14772
14773         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14774           Committed again without the CRs.
14775         
14776 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14777
14778         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14779           getting it from the "this" socket instance. Did not work
14780           if the socket is a subclass of Socket.
14781           Also fixed bug #35371.
14782
14783 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14784
14785         * metadata.c: fixed size for TypedByRef.
14786         * loader.c: when searching for a method, consider the vararg amrker.
14787         * unicode.c, decimal.c: constify some arrays.
14788
14789 2003-07-15  Dick Porter  <dick@ximian.com>
14790
14791         * socket-io.c: Fixed compilation for gcc < 3.2.
14792
14793         Fixed compilation for machines that don't have AF_INET6 (thanks to
14794         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14795
14796         Fixed compile warnings.
14797         
14798         Fixed formatting and line endings.
14799
14800 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14801
14802         * socket-io.h:
14803         * socket-io.c: Added IPv6 support.
14804
14805 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14806
14807         * class.c (mono_class_is_assignable_from): New function to implement
14808         the is_assignable_from logic. Used by mono_object_isinst, 
14809         Type::IsAssignableFrom () and the interpreter.
14810
14811         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14812         Object, even interfaces.
14813         
14814         * object.c (mono_object_isinst): Implement in terms of 
14815         is_assignable_from.
14816
14817         * icall.c (ves_icall_type_is_assignable_from): New icall.
14818
14819 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14820
14821         * domain.c (foreach_domain): fix compiler warning.
14822
14823 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14824
14825         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14826         not available on all plattforms
14827
14828 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14829
14830         * image.h image.c: Store the metadata version string in MonoImage.
14831         * icall.c: New icall to retrieve the image version.
14832         * reflection.c (create_dynamic_image): Fill in the image version field
14833         * reflection.c (build_compressed_metadata): Use the image version
14834         from the image structure.
14835
14836 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14837
14838         * appdomain.c: modified comment.
14839         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14840         That will be its last iteration when mono_gc_cleanup is called from
14841         mono_runtime_cleanup and before the domain is unloaded.
14842
14843         Fixes bug #45962.
14844
14845 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14846
14847         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14848         attributes.
14849
14850 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14851
14852         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14853         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14854         Bernie Solomon <bernard@ugsolutions.com>.
14855
14856 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14857
14858         * object.c, object.h: provide mono_object_new_fast() for faster
14859         allocation in some special cases.
14860
14861 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14862
14863         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14864         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14865
14866 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14867
14868         * threadpool.c: fix leaks.
14869
14870 2003-07-01  Dick Porter  <dick@ximian.com>
14871
14872         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14873         using MonoGHashTables.  Fixes threadpool bug posted to list.
14874
14875 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14876
14877         * image.h, image.c: added support to load an assembly from a byte array.
14878         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14879         assembly bundle support.
14880
14881 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14882
14883         * threadpool.c (mono_thread_pool_add): keep a reference to the
14884         AsyncResult to prevent GC
14885
14886 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14887
14888         * class.c: leak fix.
14889
14890 2003-06-25  Dick Porter  <dick@ximian.com>
14891
14892         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14893         for the async object, the WaitHandle object will close the handle.
14894         Fixes bug 45321.
14895
14896 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14897
14898         * class.c: in mono_array_class_get (), lookup from the hash with the
14899         same type we insert: this works around a bug in
14900         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14901         lluis. The real fix will have to wait for after the release.
14902
14903 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14904
14905         * icall.c: fix memory leak when getting type members.
14906
14907 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14908
14909         * reflection.c: added more pubtoken special cases.
14910
14911 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14912
14913         * class.c: handle field offset correctly when class size
14914         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14915
14916 2003-06-20  Martin Baulig  <martin@ximian.com>
14917
14918         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14919         *image' field.
14920
14921 2003-06-20  Martin Baulig  <martin@ximian.com>
14922
14923         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14924
14925 2003-06-20  Martin Baulig  <martin@ximian.com>
14926
14927         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14928         just distinguish between variables in registers and variables at
14929         an offset relative to a register.
14930
14931 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14932
14933         * icall.c: #ifdef out latest changes until mcs is fixed.
14934
14935 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14936
14937         * icall.c: return members in metadata order.
14938
14939 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14940
14941         * icall.c: avoid infinite loop in GetTimeZoneData.
14942
14943 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14944
14945         * icall.c: added Marshal.Prelink/All icalls.
14946
14947 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14948
14949         * object.c, object.h: fix warnings and do some overflow checking
14950         when creating arrays.
14951
14952 2003-06-17  Dick Porter  <dick@ximian.com>
14953
14954         * file-io.h:
14955         * file-io.c: File attributes need to be tweaked slightly when
14956         passed from the managed to the w32 world.
14957
14958 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14959         * profiler.h profiler-private.h profiler.c: Rework last patch
14960         based on suggestion by Paolo.
14961         
14962 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14963
14964         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
14965         instruction level coverage data collection.
14966         * profiler.h profiler.c (: Added new callback function which can be
14967         used by the profiler to limit which functions should have coverage
14968         instrumentation.
14969         * profiler.c (mono_profiler_load): Call g_module_build_path to
14970         generate the file name of the profiler library.
14971
14972 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14973
14974         * profiler.c, profiler.h, profiler-private.h: added basic block 
14975         coverage profiling API.
14976
14977 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
14978
14979         * reflection.c (mono_reflection_create_runtime_class): Add support
14980         for events in dynamically generated code.
14981
14982         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
14983         not allocated.
14984
14985 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14986
14987         * icall.c: when getting timezone info, return reasonable values if we
14988         can't get the actual data.
14989
14990 2003-06-14  Dick Porter  <dick@ximian.com>
14991
14992         * threads.c (start_wrapper): Remove the reference to the thread
14993         object in the TLS data, so the thread object can be finalized.
14994         This won't be reached if the thread threw an uncaught exception,
14995         so those thread handles will stay referenced :-( (This is due to
14996         missing support for scanning thread-specific data in the Boehm GC
14997         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
14998
14999 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15000
15001         * reflection.c: ensure streams and tables are first allocated with
15002         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15003
15004 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15005
15006         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15007
15008 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15009
15010         * reflection.c (mono_reflection_create_runtime_class): Add support for
15011         properties to dynamically created classes.
15012         * reflection.c: Fix a few places where non-MonoObjects were inserted
15013         into the tokens hashtable.
15014
15015 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15016
15017         * object.c: some support to handle out of memory exceptions.
15018
15019 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15020
15021         * marshal.c (mono_marshal_get_native_wrapper): support reference
15022         return types
15023
15024 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15025
15026         * object.h, object.c: more portability stuff from Bernie Solomon.
15027         Unexport mono_object_allocate(). Added mono_object_unbox ().
15028         Set exitcode when an unhandled exception is thrown.
15029
15030 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15031
15032         * marshal.c (mono_marshal_get_native_wrapper): use custom
15033         marshaler for return types.
15034
15035 2003-06-10  Dick Porter  <dick@ximian.com>
15036
15037         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15038         ip_mreq is available
15039
15040 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15041
15042         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15043         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15044         by Bernie Solomon <bernard@ugsolutions.com>.
15045
15046 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15047
15048         * gc.c (mono_gc_init): Avoid error message on shutdown when
15049         GC_DONT_GC=1 is used.
15050
15051         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15052         New icall to return the GUID of a module.
15053
15054 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15055
15056         * class.c: ensure instance size always includes the parent's size
15057         even whem class size is set explicitly (fixes bug#44294).
15058
15059 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15060
15061         * profiler.h, profiler.c: made the simple profiler thread-safe,
15062         get more accurate timing info. Allow the loading of an
15063         externally-developed profiler module.
15064
15065 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15066
15067         * marshal.c (mono_marshal_get_native_wrapper): improved
15068         class/byref arguments.
15069         (mono_marshal_get_native_wrapper): better string marshaling support.
15070
15071 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15072
15073         * class.c: ensure .pack and .size are handled correctly and
15074         simplified layout of static fields.
15075
15076 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15077
15078         * appdomain.c
15079         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15080
15081         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15082         current directory (fix bug 44008)
15083
15084 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15085
15086         * marshal.c (mono_marshal_get_native_wrapper): started support for
15087         custom marshalers.
15088         (mono_delegate_to_ftnptr): consider marshalling specifications
15089
15090 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15091
15092         * reflection.c, reflection.h: emit custom marshal info.
15093
15094 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15095
15096         * object.c: free the GError.
15097         * icall.c: added CloseEvent_internal.
15098         * threads.[ch]:
15099         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15100         call.
15101
15102 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15103
15104         * loader.c (mono_method_get_signature): Add support for dynamic
15105         assemblies.
15106
15107 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15108
15109         * reflection.c: fixed bug #43905.
15110
15111 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15112
15113         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15114         handling TypedReference and ArgIterator.
15115         * loader.c, loader.h: added function to get signature at call site.
15116
15117 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15118
15119         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15120         data readonly. Buglets and warning fixes. Some MethodSpec support.
15121
15122 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15123
15124         * class.h, class.c, object.c: remove relative numbering support.
15125
15126 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15127
15128         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15129         free the string, until we get a chance to fix Gtk#
15130
15131 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15132
15133         * marshal.c: revert last patch.
15134
15135 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15136
15137         * icall.c: updates for new mono_class_vtable() not calling
15138         the type constructor anymore.
15139
15140 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15141
15142         * object.h, object.c: separate vtable creation from type
15143         initialization. Make running the .cctor thread safe.
15144
15145 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15146
15147         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15148
15149 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15150
15151         * loader.c (mono_get_method): consider calling convention
15152
15153 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15154
15155         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15156         to return the invisible global type for a module.
15157
15158         * reflection.c (mono_image_build_metadata): Emit global fields too.
15159
15160 2003-05-20  Peter Williams  <peterw@ximian.com>
15161
15162         * loader.c (mono_lookup_internal_call): Add a few newlines.
15163
15164 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15165
15166         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15167         literal strings.
15168
15169         * appdomain.c (set_domain_search_path): Recalculate search path when
15170         AppDomainSetup.PrivateBinPath changes.
15171
15172         * object.c (mono_class_compute_gc_descriptor): It turns out some
15173         parts of the class libs (like System.Thread) holds pointers to
15174         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15175         to treat native int a pointer type here.
15176         
15177 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15178
15179         * appdomain.h, domain.c: add hashtable for jump target resolution.
15180
15181 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15182
15183         * reflection.h reflection.c icall.c: Added new icalls 
15184         GetManifestResourceInfoInternal, GetModulesInternal and support
15185         infrastructure.
15186
15187 2003-05-16  Dick Porter  <dick@ximian.com>
15188
15189         * icall.c:
15190         * file-io.h:
15191         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15192
15193 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15194
15195         * object.c: mono_store_remote_field: little fix to previous patch.
15196
15197 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15198
15199         * class.c: add constructors to array classes.
15200         * icall.c: special case array construction for InternalInvoke (),
15201
15202 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15203
15204         * class.h class.c reflection.c object.c: Added support for field
15205         defaults in dynamically generated classes.
15206
15207 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15208
15209         * reflection.c: properly encode charset for ddlimport.
15210
15211 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15212
15213         * threads.c: allow compiling without GC.
15214
15215 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15216
15217         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15218         handling of thread static data.
15219
15220 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15221
15222         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15223
15224 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15225
15226         * class.c (mono_array_class_get): always set the serializable flags
15227         (mono_array_class_get): always set the SEALED attribute for array types
15228
15229 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15230
15231         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15232         attributes (fix for bug 42021).
15233
15234 2003-05-12  Dick Porter  <dick@ximian.com>
15235
15236         * gc.c: Don't run finalizers when the finalizer thread is
15237         finishing up, because the default domain has already been
15238         destroyed.
15239
15240 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15241
15242         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15243         value is null, we should throw an exception.   This is slightly
15244         different than the other conventions used for the constructor.
15245
15246 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15247
15248         * socket-io.c: fixed windows build.
15249
15250 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15251
15252         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15253
15254 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15255
15256         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15257         compilers.
15258
15259 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15260
15261         * class.c (mono_class_layout_fields): Add experimental GC aware
15262         auto layout facility. Requires class library changes to work correctly.
15263
15264         (mono_class_setup_vtable): Avoid overriding explicit interface
15265         method implementations. Fixes iface3.exe test.
15266
15267         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15268         object reference.
15269         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15270         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15271
15272         * metadata.h: Add new type classification macro which determines
15273         whenever the type holds an object reference.
15274
15275 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15276
15277         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15278
15279 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15280
15281         * gc.c (finalizer_thread): Work around a GC bug.
15282
15283 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15284
15285         * marshal.c (emit_struct_conv): allow unions
15286
15287         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15288
15289 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15290
15291         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15292
15293 2003-05-06  Martin Baulig  <martin@ximian.com>
15294
15295         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15296
15297 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15298
15299         * socket-io.c:
15300         (Select_internal): allow NULLs, don't create arrays if not needed.
15301         Coupled with Socket.cs changes.
15302
15303         * threadpool.c:
15304         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15305         register a finalizer for it that will close the semaphore handle. This
15306         fixes the leak and make Lupus' test run with > 4080 loops.
15307
15308 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15309
15310         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15311         Jerome Laban (bug #42287)
15312
15313 2003-05-02  Martin Baulig  <martin@ximian.com>
15314
15315         * debug-mono-symfile.h
15316         (MonoSymbolFile): Moved declaration into mono-debug.h.
15317         (MonoDebugMethodJitInfo): Likewise.
15318         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15319         argument.
15320         (_mono_debug_address_from_il_offset): Take a
15321         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15322
15323         * mono-debug.h
15324         (MonoDebugDomainData): New struct.
15325         (mono_debug_get_domain_data): New function.
15326         (mono_debug_add_method): Take an additional `MonoDomain *'
15327         argument.
15328         (mono_debug_source_location_from_address): Likewise.
15329         (mono_debug_il_offset_from_address): Likewise.
15330         (mono_debug_address_from_il_offset): Likewise.
15331
15332 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15333
15334         * reflection.c: one more check for null type in custom attrs.
15335
15336 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15337
15338         * reflection.c: avoid warning (comparison is always false due to limited
15339         range of data type).
15340
15341 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15342
15343         * icall.c: throw an exception in Type.GetField if the argument 'name'
15344         is NULL.
15345
15346 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15347
15348         * reflection.c: fixed handling of enums in named arguments to custom
15349         attributes (bug #42123).
15350
15351 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15352
15353         * reflection.c: use the right array element type and handle
15354         a null for a Type argument, too.
15355
15356 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15357
15358         * reflection.c: handle arrays as arguments to custom attributes.
15359
15360 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15361
15362         * reflection.c: handle a string value in a custom attr
15363         ctor that takes an object.
15364
15365 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15366
15367         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15368         (fix bug #42063)
15369
15370 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15371
15372         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15373
15374 2003-04-27  Martin Baulig  <martin@ximian.com>
15375
15376         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15377         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15378         MONO_DEBUGGER_EVENT_BREAKPOINT.
15379         (mono_breakpoint_trampoline_code): Removed.
15380         (mono_debugger_event_handler): The last argument is now a
15381         `guint32'.
15382         (mono_debugger_insert_breakpoint_full): Removed the
15383         `use_trampoline' argument.
15384         (mono_debugger_method_has_breakpoint): Likewise.
15385         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15386         mono_debugger_breakpoint_callback(); take the method and
15387         breakpoint number as arguments.
15388
15389 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15390
15391         * metadata.c: fix off by one when loading parameters attributes.
15392
15393 2003-04-24  Martin Baulig  <martin@ximian.com>
15394
15395         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15396
15397 2003-04-24  Martin Baulig  <martin@ximian.com>
15398
15399         * mono-debug-debugger.c: Moved all code which interacts with the
15400         Mono Debugger here.
15401
15402         * debug-mono-symfile.c: This code now just deals with the symbol
15403         file itself, the debugger code is now in mono-debug-debugger.c.
15404
15405 2003-04-23  Martin Baulig  <martin@ximian.com>
15406
15407         * mono-debug.c (mono_debug_source_location_from_il_offset):
15408         New method; like mono_debug_source_location_from_address(), but
15409         takes an IL offset instead of a machine address.
15410
15411 2003-04-23  Martin Baulig  <martin@ximian.com>
15412
15413         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15414         `line' field; this is now computed by the debugger.
15415
15416 2003-04-23  Martin Baulig  <martin@ximian.com>
15417
15418         * mono-debug.[ch]: New files.  This is the new debugging interface.
15419
15420         * mono-debug-debugger.[ch]: New files.  Moved all code which
15421         interacts with the Mono Debugger here.
15422
15423 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15424
15425         * domain.c (mono_init): initialize mono_defaults.monitor_class
15426
15427 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15428
15429         * reflection.c (method_encode_code): Add a spicy exception to help
15430         future compiler authors.
15431
15432 2003-04-21  Martin Baulig  <martin@ximian.com>
15433
15434         * icall.c
15435         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15436         Make this work with relative pathnames; g_filename_to_uri() needs
15437         an absolute filename.
15438
15439 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15440
15441         * icall.c: Track name changes in Object and ValueType.
15442
15443 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15444
15445         * metadata.c (mono_type_stack_size): size should be a multiple of
15446         sizeof (gpointer)
15447
15448 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15449
15450         * gc.c:
15451         (internal_domain_finalize): moved into mono_domain_finalize. No need
15452         to create another thread because the finalizers will be run in the
15453         finalizer thread.
15454         
15455         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15456         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15457         to be run (MS does this too).
15458
15459 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15460
15461         * object.c (mono_class_compute_gc_descriptor): Update comment.
15462
15463         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15464
15465         * image.h: Add synchronized wrapper cache.
15466
15467         * image.c (do_mono_image_open): Initialize cache.
15468
15469         * reflection.c (create_dynamic_mono_image): Initialize cache.
15470
15471 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15472
15473         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15474         ves_icall_System_Buffer_ByteLengthInternal.
15475
15476 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15477
15478         * reflection.c: setup klass->nested_in earlier. Allow
15479         a dash in the assembly name.
15480
15481 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15482
15483         * metadata.c (mono_type_to_unmanaged): dont access
15484         type->data.klass for MONO_TYPE_OBJECT
15485         (mono_type_to_unmanaged): consider System.Delegate class
15486
15487 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15488
15489         * class.c: just setup supertypes in the proper place instead of
15490         initializing the full element class for arrays.
15491
15492 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15493
15494         * class.c: ensure the element class of arrays is initialized.
15495         Setup the supertype info for array classes, too.
15496
15497 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15498
15499         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15500
15501 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15502
15503         * Makefile.am: re-added -m option when running cygpath. This way,
15504         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15505         separator.
15506         * mono-config.c: same codepath for locating mono config file for WIN32
15507         and the rest.
15508         * assembly.c: if mono_assembly_setrootdir is called, don't override
15509         the value set.
15510
15511 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15512
15513         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15514         MONO_ASSEMBLIES variable.
15515
15516 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15517
15518         * icall.c: added Assembly::GetNamespaces() icall.
15519
15520 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15521
15522         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15523
15524 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15525
15526         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15527         * object.c: fixed bug in the construction of vtable for proxies
15528
15529 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15530
15531         * object.c (mono_array_new): Mark mono_array_new as an icall.
15532
15533 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15534
15535         * class.c: fixed test for public method when overriding interfaces.
15536         Closes bug #40970.
15537
15538 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15539
15540         * appdomain.h, domain.c: added mono_domain_foreach() to
15541         be able to access the currently loaded appdomains.
15542         * object.c: make string interning work across sppdomains.
15543         Mark some functions for use as icalls.
15544
15545 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15546
15547         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15548
15549         * reflection.h reflection.c: Allocate long living data using 
15550         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15551
15552         * reflection.c: Double the allocation size in streams instead of
15553         increasing it, to prevent unneccesary copying on large assemblies.
15554         
15555         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15556         creation if the assembly does not have the Run flag set.
15557
15558 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15559
15560         * class.h: avoid the C++ keywords in header files (Jerome Laban
15561         spotted and fixed this).
15562
15563 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15564
15565         * object.c:
15566         (mono_unhandled_exception): fill in the arguments for the
15567         UnhandledException event. Only trigger that event for the default
15568         domain (as MS does).
15569
15570 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15571
15572         * object.c: Improve typed allocation stuff based on suggestions from
15573         Paolo. Also turn it on if the GC library supports it.
15574
15575 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15576
15577         * object.c object.h class.h: Added experimental typed allocation
15578         facility using the interfaces in gc_gcj.h.
15579
15580         * os/gc_wrapper.h: Added new include files.
15581         
15582 2003-04-03  Martin Baulig  <martin@ximian.com>
15583
15584         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15585         which is not yet enabled by default.
15586
15587         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15588         functions.
15589         (mono_gc_lock, mono_gc_unlock): New static functions.
15590
15591         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15592         functions; stop/start the world for the garbage collector.  This
15593         is using the windows API; we need to complete the SuspendThread()/
15594         ResumeThread() implementation in the io-layer to make this work on Unix.
15595         (mono_gc_push_all_stacks): New public function; tells the garbage
15596         collector about the stack pointers from all managed threads.
15597
15598 2003-04-03  Martin Baulig  <martin@ximian.com>
15599
15600         * object.h (MonoThread): Added `gpointer stack_ptr'.
15601
15602         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15603
15604 2003-04-03  Martin Baulig  <martin@ximian.com>
15605
15606         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15607
15608 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15609
15610         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15611         field.last.
15612
15613 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15614
15615         * loader.c (mono_lookup_internal_call): Report the corlib that is
15616         out of sync.
15617
15618 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15619
15620         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15621         System.DBNull (it's class not valuetype).
15622
15623 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15624
15625         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15626         if the array method was already assigned a token (fixes bug#40646).
15627
15628 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15629
15630         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15631         if no assembly is given.
15632
15633 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15634
15635         * metadata.h: Added the new tables.
15636
15637         * row-indexes.h: Added definitions for new tables.
15638
15639         * metadata.c: Add schemas for new tables, and add support for
15640         computing the sizes of them.
15641
15642         * class.c: Update for handling the new type cases.
15643
15644 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15645
15646         * metadata.h (MONO_TYPE_IS_VOID): new macro
15647
15648 2003-03-31  Martin Baulig  <martin@ximian.com>
15649
15650         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15651
15652         * threads.c (mono_thread_new_init): Call `thread_created' in the
15653         mono_thread_callbacks.
15654
15655 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15656
15657         * loader.h: added marshalbyrefobject_class to mono_defaults
15658         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15659         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15660           generation of output parameters.
15661           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15662         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15663           contextbound and the target object belongs to the context of the caller.
15664         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15665         * object.c: Implemented support for interfaces and abstract classes
15666           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15667           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15668
15669 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15670
15671         * class.h class.c (mono_class_is_subclass_of): New function.
15672         
15673         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15674         routines for most common case (calls from ArrayList::ToArray).
15675
15676         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15677         routine so programs which call Environment::Exit() can be profiled.
15678
15679         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15680         Added MONO_ARCH_SAVE_REGS.
15681
15682         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15683
15684 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15685
15686         * blob.h: Add a couple of new MonoType types definitions.
15687
15688         * tabledefs.h: Add a couple of new call convs.
15689
15690 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15691
15692         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15693         the layout of the class.
15694
15695         * reflection.c (alloc_table): double the size on overflow to avoid
15696         unnecessary copying.
15697
15698         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15699         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15700         null so it can be garbage collected.
15701         
15702 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15703
15704         * reflection.c (mono_reflection_get_type): Return the resolved type
15705         only if it is in the assembly we searched.
15706
15707         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15708
15709         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15710         method.
15711
15712 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15713
15714         * appdomain.c:
15715         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15716         the right one is 'file:///blah', but MS allows it.
15717         * assembly.c:
15718         (mono_assembly_open): allow 'file://blah'
15719
15720         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15721
15722 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15723
15724         * socket-io.c: fixes bug #40310.
15725
15726 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15727
15728         * reflection.c (mono_reflection_parse_type): handle deeply nested
15729         types correctly.
15730
15731         * reflection.c (mono_image_create_token): Use unique token values
15732         since they will be put into a hash table.
15733
15734         * class.c (mono_class_setup_vtable): If a method occurs in more than
15735         one place in the vtable, and it gets overriden, then change the
15736         other occurances too.
15737
15738         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15739         object as return type.
15740
15741 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15742
15743         * icall.c: Deleted "ToString" implementation for double and float
15744         because they are full implemented in managed code.
15745
15746 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15747
15748         * reflection.c, reflection.h: implemented and exported functions
15749         to retrieve info about custom attributes.
15750
15751 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15752
15753         * appdomain.c: moved Uri handling to assembly.c
15754         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15755         work when using a file Uri in *nix and windows.
15756
15757         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15758         GetReferencedAssemblies.
15759
15760 2003-03-18  Dick Porter  <dick@ximian.com>
15761
15762         * icall.c: Rename a couple of internal calls
15763
15764         * threads.c: Set the thread state to Stopped when a thread exits.
15765         Fixes bug 39377.
15766
15767 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15768
15769         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15770         New icall.
15771
15772         * object.c (mono_class_vtable): fix warning.
15773
15774 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15775
15776         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15777
15778         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15779         memory.
15780         (method_encode_clauses): Create exception info structures in the right
15781         order.
15782         (mono_reflection_setup_internal_class): Initialize supertypes field.
15783
15784         * class.c object.c: Handle interfaces which implement other interfaces 
15785         correctly.
15786
15787         * class.h class.c: Move the supertypes array initialization code into 
15788         a separate function so it can be used for dynamic types too. Also call
15789         it earlier, in mono_class_init(), since it can be used before the
15790         type is initialized.
15791
15792 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15793
15794         * Makefile.am:
15795         * assembly.c:
15796         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15797
15798         * appdomain.c:
15799         * appdomain.h:
15800         * marshal.c:
15801         * object.c: remove warnings.
15802
15803 2003-03-13  Martin Baulig  <martin@ximian.com>
15804
15805         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15806         (MonoDebugLexicalBlockEntry): New types.
15807
15808         * debug-mono-symfile.c
15809         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15810
15811 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15812
15813         * process.c: ret can be any non-zero value accroding to MS doc.
15814
15815 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15816
15817         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15818         fixing a warning for a miss-used prototype, would have cause
15819         random memory corruption.
15820
15821 2003-03-07  Martin Baulig  <martin@ximian.com>
15822
15823         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15824         getting really annoying ....
15825
15826 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15827
15828         * reflection.c (fixup_method): added support for array methods.
15829
15830 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15831
15832         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15833         (pointed out by Michael Adams).
15834
15835 2003-03-04  Dick Porter  <dick@ximian.com>
15836
15837         * icall.c: Temporarily reverted the Double and Single ToString()
15838         change, because it broke nunit.
15839
15840 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15841
15842         * object.h, threads.h: make include files compatible with C++
15843         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15844
15845 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15846
15847         * icall.c: Erased ToString helper functions for Double and Single.
15848         Now, that implementations ar all in managed code (Double and Single
15849         Formatters).
15850
15851 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15852
15853         * appdomain.c: Added method for initializing the default context of
15854         a domain. Added internal call for getting the default context.
15855         * appdomain.h: Added context variable in MonoDomain struct.
15856         * domain.c: mono_domain_set also sets the default context of the domain
15857         * icall.c: Mapped internal method InternalGetDefaultContext.
15858         * object.c: mono_object_get_virtual_method returns always a remoting
15859         wrapper if the object is a transparent proxy.
15860         mono_runtime_invoke_array: when creating an object by calling the
15861         constructor, if the created object is a proxy, then the constructor should
15862         be called using the a remoting wrapper.
15863
15864 2003-03-03  Dick Porter  <dick@ximian.com>
15865
15866         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15867         variable so it compiles on solaris.  Problem spotted by
15868         Christopher Taylor <ct@cs.clemson.edu>
15869
15870 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15871
15872         * appdomain.c:
15873         (get_info_from_assembly_name): don't leak value.
15874
15875         * icall.c:
15876         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15877         result.
15878
15879 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15880
15881         * assembly.c: export mono_image_load_references ().
15882         * class.c: handle function pointers. mono_class_from_name() now
15883         supports nested type names directly.
15884
15885 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15886
15887         * reflection.h reflection.c: Encode already created dynamic methods 
15888         and fields correctly as a DEF instead of a REF.
15889
15890         * reflection.c: Get rid of the force_ref argument to 
15891         mono_image_typedef_or_ref since it was wrong in the first place.
15892
15893         * string-icalls.c: add error checking to string constructors according
15894         to the MSDN docs.
15895
15896         * reflection.c: Emit types in the order their TypeBuilders were 
15897         created. Previously, a new table index was assigned to each type before
15898         the tables were emitted. This was wrong because the signature blob
15899         might already refer to a type by its original table index.
15900
15901 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15902
15903         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15904         change.
15905         
15906 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15907
15908         * Makefile.am: make assemblies dir have \ instead of / on windows.
15909
15910 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15911
15912         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15913         iterate over the NESTEDCLASS table using a linear search since the
15914         table is not guaranteed to be sorted by the secondary key.
15915
15916         * class.c (mono_class_create_from_typedef): fixed up call to
15917         mono_metadata_nesting_typedef.
15918         
15919 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15920
15921         * marshal.c (mono_string_to_byvalstr): clear the memory as
15922         suggested by Jerome Laban <jlaban@wanadoo.fr>
15923
15924 2003-02-26  Dick Porter  <dick@ximian.com>
15925
15926         * process.c: Cope with padding in .rsrc blocks
15927
15928 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15929
15930         * metadata.h: reverted the filter_len change, it breaks reflection
15931         
15932 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15933
15934         * metadata.h: added a new field to store the filter_len
15935         
15936
15937 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15938
15939         * reflection.c: handle custom attributes for types and members
15940         created with Reflection.Emit (bug#38422).
15941
15942 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15943
15944         * reflection.c: define RTSpecialName automatically for constructors for
15945         compatibility with MS.NET.
15946
15947         * reflection.c (mono_reflection_create_runtime_class): initialize
15948         nested_in field of dynamically created classes.
15949
15950 2003-02-22  Martin Baulig  <martin@ximian.com>
15951
15952         * debug-mono-symfile.h: Incremented version number.
15953
15954 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15955
15956         * object.h icall.c process.c: fix warnings.
15957
15958 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15959
15960         * appdomain.h appdomain.c:
15961         (mono_domain_try_type_resolve): split the 
15962         name_or_tb argument into a name and a tb argument.
15963         (mono_domain_has_type_resolve): new function to check whenever the
15964         application has registered a TypeResolve event handler.
15965         
15966         * icall.c reflection.h reflection.c: move the type resolve logic into
15967         mono_reflection_get_type () so it will be invoked when 
15968         Assembly::GetType () is called.
15969
15970         * reflection.c:
15971         (mono_reflection_get_type): renamed to get_type_internal.
15972         (mono_reflection_get_type): fixed type name generation so it works 
15973         for nested types too.
15974         (mono_reflection_get_type): call has_type_resolve () to avoid the 
15975         costly type name generation if there is no resolve event handler.
15976
15977 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15978
15979         * class.c, image.c: load exported types from file references.
15980
15981 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
15982
15983         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
15984           used to cache the managed methods used to create proxies and make 
15985           remote invocation of methods.
15986         * class.h: Added in MonoVTable a flag to indicate that a class needs 
15987           to be remotely created.
15988         * object.c: Modified the method mono_class_vtable(). It now initializes 
15989           the remote flag of the vtable. Modified mono_object_new_specific(), 
15990           so now it checks the remote flag.
15991         * icall.c: Added a couple of internal methods, one for enabling instance 
15992           creation interception for a type, and one for creating objects bypassing
15993           the remote check.
15994
15995 2003-02-18  Martin Baulig  <martin@ximian.com>
15996
15997         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
15998         New interncall to get a method's metadata token.
15999
16000         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16001         New interncall for the debugger.
16002
16003 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16004
16005         * class.c (mono_class_setup_vtable): allocate supertype array
16006
16007 2003-02-18  Martin Baulig  <martin@ximian.com>
16008
16009         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16010
16011 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16012
16013         * reflection.c:
16014         (assembly_name_to_aname): jump over unknown properties (i've found
16015         something like: 'type, assembly, version=xxx, custom=null, public...',
16016         so now will ignore custom=null and still get the rest of the values).
16017
16018 2003-02-17  Dick Porter  <dick@ximian.com>
16019
16020         * threads.c: Have Thread.Start() wait for a semaphore to signal
16021         that the thread has set up all its local data.  This fixes bug
16022         34323, where Abort() raced the new thread's TLS data.
16023
16024         Also removes the handle_store() call from start_wrapper, because
16025         threads are now always created suspended and there is no longer a
16026         race between the parent and child threads to store the info.
16027
16028 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16029
16030         * image.c: explain the #- heap issue in a message, hopefully
16031         avoiding FAQs on mono-list.
16032
16033 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16034
16035         * icall.c:
16036         (GetEntryAssembly): if the domain has not invoked
16037         AppDomain.ExecuteAssembly yet, return the assembly of the default
16038         AppDomain.
16039
16040 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16041
16042         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16043
16044 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16045
16046         * metadata.c, reflection.c: simple speedup to type hash
16047         and equals code.
16048
16049 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16050
16051         * image.c, image.h, class.c, assembly.c: move module loading
16052         to MonoImage. When loading metadata, consider alignemnet from
16053         the start of metadata, not from the metadata address in memory.
16054
16055 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16056
16057         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16058         AssemblyBuilder objects. Factored out custom attribute creation into
16059         a separate function.
16060         (create_custom_attr): new function to create custom attributes.
16061
16062 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16063
16064         * Makefile.am: Got tired of typing the full pathname to pedump.
16065         Until there is another option, am installing this.
16066
16067 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16068
16069         * class.c (class_compute_field_layout): always set field->parent 
16070         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16071
16072 2003-02-11  Dick Porter  <dick@ximian.com>
16073
16074         * threads-types.h:
16075         * monitor.c: Rewrote Monitor, making lock much faster and
16076         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16077         creates them as needed.
16078
16079         * exception.c: Added SynchronizationLockException
16080
16081         * threads.c: Deleted old Monitor implementation.  The new one is
16082         in a new file.
16083
16084 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16085
16086         * class.c: handled TypedReference type code. Set the correct size for
16087         class data. Setup interface_offsets for interface classes, too.
16088
16089 2003-02-09  Martin Baulig  <martin@ximian.com>
16090
16091         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16092
16093 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16094
16095         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16096         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16097         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16098         * verify.c: check for code that runs after the end of the method.
16099
16100 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16101
16102         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16103         "System.Math::Round2".
16104         * sysmath.h: Added Floor, Round and Round2 definitions.
16105         * sysmath.c: Modified certain functions that were not 100% compliant
16106         with MS.NET (math precision) and added the implementation of Floor,
16107         Round and Round2.
16108
16109 2003-02-07  Martin Baulig  <martin@ximian.com>
16110
16111         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16112
16113 2003-02-07  Martin Baulig  <martin@ximian.com>
16114
16115         * debug-mono-symfile.c: Reflected latest symwriter changes.
16116         (mono_debug_create_mono_symbol_file): Removed.
16117         (mono_debug_open_mono_symbol_file): Take an argument which
16118         specifies whether to create a dynamic symbol file.
16119
16120 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16121
16122         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16123
16124 2003-02-05  Martin Baulig  <martin@ximian.com>
16125
16126         * reflection.c (mono_image_build_metadata): Make this public,
16127         protect it against being called multiple times, don't create
16128         resources and don't build the compressed metadata here.
16129         (mono_image_create_pefile): Do this here.
16130
16131         * icall.c
16132         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16133
16134 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16135
16136         * socket-io.c: fixed bug #36322.
16137
16138 2003-02-06  Piers Haken <piersh@friskit.com>
16139
16140         * appdomain.[ch]:
16141         * class.h:
16142         * debug-mono-symfile.c:
16143         * icall.c:
16144         * loader.c:
16145         * mono-config.c:
16146         * monosn.c:
16147         * reflection.c:
16148         * socket-io.c: warning cleanups
16149
16150 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16151
16152         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16153         function. works like remoting invoke, but does a check for the Proxy first.
16154
16155 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16156
16157         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16158
16159 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16160
16161         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16162         array of pointers.
16163         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16164         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16165
16166         * object.c (mono_store_remote_field_new): used by the new jit
16167         instead of mono_store_remote_field
16168         (mono_load_remote_field_new): used by the new jit
16169         instead of mono_load_remote_field
16170
16171 2003-02-05  Patrik Torstensson
16172
16173         * appdomain.c: changed unload to take the domain id instead
16174         of domain
16175         
16176         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16177
16178
16179 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16180
16181         * appdomain.c: don't look for assemblies in ApplicationBase if
16182         PrivateBinPathProbe is set.
16183
16184 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16185
16186         * object.c: make the first argument in main_args contain the absolute
16187         path to the assembly. Fixes bug #37511.
16188
16189 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16190
16191         * icall.c: get correct UTC offset for countries not using daylight
16192         time saving. Fixes bug #30030.
16193
16194 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16195
16196         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16197         and 1 are the family).
16198
16199 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16200
16201         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16202
16203         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16204
16205 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16206
16207         * reflection.c: added support for SignatureHelper tokens, which is
16208         needed by the Calli opcode.
16209
16210         * reflection.h: track changes to SignatureHelper class.
16211
16212         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16213
16214 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16215
16216         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16217
16218 2003-02-03  Patrik Torstensson
16219         * appdomain.[c|h], domain.c : 
16220          - Added support for getting a domain via domain id
16221          - Support for setting and getting domain from System.AppDomain 
16222            (used in cross appdomain channel)
16223          - Added support for get/set for a MonoAppContext on a thread 
16224            (Context class in System.Runtime.Remoting.Contexts),
16225          - Removed hack in Get/SetData and ExecuteAssembly.
16226         
16227         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16228         the managed world to get control when a proxy is created.
16229
16230         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16231         
16232 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16233
16234         * icall.c
16235         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16236         Populate the codebase field as well.
16237
16238 2003-02-02  Martin Baulig  <martin@ximian.com>
16239
16240         * debug-mono-symfile.c
16241         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16242         (mono_debug_symfile_add_method): Allow interncalls.
16243
16244 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16245
16246         * icall.c: throw parse exception if strtod fails or the string is empty.
16247
16248 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16249
16250         * marshal.c: handle object type separately from defined
16251         class types.
16252
16253 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16254
16255         * marshal.c: handle NATIVE_LPSTR for strings when it's
16256         explicitly specified.
16257
16258 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16259
16260         * reflection.c, reflection.h, icall.c: setup the reflection
16261         handle cache for ModuleBuilders and AssemblyBuilders.
16262
16263 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16264
16265         * reflection.c (reflection_methodbuilder_to_mono_method): set
16266         pinvoke flag
16267
16268 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16269
16270         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16271
16272 2003-01-29  Dick Porter  <dick@ximian.com>
16273
16274         * threads.c: No need for the fake_thread kludge now that Thread
16275         doesn't run a class constructor
16276         
16277 2003-01-29  Dick Porter  <dick@ximian.com>
16278
16279         * threads.c: Use g_direct_hash instead of the rather bogus
16280         g_int_hash
16281
16282 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16283
16284         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16285         (fix pinvoke12.exe)
16286         (mono_marshal_get_struct_to_ptr): generate valid IL code
16287         (mono_marshal_get_ptr_to_struct): generate valid IL code
16288         (*): correctly set sig->pinvoke, we need to memdup the signature
16289         to do that
16290
16291 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16292
16293         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16294         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16295
16296 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16297
16298         * profiler.c: provide more callers information.
16299
16300 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16301
16302         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16303
16304         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16305
16306         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16307
16308 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16309
16310         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16311         exception instead of going into an infinite loop on dates which it 
16312         can't yet handle.
16313
16314         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16315         out-of-range exception if needed.
16316
16317         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16318         an implementation for an interface method and to override an inherited
16319         method at the same time. 
16320         Imagine a scenario when a virtual method is used to override a
16321         virtual abstract method in a parent class, and this same method 
16322         provides an implementation for an method inherited from an interface. 
16323         In this case, the interface resolution code will set im->slot, which 
16324         means that the virtual method override pass will skip this method 
16325         which means a pointer to the abstract method inherited from the parent
16326         will remain in the vtable of this non-abstract class.
16327
16328         * class.c: (mono_class_setup_vtable): continue search for a real 
16329         method if only an abstract method is found.     
16330
16331 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16332
16333         * reflection.c: add size to encoding for ByValStr and ByValArray
16334         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16335
16336 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16337
16338         * class.c (mono_class_setup_vtable): pass the override info as an
16339         argument.
16340
16341         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16342         correctly.
16343         
16344         * reflection.c (ensure_runtime_vtable); add support for method 
16345         overrides.
16346         
16347 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16348
16349         * reflection.c (resolution_scope_from_image): Hack to work to work with
16350         dynamic assemblies.
16351
16352         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16353         added a 'force_ref' argument to force this function to allways return 
16354         a TypeRef. This is needed by mono_image_get_memberref_token ().
16355         
16356 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16357
16358         * reflection.c (mono_image_get_type_info): interfaces really don't have
16359         a parent.
16360
16361         * reflection.c (mono_image_basic_init): fill out missing fields of
16362         image structure.
16363
16364         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16365         dynamic assemblies. This is required so dynamic assemblies show up in
16366         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16367         Type::GetType() etc. This is consistent with MS behaviour.
16368
16369         * image.c image.h reflection.c: add newly created classes to the name 
16370         cache so mono_class_get () will find them.      
16371
16372 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16373
16374         First part of changes to get IKVM.NET running under mono.
16375         
16376         * appdomain.h, appdomain.c: added new function 
16377         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16378         This function will call AppDomain::DoTypeResolve to do the actual work.
16379
16380         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16381         moved existing code dealing with dynamic tokens to a new function 
16382         called mono_reflection_lookup_dynamic_token (). This function will 
16383         raise TypeResolve events when appropriate. Since reflection.c is not 
16384         part of libmetadata, a new hook function called 
16385         mono_lookup_dynamic_token() is added to class.c which will call this.
16386
16387         * assembly.h assembly.c: make the invoke_load_hook function public,
16388         so it can be called for dynamic assemblies.
16389
16390         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16391
16392         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16393         type isn't found.
16394
16395         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16396         MonoGHashTable, since it contains pointers to objects which the GC 
16397         needs to track.
16398
16399         * assembly.c (search_loaded): remove unused variable.
16400         
16401 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16402
16403         * object.c: fixed issue exposed by gcc-generated IL programs
16404         that use RVA data for pointers.
16405
16406 2003-01-25  Martin Baulig  <martin@ximian.com>
16407
16408         * threads.c (start_wrapper): Moved the initialization of
16409         `start_func' above the mono_new_thread_init() call to which we
16410         pass it as argument.
16411
16412 2003-01-24  Martin Baulig  <martin@ximian.com>
16413
16414         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16415         the MonoThread pointer.
16416
16417 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16418
16419         * icall.c: Rename `PowImpl' to Pow.
16420
16421 2003-01-23  Dick Porter  <dick@ximian.com>
16422
16423         * threads.c (start_wrapper): Create a Thread object if needed, so
16424         the Main() thread can do the class initialisation in a subthread
16425         that has been set up to allow managed code execution.
16426
16427         Pass the thread ID instead of the MonoThread pointer to the thread
16428         start and attach callbacks.  This change is required, because the
16429         jit thread start callback must be called _before_ the Thread
16430         object can be created.
16431         
16432         (mono_thread_init): Removed much object creation code that is no
16433         longer needed.  No managed code is called from here now.
16434
16435         * object.c (mono_runtime_exec_managed_code): Create a subthread
16436         for Main, and call back to the runtime to use it.
16437         Set the exit code when Main exits.
16438
16439         * gc.c: Make sure domain finalisation happens in a subthread.
16440         Re-enable threaded GC, fixing bug 31333 (again).
16441
16442         * environment.c: System.Environment internall calls (so far just
16443         ExitCode is here, the others are still in icall.c)
16444
16445         * appdomain.c (mono_runtime_cleanup): All threads running managed
16446         code should have finished before mono_runtime_cleanup() is
16447         reached, so no need to clean up threads.
16448
16449 2003-01-22  Martin Baulig  <martin@ximian.com>
16450
16451         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16452         `gpointer func' arguments.      
16453         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16454         but added `MonoThread *thread' argument.
16455         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16456
16457         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16458         and pass it to the mono_thread_start_cb callback.
16459         (mono_install_thread_callbacks): New public function to install a
16460         set of callbacks which are set by the debugger.
16461         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16462
16463 2003-01-22  Martin Baulig  <martin@ximian.com>
16464
16465         * Makefile.am: Install debug-mono-symfile.h.
16466
16467 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16468
16469         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16470
16471 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16472
16473         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16474         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16475         (mono_array_class_get): correctly set access levels of arrays
16476
16477 2003-01-20      Patrik Torstensson
16478         * image.h (MonoAssemblyName): changed major, minor, build, revision
16479         from signed to unsigned.
16480
16481 2003-01-20  sean kasun <skasun@azstarnet.com>
16482
16483         * reflection.c (load_cattr_value): Now this handles
16484         MONO_TYPE_SZARRAY.  Fixes bug #35629
16485
16486 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16487
16488         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16489         integer value
16490
16491 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16492
16493         * decimal.c: fixed bug #26056.
16494
16495 2003-01-17  Martin Baulig  <martin@ximian.com>
16496
16497         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16498
16499 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16500
16501         * exception.[ch]:
16502         (mono_get_exception_type_initialization): new function.
16503
16504         * object.c: throw a TypeInitializationException when an exception is
16505         thrown invoking the class constructor.
16506
16507 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16508
16509         * reflection.c: fixed attribute reading.
16510
16511 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16512
16513         * icall.c:
16514         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16515         provided, look for the type in the calling assembly and then in
16516         mscorlib; if the assembly name is provided, only try that one.
16517
16518 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16519
16520         * object.c: register the vtable before there is a chance it's
16521         queried again recursively.
16522
16523 2003-01-13  Duncan Mak  <duncan@ximian.com>
16524
16525         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16526         gc-internal.h. 
16527         
16528 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16529
16530         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16531
16532 2003-01-11  Martin Baulig  <martin@ximian.com>
16533
16534         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16535         this to 20 for the release.
16536
16537 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16538
16539         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16540
16541         * loader.c (mono_method_get_marshal_info): bug fix
16542
16543         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16544         structures with explicit layout
16545
16546 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16547
16548         * profiler.c: made the output more readable (and sorted). 
16549         Added caller information for the allocation profiler.
16550
16551 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16552
16553         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16554
16555 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16556
16557         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16558         to get value types.
16559         
16560 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16561
16562         * object.c, profiler.h, profiler.c, profiler-private.h:
16563         Added object allocation profiler.
16564
16565 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16566
16567         * reflection.h, reflection.c: handle global methods.
16568         Compress blob entries.
16569
16570 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16571
16572         * marshal.c: fix compilation.
16573
16574 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16575
16576         * loader.c (mono_method_get_marshal_info): impl.
16577
16578         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16579
16580 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16581
16582         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16583         for reference types.
16584
16585 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16586
16587         * loader.c: fixed off by one error in loaded parameter names.
16588
16589 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16590
16591         * marshal.c (mono_marshal_get_icall_wrapper): like
16592         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16593         instead of a MonoMethod.
16594
16595 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16596
16597         * decimal.c: fixed bug #36537.
16598
16599 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16600
16601         * marshal.c: throw a missing method exception if a
16602         P/Invoke method is not found.
16603
16604 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16605
16606         * icall.c: allow a null this for constructors.
16607
16608 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16609
16610         * icall.c: raise the proper exceptions if the arguments to the
16611         internal Invoke are incorrect.
16612
16613 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16614
16615         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16616
16617 2003-01-03  Martin Baulig  <martin@ximian.com>
16618
16619         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16620
16621 2002-12-31  Martin Baulig  <martin@ximian.com>
16622
16623         * debug-mono-symfile.c: Completely rewrote the type section.
16624         Instead of using individual malloc()ed fields, we use one big
16625         continuous memory area and offsets into this area.
16626         See the comments in the source code for details.
16627
16628 2002-12-30  Martin Baulig  <martin@ximian.com>
16629
16630         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16631
16632 2002-12-30  Martin Baulig  <martin@ximian.com>
16633
16634         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16635         line number table in this data blob instead of using an external
16636         pointer.
16637
16638 2002-12-28  Martin Baulig  <martin@ximian.com>
16639
16640         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16641
16642 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16643
16644         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16645         as a boxed return type.
16646
16647 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16648
16649         * appdomain.c
16650         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16651         g_build_filename to properly get separators on the filename created.
16652
16653         * object.h: Small change, introduce MonoMarshalByRefObject to
16654         track the layout of that structure in the C# universe as we make
16655         changes there.
16656
16657 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16658
16659         * object.c: removed assert to allow static fields on interfaces.
16660         * loader.c: a TypeSpec may be used for any type, not just arrays.
16661
16662 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16663
16664         * class.c, class.h: added mono_class_array_element_size ().
16665         Ignore static methods in interfaces.
16666
16667 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16668
16669         * threads.c: fixed the build under cygwin.
16670
16671 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16672
16673         * reflection.c: handle nullref constants. Allocate keys for
16674         reflection handles with the GC.
16675
16676 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16677
16678         * threads.c, threads.h: added mono_thread_get_abort_signal()
16679         to get a suitable signal for thread abort.
16680
16681 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16682
16683         * metadata.c: fix handling of ExportedType table.
16684
16685 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16686
16687         * icall.c: added WriteWindowsDebugString internal call.
16688
16689 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16690
16691         * reflection.h: added fields to match C# implementation.
16692
16693 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16694
16695         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16696
16697 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16698
16699         * gc.h, gc-internal.h: Rename header for GC internal calls to
16700         gc-internal.h from gc.h as to not clash with Boehm GC having its
16701         header installed as <gc.h> in outside include paths.
16702         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16703         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16704
16705 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16706
16707         * icall.c: assign minor, build and revision in FillName.
16708
16709 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16710
16711         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16712         Added support for running code generated by Reflection.Emit.
16713
16714 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16715
16716         * appdomain.c: check for NULL argument in LoadFrom.
16717
16718 2002-12-10  Dick Porter  <dick@ximian.com>
16719
16720         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16721
16722 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16723
16724         * appdomain.c: fix buglet when building exe file name.  Handle full
16725         assembly name (needed after latest changes to AssemblyName).
16726         * image.c:
16727         (mono_image_close): free some hashtables.
16728
16729 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16730
16731         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16732         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16733         on some systems (redhat 7.3) 
16734
16735 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16736
16737         * threads.c: delete the critical section of a sync block,
16738         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16739
16740 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16741
16742         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16743
16744 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16745
16746         * appdomain.[ch]: handle the assembly preload event to try loading the
16747         assemblies using the paths we have in the current domain.
16748
16749         * assembly.[ch]: created an assembly preload hook that is called to try
16750         loading the assembly by other means that the ones provided here.
16751
16752         * domain.c: initialize the domain search path.
16753
16754         From now on, assemblies (TODO: except corlib and System) are loaded
16755         according to these rules when using mono_assembly_load ():
16756
16757                 1. It tries to load the assembly from the ApplicationBase
16758                 of the current domain appending .dll and .exe (TODO: have to
16759                 try loading from name/name.dll and name/name.exe).
16760
16761                 2. It tries the search path specified in PrivateBinPath for the
16762                 current domain (if any).
16763
16764                 3. Previous behavior.
16765
16766 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16767
16768         * icall.c: implemented GetInterfaceMap() related icall.
16769         * domain.c, loader.h: load MethodInfo in mono_defaults.
16770
16771 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16772
16773         * gc.c: disable the finalizer thread for now, untill all the issues
16774         with it are resolved.
16775
16776 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16777
16778         * string-icalls.c: handle embedded nulls in string ctor when the
16779         length is specified.
16780
16781 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16782
16783         * class.c: look for explicit interface implementation in parent
16784         classes, too.
16785
16786 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16787
16788         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16789
16790 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16791
16792         * gc.c: protect handles with a critical section.
16793
16794 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16795
16796         * icall.c:
16797         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16798         parameters. If no assembly specified, try getting the type from all
16799         the assemblies in the current domain, else, load the assembly and get
16800         the type from it.
16801
16802 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16803
16804         * marshal.c: applied patch from Aleksey Demakov that fixes
16805         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16806
16807 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16808
16809         * icall.c: fixed get_location.
16810
16811 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16812
16813         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16814         declarations to make it work with older gcc. 
16815
16816         * loader.c (mono_get_method): set signature->pinvoke for native calls
16817
16818 2002-11-20  Dick Porter  <dick@ximian.com>
16819
16820         * threads.c (mono_thread_init): Set the main thread's handle
16821
16822 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16823
16824         * gc.c: allow compilation without GC support. Changed to match the
16825         mono coding style.
16826
16827 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16828
16829         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16830
16831 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16832
16833         * reflection.c: set a public key token on the core assemblies.
16834
16835 2002-11-18  Dick Porter  <dick@ximian.com>
16836
16837         * threads.c: Split out some thread initialisation so that other
16838         files can set the start callback function.
16839
16840         * gc.c: Run finalisers in a separate thread, to avoid stack
16841         overflow.  Fixes bug 31333.
16842
16843         * appdomain.c: Set up GC finalisation thread.
16844
16845         * reflection.c: 
16846         * object.c: 
16847         * domain.c: Use gc.h macros for GC_malloc
16848         
16849 2002-11-15  Dick Porter  <dick@ximian.com>
16850
16851         * threadpool.c: 
16852         * threads.c:
16853         * appdomain.c: Removed mono_runtime_init_with_attach(),
16854         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16855         merging the extra parameter with the existing function.  Removed
16856         unneeded code in mono_thread_attach().
16857
16858 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16859
16860         * image.c (mono_image_loaded_by_guid): a method to get loaded
16861         images by guid. 
16862         (load_metadata_ptrs): we store the guid as string.
16863
16864 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16865
16866         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16867
16868         * metadata.c (mono_guid_to_string): imported method form Zoltan
16869         Varga (slightly modified)
16870
16871         * assembly.c (mono_assembly_open): load precompiled code
16872
16873         * loader.h (MonoMethod): we store the method token for use in the
16874         aot compiler. 
16875
16876 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16877
16878         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16879         the hook function called when an assembly is loaded.
16880         
16881         * domain.c: Modified file.
16882         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16883
16884         Fixes bug #33196.
16885
16886 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16887
16888         * reflection.c: Map PEFileKind to the value expected by the WinNT
16889         image loader. 
16890
16891 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16892
16893         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16894         Read until the buffer is filled completely.
16895
16896 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16897
16898         * icall.c: implemented MonoType.InternalGetEvent ().
16899
16900 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16901
16902         * appdomain.c: implemented InitAppDomainSetup. Delayed
16903         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16904         the entry_assembly.
16905
16906         * assembly.c: base_dir is now an absolute path ending with
16907         G_DIR_SEPARATOR.
16908
16909         * icall.c: modified get_location according to the above changes.
16910
16911         * object.c: init AppDomain.SetupInformation for the default domain after
16912         we have the entry assembly.
16913
16914         * domain.c: when unloading a domain, setup = NULL.
16915
16916 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16917
16918         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16919
16920 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16921
16922         * object.h, object.c: introduced mono_object_get_virtual_method ()
16923         to lookup the method invoked on an object when a callvirt is done on
16924         a method.
16925         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16926
16927 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16928
16929         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16930         current domain when loaded an assembly and failed to load it.
16931
16932         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16933
16934 2002-10-31  Dick Porter  <dick@ximian.com>
16935
16936         * icall.c: 
16937         * file-io.h: 
16938         * file-io.c: Return the error status in a parameter, as the
16939         GetLastError() value has long since been blown away if we try and
16940         look it up in a subsequent internal call invocation.  Delete the
16941         GetLastError() internal call, because it's useless.
16942
16943 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16944
16945         * class.[ch]: added cast_class to fix bug 29517
16946
16947 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16948
16949         * marshal.c: create valid IL code in the filter clause:
16950         the new JIT is less forgiving:-)
16951
16952 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16953
16954         * icall.c: removed get_property internal call.
16955
16956 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16957
16958         * appdomain.h domain.c: Added an ID to appdomains.
16959         
16960         * threads.c threads.h icall.c: Implement icall
16961         Thread:GetDomainID(), and remove unused icall 
16962         CurrentThreadDomain_internal.
16963
16964 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16965
16966         * icall.c: Don't recurse through the base types in GetConstructor.
16967         Fixes bug #32063. 
16968
16969 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16970
16971         * mempool.h, mempool.c: added mono_mempool_empty() and
16972         mono_mempool_stats().
16973
16974 2002-10-23  Dick Porter  <dick@ximian.com>
16975
16976         * file-io.c: 
16977         * file-io.h: 
16978         * icall.c: Added MonoIO.GetFileType internal call
16979
16980 2002-10-17  Dick Porter  <dick@ximian.com>
16981
16982         * appdomain.c (mono_runtime_cleanup): Don't signal the async
16983         delegate semaphore before waiting for all threads to finish,
16984         because new threads can also call async delegates.  Fixes bug
16985         32004.
16986
16987         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
16988         of 3 seconds, in case another async job is queued.  (This part is
16989         needed because the bug fix reintroduced the 3s exit lag.)  This
16990         makes the mono_runtime_shutdown flag superfluous.
16991
16992 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16993
16994         * reflection.c: include ehader size in method section headers.
16995         Really check for suplicated modules entries.
16996
16997 2002-10-17  Martin Baulig  <martin@gnome.org>
16998
16999         * debug-mono-symfile.c: Added back support for locals.
17000
17001 2002-10-14  Martin Baulig  <martin@gnome.org>
17002
17003         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17004         MONO_TYPE_VOID.
17005
17006 2002-10-14  Martin Baulig  <martin@gnome.org>
17007
17008         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17009         mono_class_get() instead of looking in the class cache. 
17010
17011 2002-10-13  Martin Baulig  <martin@gnome.org>
17012
17013         * debug-mono-symfile.c: Set version number to 28, include the
17014         signature in method names.
17015
17016 2002-10-13  Martin Baulig  <martin@gnome.org>
17017
17018         * debug-mono-symfile.h: Set version number to 27.
17019
17020 2002-10-11  Martin Baulig  <martin@gnome.org>
17021
17022         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17023
17024 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17025
17026         * metadata.c, metadata.h: added helper function to allocate signatures.
17027
17028 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17029
17030         * icall.c: added internal call to get the location of machine.config.
17031
17032 2002-10-08  Martin Baulig  <martin@gnome.org>
17033
17034         * debug-mono-symfile.c: Ignore classes with a pending init for the
17035         moment.
17036
17037 2002-10-03  Dick Porter  <dick@ximian.com>
17038
17039         * threads.c: Freebsd pthread_t is a pointer
17040
17041 2002-10-03  Dick Porter  <dick@ximian.com>
17042
17043         * socket-io.c: Implemented GetHostName_internal
17044
17045 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17046
17047         * mono-config.c:
17048         (mono_config_parse_file): don't leak the text.
17049
17050 2002-10-02  Martin Baulig  <martin@gnome.org>
17051
17052         * debug-mono-symfile.c: Added support for methods.
17053
17054 2002-10-01  Martin Baulig  <martin@gnome.org>
17055
17056         * debug-mono-symfile.c: Don't emit methods and line numbers for
17057         the dynamic symbol file, just write the type table.  We can easily
17058         have an external helper program which creates a symbol file for an
17059         IL file.        
17060
17061 2002-10-01  Dick Porter  <dick@ximian.com>
17062
17063         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17064         Only add the handle to the cleanup array when we're about to
17065         launch the thread.  Bug 31425 deadlocked when the test was run on
17066         mono under w32.
17067
17068 2002-10-01  Martin Baulig  <martin@gnome.org>
17069
17070         * debug-mono-symfile.c: Added support for properties.
17071
17072 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17073
17074         * reflection.c: unaligned store fix from Mark Crichton
17075         <crichton@gimp.org>.
17076
17077 2002-09-27  Martin Baulig  <martin@gnome.org>
17078
17079         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17080         New interncall.
17081
17082 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17083
17084         * assembly.h, assembly.c: use a sane API to hook into the assembly
17085         loading process instead of a useless special-purpouse hack
17086         (ngen needs a hook, too, for example).
17087
17088 2002-09-27  Dick Porter  <dick@ximian.com>
17089
17090         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17091         io-layer can set up some process handle info.  Not needed on w32,
17092         but doesn't hurt either.
17093
17094         * process.c: Pass the program name in the second parameter to
17095         CreateProcess, so the path is searched.  Include the working
17096         directory. Implemented process name, process enumeration, and some
17097         process detail internal calls.
17098         
17099         * icall.c: Added internal calls for process lookup, and some
17100         process details
17101
17102 2002-09-26  Martin Baulig  <martin@gnome.org>
17103
17104         * assembly.c (mono_install_open_assembly_hook): New global
17105         function to install a function to be invoked each time a new
17106         assembly is loaded.
17107         (mono_assembly_open): Run this callback function if set.
17108
17109         * debug-mono-symfile.c: Put back line numbers for the dynamic
17110         symbol file and also record the .il file as source file.  This
17111         allows us to install the temporary symbol file as `file.dbg' just
17112         like a compiler-generated one.
17113
17114 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17115
17116         * Corrected typo in gc.c (BOHEM vs BOEHM).
17117
17118 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17119
17120         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17121         GetProperties. Also avoid calling g_slist_length in GetProperties and
17122         GetMethods.
17123
17124 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17125
17126         * reflection.c: avoid unaligned stores (bug spotted by
17127         Mark Crichton  <crichton@gimp.org>).
17128
17129 2002-09-25  Martin Baulig  <martin@gnome.org>
17130
17131         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17132         instead of guint64 for addresses and added prologue/epilogue info.
17133
17134 2002-09-25  Martin Baulig  <martin@gnome.org>
17135
17136         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17137         store line number info.  For the dynamic symbol file, we only need
17138         to provide the JIT generated dynamic line number info for the dynamic
17139         symbol file.
17140
17141 2002-09-25  Martin Baulig  <martin@gnome.org>
17142
17143         * debug-mono-symfile.h: Incremented version number.
17144
17145 2002-09-24  Martin Baulig  <martin@gnome.org>
17146
17147         * class.c (mono_debugger_class_init_func): New global function
17148         pointer variable.
17149         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17150         call it.
17151
17152         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17153         function.  This is called via the mono_debugger_class_init_func
17154         hook to add all types to the dynamic type table.
17155         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17156         from its metadata token.
17157
17158         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17159         New interncall for the debugger.
17160
17161 2002-09-24  Nick Drochak <ndrochak@gol.com>
17162
17163         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17164         before using it in case it is null.
17165         
17166 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17167
17168         * metadata.c: allow custom modifiers in local var signatures
17169         (bug spotted by Zoltan Varga).
17170
17171 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17172
17173         * class.c: deal with the <Module> class that may have a NULL vtable.
17174         Eliminate warnings.
17175
17176 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17177
17178         * image.c, image.h: more strong name helpers.
17179         * monosn.c: more work: convert pem keys to cryptoapi format.
17180
17181 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17182
17183         * string-icalls.c: speedup IndexOf.
17184
17185 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17186
17187         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17188
17189 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17190
17191         * icall.c: cleanup: use mono_object_domain ().
17192
17193 2002-09-23  Martin Baulig  <martin@gnome.org>
17194
17195         * debug-mono-symfile.c: Improved type support.
17196
17197 2002-09-22  Martin Baulig  <martin@gnome.org>
17198
17199         * debug-mono-symfile.c: Added support for reference types and strings.
17200
17201 2002-09-22  Martin Baulig  <martin@gnome.org>
17202
17203         * debug-mono-symfile.c: Started to work on the type table.
17204
17205 2002-09-21  Martin Baulig  <martin@gnome.org>
17206
17207         * debug-mono-symfile.c: Largely reworked the symbol table format.
17208         The symbol table is now incrementally updated each time a new
17209         method is added.  We're now also using our own magic and version
17210         so that you don't need to recompile all your classes if the
17211         dynamic table changes.
17212         (mono_debug_update_mono_symbol_file): Removed.
17213         (mono_debug_symfile_add_method): New function to add a method.
17214
17215 2002-09-21  Martin Baulig  <martin@gnome.org>
17216
17217         * icall.c
17218         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17219         New interncall.
17220
17221         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17222         New interncall to get a method from its metadata token.
17223
17224 2002-09-21  Martin Baulig  <martin@gnome.org>
17225
17226         * debug-mono-symfile.c: Create type table.
17227
17228 2002-09-20  Martin Baulig  <martin@gnome.org>
17229
17230         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17231
17232 2002-09-20  Martin Baulig  <martin@gnome.org>
17233
17234         * debug-mono-symfile.c: Provide information about params and locals.
17235
17236 2002-09-20  Martin Baulig  <martin@gnome.org>
17237
17238         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17239         New interncall.
17240
17241         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17242         interncall to get a method from its metadata token.
17243
17244 2002-09-20  Martin Baulig  <martin@gnome.org>
17245
17246         * debug-mono-symfile.c: Added a few checks for method->header
17247         being non-NULL.  This should never happen, but for the moment
17248         let's use a g_warning() rather than a g_assert().
17249
17250 2002-09-19  Mark Crichton  <crichton@gimp.org>
17251
17252         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17253         even if support for it isn't present.  Added an #ifdef to fix this.
17254
17255         * socket-io.c: Added checks back for Solaris support.
17256
17257 2002-09-19  Martin Baulig  <martin@gnome.org>
17258
17259         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17260         changes in the symbol file format.
17261
17262 2002-09-18  Martin Baulig  <martin@gnome.org>
17263
17264         * debug-mono-symfile.c: Set version number to 21.
17265
17266 2002-09-18  Dick Porter  <dick@ximian.com>
17267
17268         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17269         on netbsd.  Fixes bug 30051.
17270
17271 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17272
17273         * reflection.c:
17274         (set_version_from_string): little fix.
17275
17276 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17277
17278         * monosn.c, Makefile.am: added strong name utility.
17279         * reflection.h, reflection.c: implemented delayed signing,
17280         locale, version and hash id assembly attributes.
17281
17282 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17283
17284         * loader.c, metadata.c: load param attributes in signatures.
17285
17286 2002-09-16  Martin Baulig  <martin@gnome.org>
17287
17288         * debug-mono-symfile.c: Added string table with all method names.
17289
17290 2002-09-14  Martin Baulig  <martin@gnome.org>
17291
17292         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17293         fast method lookup.
17294
17295 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17296
17297         * reflection.c: record the public key token of referenced assemblies.
17298
17299 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17300
17301         * image.c, image.h: added functions to get the strong name and the
17302         public key of an assembly.
17303         * pedump.c: use them.
17304
17305 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17306
17307         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17308
17309 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17310
17311         * marshal.c (mono_marshal_get_managed_wrapper): Added
17312         MONO_TYPE_BOOLEAN 
17313
17314 2002-09-11  Martin Baulig  <martin@gnome.org>
17315
17316         * gc.c: Call GC_unregister_disappearing_link() on all links when
17317         finalizing them, this is necessary to aviod a crash in boehm's
17318         finalize handler.
17319
17320 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17321
17322         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17323         nick@chemlab.org.
17324
17325 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17326
17327         * icall.c: implemented MonoType::Module.
17328         * reflection.c, reflection.h: mono_module_get_object () from
17329         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17330
17331 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17332
17333         * icall.c: ignore overridden methods in GetMethods ().
17334         Fix for FieldInfo::SetValue().
17335         * object.c: handle float/double in runtime invoke.
17336
17337 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17338
17339         * object.c: allow a constructor to be called again on an object.
17340
17341 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17342
17343         * class.h, class.c: move field layout code to it's own function and
17344         export it. Get an interface id earlier. Move fields in MonoClass
17345         so they are more cache friendly and align the bitfields.
17346         * loader.c: temporary handle get_param_names() for a runtime method.
17347         * reflection.c, reflection.h: more code to handle runtime creation of
17348         types.
17349
17350 2002-09-09  Martin Baulig  <martin@gnome.org>
17351
17352         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17353         signature with the pinvoke field being set for the actual call.
17354
17355 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17356
17357         * icall.c: removed some unused icalls. Start of map of glib charsets
17358         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17359
17360 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17361
17362         * debug-helpers.c: break infinite loop (found and fixed by
17363         Holger Arnold <harnold@gmx.de>).
17364
17365 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17366
17367         * icall.c: target may be null in create_delegate.
17368
17369 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17370
17371         * marshal.c: handle a boolean return type.
17372
17373 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17374
17375         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17376
17377 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17378
17379         * gc.c: fix weakreferences.
17380
17381 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17382
17383         * icall.c: added icall to get default codepage.
17384
17385 2002-09-03  Dick Porter  <dick@ximian.com>
17386
17387         * threads.h: 
17388         * threads.c: Use MonoThread instead of MonoObject where
17389         apropriate.
17390
17391         Store running thread objects in a hash table, so that we have all
17392         the info to hand when waiting for them to finish
17393         (means we don't need OpenThread() any more, so mingw builds should
17394         be fully functional again.)
17395
17396         * verify.c:
17397         * object.h: Added thread ID to MonoThread
17398
17399 2002-09-03  Martin Baulig  <martin@gnome.org>
17400
17401         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17402
17403 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17404
17405         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17406
17407 2002-09-03  Martin Baulig  <martin@gnome.org>
17408
17409         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17410         argument to store the end address of the disassembled instruction.
17411
17412         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17413         here from debug-symfile.h.
17414         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17415         JIT into this struct.
17416         (MonoSymbolFile): Added `char *image_file' field.
17417         (MonoDebugGetMethodFunc): Removed.
17418         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17419         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17420         (mono_debug_find_method): New method.
17421
17422         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17423         create a full symbol file.
17424         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17425         and static symbol files.
17426         (mono_debug_find_method): The symbol file keeps an internal method hash,
17427         call this to get a MonoDebugMethodInfo from a MonoMethod.
17428
17429         * debug-symfile.[ch]: Removed.
17430
17431 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17432
17433         * image.c (do_mono_image_open): Remove linker version check.
17434
17435 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17436
17437         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17438         wrappers for instance methods.
17439         
17440 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17441
17442         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17443
17444 2002-08-28  Dick Porter  <dick@ximian.com>
17445
17446         * Makefile.am: Export HOST_CC for w32 builds
17447
17448 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17449
17450         * file-io.c process.c: MonoString are null terminated, no
17451         need for mono_string_to_utf16() anymore.
17452
17453 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17454
17455         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17456
17457 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17458
17459         * icall.c, reflection.h: speedup System.MonoType.
17460
17461 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17462
17463         * reflection.c: allow null as the value of a string argument in
17464         custom attributes constructors.
17465
17466 2002-08-27  Martin Baulig  <martin@gnome.org>
17467
17468         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17469         `trampoline_address' field.
17470
17471 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17472
17473         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17474         check (fixes bug #29486) 
17475
17476 2002-08-27  Martin Baulig  <martin@gnome.org>
17477
17478         * debug-mono-symfile.c: Changed the file format in a way that allows us
17479         open it read-only and to use a specially malloced area for all the
17480         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17481         debugging IL code and there is no MCS generated symbol file for it.
17482
17483 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17484
17485         * object.c: added a define for a good string and array
17486         creation speedup (not enabled by default because we need to deal with
17487         the synch stuff).
17488
17489 2002-08-26  Martin Baulig  <martin@gnome.org>
17490
17491         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17492         function to create a dynamic symbol file.  This is used by the
17493         debugger to create a symbol file for IL code on-the-fly.
17494
17495 2002-08-26  Martin Baulig  <martin@gnome.org>
17496
17497         * loader.c (mono_lookup_pinvoke_call): Include the error message
17498         from g_module_error() in the error message.
17499
17500 2002-08-24  Martin Baulig  <martin@gnome.org>
17501
17502         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17503         function to update the symbol file.  The symbol file is mmap()ed
17504         writable, but private.  This allows us to install the symbol file
17505         together with the assembly.
17506
17507 2002-08-24  Martin Baulig  <martin@gnome.org>
17508
17509         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17510         but they can read the new symbol file format which mcs is now creating.
17511
17512         * debug-symfile.c (mono_debug_find_source_location): Moved to
17513         debug-mono-symfile.c; this is now operating on the new symbol file.
17514
17515 2002-08-23  Martin Baulig  <martin@gnome.org>
17516
17517         * debug-helpers.c (mono_method_desc_from_method): New function to get
17518         a MonoMethodDesc from a MonoMethod.
17519
17520 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17521
17522         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17523         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17524
17525 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17526
17527         * string-icalls.[ch]: make helper methods static.
17528
17529 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17530
17531         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17532         types to it and to SetValueInternal.
17533
17534         * object.c: Moved handle_enum label to its proper place. This was the
17535         f... bug! ;-)
17536
17537         This time i compiled mcs and gtk-sharp and they both work.
17538
17539 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17540
17541         * icall.c: reverted partially my previous patch until 
17542         object.c:set_value handles enums correcly.
17543
17544 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17545
17546         * icall.c:
17547         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17548         (ves_icall_System_Environment_get_MachineName): removed warning when
17549         compiling under cygwin.
17550
17551 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17552
17553         * object.c: fixed field_get_value() for reference types.
17554
17555 2002-08-22  Dick Porter  <dick@ximian.com>
17556
17557         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17558         Don't free a buffer while it's still needed.  Patch from Jonathan
17559         Liger <Jonathan.liger@wanadoo.fr>
17560
17561 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17562
17563         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17564         internal call.
17565
17566 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17567
17568         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17569         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17570
17571         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17572         we call unmanaged code which throws exceptions.
17573
17574 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17575
17576         * appdomain.h: added per-domain entry_assembly.
17577         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17578         arguments.
17579         * icall.c: Assembly::GetEntryAssembly icall.
17580         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17581         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17582
17583 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17584
17585         * appdomain.h, gc.c: added mono_domain_finalize ().
17586
17587 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17588
17589         * object.c:
17590         (mono_print_unhandled_exception): changed g_warning by g_printerr
17591         because g_log has a 1024 characters limit (yeah, i got a big stack
17592         trace). Don't print exception name, that should be in ToString 
17593         returned string.
17594
17595 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17596
17597         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17598         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17599
17600 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17601
17602         * object.c:
17603         (mono_print_unhandled_exception): after previous commit, i realized
17604         that MS calls ToString on the exception. I changed this function to
17605         do that. This way we get stack_trace for free.
17606
17607 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17608
17609         * object.c:
17610         (mono_print_unhandled_exception): invoke Message property instead of
17611         getting 'message' field from Exception. Don't allocate memory for
17612         'trace' and 'message' if not needed.
17613
17614 2002-08-18  Dick Porter  <dick@ximian.com>
17615
17616         * unicode.c: Fix asserts to match Encoder.cs checks
17617
17618 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17619
17620         * marshal.c: fix unaligned store issue and a few wrong
17621         opcode argument types.
17622
17623 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17624
17625         * icall.c: added GetUninitializedObjectInternal internal call.
17626
17627 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17628
17629         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17630         to the right domain.
17631
17632 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17633
17634         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17635
17636         * class.c (class_compute_field_layout): set blittable to false for Strings
17637
17638         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17639
17640 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17641
17642         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17643         first chunk of code to create types at runtime. Code to
17644         handle ReflectedType/DeclaringType. Make reflection handles
17645         domain specific.
17646
17647 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17648
17649         * class.c: set correct name in arrays.
17650
17651 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17652
17653         * appdomain.c (mono_domain_transfer_object): make it work with
17654         valuetypes. bug fixes.
17655
17656 2002-08-12  Dick Porter  <dick@ximian.com>
17657
17658         * object.h: Rename some parameters to avoid c++ keywords (Patch
17659         from Joseph Wenninger <kde@jowenn.at>)
17660
17661 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17662
17663         * icall.c: added icall to implement Assembly.GetFile*.
17664
17665 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17666
17667         * reflection.h, reflection.c: code to embed managed resources.
17668
17669 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17670
17671         * class.c: move all the type size stuff into
17672         class_compute_field_layout().
17673
17674 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17675
17676         * class.c: ensure enums have always the correct instance size.
17677         * unicode.c: remove wrong assert.
17678
17679 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17680
17681         * assembly.c: fix mem corruption issue.
17682         * image.h, image.c: added mono_image_get_resource () to access
17683         managed resources.
17684         * icall.c: implemented Assembly.EntryPoint property and some
17685         Managed Resources related internalcalls.
17686
17687
17688 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17689
17690         * image.c, image.h: impemented mono_image_get_entry_point ().
17691         * appdomain.c: use mono_image_get_entry_point.
17692
17693 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17694
17695         * reflection.c: support the object type argument when loading
17696         custom attributes.
17697
17698 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17699
17700         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17701         String as return type.
17702
17703 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17704
17705         * reflection.c: fix encoding of named args for custom attrs to match
17706         the ms implementation. Read them back when instantiating custom
17707         attributes.
17708
17709 2002-08-02  Radek Doulik  <rodo@ximian.com>
17710
17711         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17712         by Dietmar as quick fix
17713         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17714         16 as stack size, used on more places as quick fix before Dietmar
17715         will fix it properly
17716
17717 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17718
17719         * object.h, object.c: added accessors for fields and properties.
17720
17721 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17722
17723         * class.c, class.h: made mono_class_get_field_from_name ()
17724         loop on parent types.
17725         Added mono_class_get_property_from_name ().
17726
17727 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17728
17729         * class.c, class.h: move the code to setup the type vtable in its own
17730         function so that it can be reused also for types created at runtime.
17731         Eliminate the "class" identifier from the header file.
17732         * reflection.c: setup the vtable for enums so that we can create
17733         objects for use in SetConstant ().
17734
17735 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17736
17737         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17738         instead of the delegate itself as this pointer (bug #28383)
17739
17740 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17741
17742         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17743         conversions.
17744
17745 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17746
17747         * loader.c: don't set the pinvoke bit on icalls.
17748
17749 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17750
17751         * debug-helpers.c (mono_method_full_name): only print a number to
17752         indicate wrapper type (so that the output is more readable in traces).
17753
17754 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17755
17756         * class.c (mono_class_init): include method override patch from Paolo
17757
17758 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17759
17760         * icall.c: fixed GetTypeCode().
17761
17762 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17763
17764         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17765         use real delegate invoke function to make it work with multicast
17766         delegates (fix bug# 28291).
17767
17768 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17769
17770         * object.c: load constant strings.
17771
17772 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17773
17774         * reflection.c: no magic numbers.
17775         * tabledefs.h: security action enum.
17776
17777 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17778
17779         * assembly.c: fix possible memory corruption.
17780
17781 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17782
17783         * reflection.h, reflection.c: added support for linking resources.
17784         * verify.c: check we have an updated corlib.
17785
17786 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17787
17788         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17789         string arrays.
17790         (mono_marshal_string_array): null terminate unmanaged string arrays.
17791         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17792
17793 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17794
17795         * icall.c: Type.GetType () can now return also types from the
17796         calling assembly.
17797
17798 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17799
17800         * loader.h, loader.c: stack walking support.
17801         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17802         GetCallingAssembly.
17803
17804 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17805
17806         * marshal.c: added optimisations for blittable types 
17807
17808         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17809         (mono_class_setup_mono_type): set blittable attribute for single
17810         and double.
17811
17812         * marshal.c (mono_string_utf8_to_builder): impl.
17813         (mono_string_builder_to_utf8): impl.
17814         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17815
17816 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17817
17818         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17819         (mono_marshal_get_managed_wrapper): impl. byref types
17820
17821 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17822
17823         * icall.c:
17824         (search_method): don't display debug message. 
17825
17826 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17827
17828         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17829
17830 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17831
17832         * appdomain.c: set the missing filename when throwing exception.
17833
17834 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17835
17836         * metadata.c (mono_type_size): code cleanup
17837         (mono_type_stack_size): removed some test code
17838
17839 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17840
17841         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17842         mono_get_exception_file_not_found now.
17843
17844         * exception.c (mono_exception_from_name_two_strings): New version
17845         that will call a constructor with two string arguments. 
17846         (mono_get_exception_file_not_found): New helper routine, used to
17847         report file-not-found errors.
17848
17849 2002-07-20  Dick Porter  <dick@ximian.com>
17850
17851         * process.h:
17852         * process.c: Pass file handles to CreateProcess
17853         
17854         * icall.c:
17855         * file-io.h:
17856         * file-io.c: Implemented CreatePipe
17857
17858 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17859
17860         * metadata.c (mono_get_param_info): set alignment for value types
17861
17862 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17863
17864         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17865         Constify mono_domain_assembly_open().
17866         * loader.c: handle null namespace in icalls.
17867
17868 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17869
17870         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17871         (emit_str_to_ptr_conv): marshal object as structs
17872
17873         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17874
17875         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17876
17877 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17878
17879         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17880         (mono_marshal_get_native_wrapper): we an now return value types
17881
17882 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17883
17884         * verify.c: more checks implemented.
17885
17886 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17887
17888         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17889         (fix bug #27695)
17890         (mono_marshal_get_native_wrapper): allow byref arguments
17891         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17892         impl. PtrToStringXXX methods
17893         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17894         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17895         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17896         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17897         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17898
17899 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17900
17901         * reflection.c: fix buglet in parsing an assembly name.
17902
17903 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17904
17905         * marshal.c (emit_ptr_to_str_conv): first impl.
17906
17907 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17908
17909         * object.c, class.h: cache the vtable in the class as suggested by
17910         vargaz@freemail.hu (Zoltan Varga).
17911
17912 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17913
17914         * class.h, loader.c: added mono_field_from_token().
17915         * verify.c: first cut of type checking code.
17916
17917 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17918
17919         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17920
17921 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17922
17923         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17924         (fix bug #27782)
17925         (mono_marshal_get_remoting_invoke): impl.
17926         (mono_delegate_begin_invoke): impl.
17927         (mono_mb_emit_save_args): impl.
17928         (mono_delegate_end_invoke): impl.
17929         (mono_marshal_get_delegate_begin_invoke):
17930         (mono_marshal_get_delegate_end_invoke):
17931         (mono_marshal_get_delegate_invoke): generate a special name for
17932         those methods (including the signature) and associate them whith
17933         the delegate class. 
17934
17935 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17936
17937         * reflection.[ch]: 
17938         (mono_reflection_type_from_name): now it has a MonoImage parameter
17939         which is used as the default image to search the type in. If the image
17940         is NULL or getting the type from it fails, it defaults to corlib.
17941
17942         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17943         new parameter.
17944
17945 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17946
17947         * reflection.c: update the parameter table index.
17948
17949 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17950
17951         * domain.c: don't include the mark byte in the string hash.
17952
17953 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17954
17955         * icall.cs: icall for Type.GetTypeCode ().
17956         * verify: a couple of fixes and disabled local initialization checks.
17957
17958 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
17959
17960         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
17961
17962         * debug-helpers.c (mono_method_full_name): print the type of the
17963         runtime wrapper
17964
17965         * metadata.c (mono_signature_hash): a hash function for signatures
17966         (mono_signature_hash): better hash algorithm
17967
17968         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
17969
17970         * debug-helpers.c (mono_method_full_name): this can now generate
17971         method names with signatures
17972
17973         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
17974         method dont have this pointers.
17975
17976 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17977
17978         * reflection.c: fixup typebuilder tokens.
17979         * image.c: fix buglet.
17980         * marshal.h: remove whitespace.
17981         * metadata.h, metadata.c: reinstate code that was removed.
17982         * verify.c: handle catch directives and fix another couple of bugs.
17983
17984 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
17985
17986         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
17987         (mono_marshal_get_native_wrapper): make it comp. with the old code
17988         (mono_marshal_get_native_wrapper): support boolean
17989         (mono_marshal_get_managed_wrapper): support more types
17990
17991 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
17992
17993         * class.c (class_compute_field_layout): compute class->blittable attribute.
17994
17995 2002-07-09  Dick Porter  <dick@ximian.com>
17996
17997         * threads.c: Make the thread cleaning up cope with threads that
17998         call ExitThread()
17999
18000 2002-07-08  Radek Doulik  <rodo@ximian.com>
18001
18002         * reflection.c (method_encode_code): use non-translated values to
18003         compute finally_start, this fixes exception handling on ppc, yay!
18004
18005         * decimal.h (struct signscale): fix endianess
18006
18007 2002-07-07  Radek Doulik  <rodo@ximian.com>
18008
18009         * reflection.c: swap box_val and not val
18010
18011 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18012
18013         * reflection.c, reflection.h: handle full assembly info in type name.
18014         Handle Type arguments when loading custom attributes.
18015         * icall.c: updated to use new mono_reflection_type_from_name () method.
18016
18017 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18018
18019         * loader.c:
18020         (method_from_memberref): also print assembly name when method not found.
18021
18022 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18023
18024         * icall.c:
18025         (ves_icall_TypeGetProperties): fixed bug #27473. 
18026
18027 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18028
18029         * reflection.c: display image name and token when cannot find the
18030         .ctor for an attribute.
18031
18032 2002-07-05  Martin Baulig  <martin@gnome.org>
18033
18034         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18035
18036 2002-07-04  Dick Porter  <dick@ximian.com>
18037
18038         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18039         compile on mingw.  This will cause mingw builds to not wait for
18040         subthreads to terminate after the main thread does.  I've lodged a
18041         bug with the mingw developers for them to wrap OpenThread().
18042
18043 2002-07-03  Dick Porter  <dick@ximian.com>
18044
18045         * threads.c: Store thread IDs instead of handles, because
18046         GetCurrentThread() returns a pseudohandle and therefore stores
18047         useless values.  mono_thread_cleanup() continues checking the
18048         array of threads until it is empty, to cope with subthreads
18049         spawning new threads after the main thread has finished.
18050
18051         * profiler.h:
18052         * profiler.c:
18053         * profiler-private.h: Pass the thread ID to thread profiler
18054         functions, instead of a handle
18055
18056 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18057
18058         * verify.c: fixes to make it more usable.
18059         * pedump.c: added --verify code to verify IL code in an assembly.
18060
18061 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18062
18063         * reflection.c: turn errors into warnings to allow compiling corlib.
18064
18065 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18066
18067         * reflection.c: add special cases to compile corlib.
18068
18069 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18070
18071         * reflection.c: handle properties with only a set method.
18072
18073 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18074
18075         * opcodes.h: add enum with opcodes in opval order.
18076
18077 2002-07-01  Dick Porter  <dick@ximian.com>
18078         
18079         * object.h:
18080         * object.c (mono_runtime_run_main): Removed unneeded argument
18081
18082 2002-06-28  Martin Baulig  <martin@gnome.org>
18083
18084         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18085
18086 2002-06-27  Dick Porter  <dick@ximian.com>
18087
18088         * threads.c: Store the handle in both the parent thread and in the
18089         subthread, to minimise the time between starting a new thread and
18090         storing its ID.
18091
18092 2002-06-26  Dick Porter  <dick@ximian.com>
18093
18094         * appdomain.c (mono_runtime_cleanup): Close the socket library
18095         after all the threads have finished, not before
18096
18097 2002-06-26  Martin Baulig  <martin@gnome.org>
18098
18099         * debug-symfile.c (mono_debug_find_source_location): Added
18100         `guint32 *line_number' argument.  If it's not NULL, store the line number
18101         there and return the file name without the line number.
18102
18103 2002-06-25  Dick Porter  <dick@ximian.com>
18104
18105         * icall.c:
18106         * process.h:
18107         * process.c: Process forking and other support functions
18108
18109 2002-06-25  Dick Porter  <dick@ximian.com>
18110
18111         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18112         things dont happen when the image is closed.
18113         (mono_image_lookup_resource): Walk the resource section looking
18114         for a particular entry
18115
18116         * cil-coff.h: PE resource section decoding
18117
18118 2002-06-25  Dick Porter  <dick@ximian.com>
18119         
18120         * assembly.h:
18121         * assembly.c: 
18122         (mono_assembly_foreach): Accessor functions to walk the list of
18123         loaded assemblies
18124         (mono_assembly_set_main):
18125         (mono_assembly_get_main): Process methods need to know which
18126         assembly is the "main" one
18127
18128         * object.c (mono_runtime_run_main): Record the main assembly
18129
18130         * debug-helpers.c: Fix typo
18131
18132 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18133
18134         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18135         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18136
18137 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18138
18139         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18140
18141 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18142
18143         * image.c (do_mono_image_open): Initialize reference count,
18144         otherwise we leak the MonoImage.
18145
18146 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18147
18148         * reflection.c: small tweak to handle self-hosting.
18149
18150 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18151
18152         * reflection.c: fix type name parse code.
18153
18154 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18155
18156         * reflection.c: break out of the loop.
18157         * image.c: special case corlib.
18158
18159 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18160
18161         * reflection.c: add all the custom attrs at the end to ensure the
18162         ctors have been properly initialized when the attributes are defined
18163         in the current assembly.
18164
18165 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18166
18167         * reflection.c: handle correctly multiple-nested types.
18168
18169 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18170
18171         * row-indexes.h: fix typos.
18172         * reflection.c: adjust for typos and fix method_def_or_ref
18173         encoding in MethodImpl table.
18174
18175 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18176
18177         * reflection.c: fix entry point patching (thanks Serge!).
18178
18179 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18180
18181         * verify.c: add check for System.Exception
18182
18183 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18184
18185         * image.c, class.c: minifix for code just c&p'ed.
18186         * reflection.c: warning fix.
18187         * object.h, loader.h, domain.c: load also StringBuilder.
18188
18189 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18190
18191         * marshal.h, marshal.c: some support code to handle complex marshaling.
18192
18193 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18194
18195         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18196         Better signatures with vtable error dump.
18197
18198 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18199
18200         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18201
18202 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18203
18204         * icall.c (ves_icall_Type_GetField): impl.
18205
18206 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18207
18208         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18209         to retrieve a marshal description blob for a field or param.
18210
18211 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18212
18213         * reflection.h, reflection.c: change order of nested type emission
18214         to avoid table corruption. The NestedTypes table is sorted.
18215         * icall.c: change order of GetConstructor results to workaround mcs bug.
18216
18217 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18218
18219         * reflection.h, reflection.c: handle field and param marshal
18220         information.
18221
18222 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18223
18224         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18225
18226 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18227
18228         * reflection.c: fix call convention.
18229
18230 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18231
18232         * reflection.h, reflection.c: mono_image_get_memberref_token()
18233         takes a type instead of a class, now. Added
18234         mono_image_get_array_token() to create tokens for the special
18235         multi-dim array methods.
18236
18237 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18238
18239         * assembly.c: handle modules (no assembly table). Split
18240         loading references in its own function.
18241         * class.c: handle moduleref resolution scope.
18242         * image.c, image.h: cache module name in image.
18243
18244 2002-06-07  Martin Baulig  <martin@gnome.org>
18245
18246         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18247         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18248
18249 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18250
18251         * icall.c: more signature fixes that used uint instead of int.
18252
18253 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18254
18255         * reflection.c: fixed signature of field refs.
18256
18257 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18258
18259         * class.c, reflection.c: handle typerefs of nested types
18260         (both on read and when writing files).
18261
18262 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18263
18264         * icall.c: fix method signatures that tried to workaround the previous
18265         typo, d'oh!
18266
18267 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18268
18269         * debug-helpers.c: fix typo.
18270
18271 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18272
18273         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18274         rewrote the PE/COFF writing code (our programs are understood by the
18275         ms runtime, now).
18276
18277 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18278
18279         * gc.c, gc.h, icall.c: weakreference support.
18280
18281 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18282
18283         * Makefile.am, mono-config.c: use $(sysconfdir).
18284
18285 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18286
18287         * icall.c: changed default precision of Double.ToString() to 15.
18288         Fixed memory leak. Unified with Single.ToString.
18289
18290 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18291
18292         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18293
18294 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18295
18296         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18297         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18298         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18299         and myself.
18300
18301 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18302
18303         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18304
18305 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18306
18307         * reflection.c, socket-io.c: more compilation fixes.
18308
18309 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18310
18311         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18312         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18313         unicode.c: warning and compiler compatibility fixes.
18314
18315 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18316
18317         * class.h, metadata.c: fixed warnings/compilation errors.
18318
18319 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18320
18321         * Makefile.am, mono-config.c, mono-config.h: configuration file
18322         support routines.
18323         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18324         config file. Export methods to insert and lookup mappings.
18325
18326 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18327
18328         * reflection.c: handle types and boxed objects in custom attr
18329         constructors.
18330
18331 2002-05-30  Martin Baulig  <martin@gnome.org>
18332
18333         * debug-symfile.c
18334         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18335
18336 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18337
18338         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18339         to lookup the implmap row for a P/Invoke method.
18340         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18341         P/Invoke method from the runtime on an as needed basis.
18342
18343 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18344
18345         * metadata.c (mono_metadata_parse_signature): impl.
18346
18347 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18348
18349         * class.c: handle .pack directive.
18350
18351 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18352
18353         * object.c: initialize static fields with RVA data.
18354
18355 2002-05-25  Martin Baulig  <martin@gnome.org>
18356
18357         * debug-symfile.c
18358         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18359
18360 2002-05-24  Martin Baulig  <martin@gnome.org>
18361
18362         * debug-symfile.c
18363         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18364         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18365         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18366
18367 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18368
18369         * object.c: special case string ctros in invoke.
18370         * gc.c: silly whitespace changes.
18371
18372 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18373
18374         * threadpool.[ch]: impl. a threadpool that can
18375         be used by mint and mono.
18376
18377 2002-05-22  Martin Baulig  <martin@gnome.org>
18378
18379         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18380         The first argument is now a `MonoReflectionModuleBuilder *', the return
18381         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18382         `methods' field to get the method builder.  The `token' argument is the
18383         unfixed token.
18384
18385         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18386         invalid characters instead of g_assert_not_reached()ing.  This seems
18387         to be the behaviour of mscorlib.
18388
18389 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18390
18391         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18392         Hestilow to fix bug #25104
18393
18394 2002-05-21  Martin Baulig  <martin@gnome.org>
18395
18396         * debug-symfile.c (mono_debug_find_source_location): New function.
18397         Looks up an IL offset in the line number table and returns the source
18398         location as a string.
18399
18400 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18401
18402         * icall.c:
18403         (mono_double_ToStringImpl): changed %f by %g until we have something
18404         better.
18405
18406 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18407
18408         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18409         parameters first in C#.
18410
18411 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18412
18413         * icall.c, reflection.h: added icall to get info about an event.
18414
18415 2002-05-20  Radek Doulik  <rodo@ximian.com>
18416
18417         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18418         endian
18419         (mono_value_box): don't use memcpy for small sizes on
18420         architectures with unaligned access
18421
18422 2002-05-20  Martin Baulig  <martin@gnome.org>
18423
18424         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18425         if `tb->parent == NULL'.
18426         (mono_reflection_create_internal_class): New function.  This is
18427         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18428         for enum types.
18429
18430         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18431         New interncall.
18432
18433 2002-05-19  Martin Baulig  <martin@gnome.org>
18434
18435         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18436         argument to get the length, don't default to the array length.
18437
18438 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18439
18440         * assembly.c (mono_assembly_setrootdir): New function used to
18441         override the MONO_ASSEMBLIES directory.
18442
18443 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18444
18445         * icall.c: ValueType_GetHashCode() initialize local var.
18446
18447 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18448
18449         * reflection.c: sort custom attributes table.
18450
18451 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18452
18453         * reflection.c: support named args in custom attributes (write support).
18454
18455 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18456
18457         * reflection.c: fix finally position calculation.
18458
18459 2002-05-15  Radek Doulik  <rodo@ximian.com>
18460
18461         * reflection.c: fixed endianess at many places
18462
18463         * icall.c (ves_icall_InitializeArray): comment out debug msg
18464
18465 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18466
18467         * object.c (mono_unhandled_exception): new function to handle
18468         unhandled exceptions.
18469         (mono_unhandled_exception): call the UnhandledException event.
18470         (mono_runtime_delegate_invoke): impl.
18471
18472 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18473
18474         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18475         returns the RVA, not the direct pointer to the data. Handle the case
18476         when the class size is fixed.
18477
18478 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18479
18480         * reflection.c: fix some endianess issues.
18481
18482 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18483
18484         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18485
18486         * threads.c (mono_thread_init): added a callback which is invoked
18487         at thread start.
18488
18489 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18490         
18491         * icall.c: make GetHashCode return non-negative values.
18492
18493 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18494
18495         * object.c, icall.c, gc.c: revert to address-based hashcode.
18496
18497 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18498
18499         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18500
18501 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18502
18503         * icall.c, class.c: special case <Module>.
18504
18505 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18506
18507         * icall.c: fix bug in GetNow().
18508
18509 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18510
18511         * object.c (mono_runtime_class_init): make sure that we call all
18512         static class constructors.
18513
18514 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18515
18516         * reflection.c: sort methodsemantics table.
18517
18518 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18519
18520         * reflection.h, reflection.c: honour init locals setting.
18521
18522 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18523
18524         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18525
18526 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18527
18528         * reflection.c: support ContructorBuilders in attribute blob creation.
18529
18530 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18531
18532         * reflection.c: some changes to build a binary that can be run
18533         directly in windows.
18534
18535 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18536
18537         * loader.c: print a big message when an icall can't be found.
18538
18539 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18540
18541         * string-icalls.c: fix bug 24248.
18542
18543 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18544
18545         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18546         icall.c, reflection.h: separate assembly loading by pathname and by
18547         assembly name. Use the MONO_PATH env var to search for assemblies.
18548
18549 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18550
18551         * assembly.c, image.h: add some support for assemblies
18552         with multiple modules.
18553         * class.c, class.h: export mono_class_from_typeref().
18554         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18555         instead.
18556
18557 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18558
18559         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18560         documentation says (the ECMA one is correct).
18561
18562 2002-05-02  Dick Porter  <dick@ximian.com>
18563
18564         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18565         Don't name the synchronisation mutex.
18566
18567 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18568
18569         * rand.c
18570         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18571         Make the prototypes match.
18572         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18573         Same.
18574
18575         * icall.c
18576         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18577         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18578         all systems have tm.tm_zone, so use strftime() with %Z to print
18579         the timezone abreviation into a temp string.
18580
18581         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18582         rather than mono_array_addr() on a MonoString on Big Endian
18583         machines.
18584
18585 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18586
18587         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18588         fix bug 24041
18589
18590 2002-04-30  Dick Porter  <dick@ximian.com>
18591
18592         * socket-io.c: Cope with SOCKET being an integer rather than a
18593         pointer now.
18594
18595         * threads.c: Added Thread_free_internal, to deal with thread
18596         handle cleanup.  Moved calls to handle_store() and handle_remove()
18597         to start_wrapper(), so each can only be called once.  Allocate
18598         synchronisation blocks with GC_malloc(), and use GC finalisation
18599         to close the handles.
18600
18601         * icall.c: added System.Threading.Thread::Thread_free_internal
18602
18603 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18604
18605         * icall.c: support Environment.Exit, CommandLineArgs().
18606
18607 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18608
18609         * object.c, object.h: added mono_runtime_run_main () and
18610         mono_runtime_get_main_args () for use in System.Environment.
18611
18612 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18613
18614         * gc.c: fix thinko, enable actual finalization since the jit is now
18615         fixed.
18616
18617 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18618
18619         * gc.c, object.c: take into account that an object may be offset wrt the address
18620         returned by GC_malloc().
18621
18622 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18623
18624         * image.c: handle files without entries in the assembly table (modules).
18625
18626 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18627
18628         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18629         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18630         allowed to be null when it's System.Object class setup.
18631
18632 2002-04-27  Martin Baulig  <martin@gnome.org>
18633
18634         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18635         if `tb->parent == NULL' rather than crashing.
18636
18637 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18638
18639         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18640         calling acos() where asin() should have been called.
18641
18642 2002-04-26  Martin Baulig  <martin@gnome.org>
18643
18644         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18645         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18646         there's a subdirectory called `System', but we don't want to read that
18647         subdirectory as an assembly.
18648
18649 2002-04-25  Martin Baulig  <martin@gnome.org>
18650
18651         * debug-symfile.c: Reflect latest MonoString changes.
18652
18653 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18654
18655         * rand.c, rand.h: instance method icalls need to have an explicit
18656         this pointer as first argument in the C implementation.
18657
18658 2002-04-25  Nick Drochak <ndrochak@gol.com>
18659
18660         * icall.c: Fix typo in map for GetNonZeroBytes
18661
18662 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18663
18664         * string-icalls.c : String does now passes unit tests without any 
18665         errors, the following changes has been made:
18666         
18667         Implemented replace methods.
18668         Renaming of methods to (try) follow the standard.
18669         Fixed compare ordinal
18670         Made all memory allocated directly to function instead of via icall function.
18671         Small performance fix in is_in_array function
18672                         
18673  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18674
18675         c (mono_string_Internal_ctor_charp_int_int):
18676         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18677         sindex < 0, throw ArgumentOutOfRangeException instead of
18678         ArgumentNullException.
18679
18680         Added new check for length == 0, however
18681         I need to make it return String.Empty from the C code.
18682         
18683         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18684         that calculate the length for us here.
18685         
18686         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18687         mono_string_new_utf16 with mono_string_new, since value is utf8.
18688
18689 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18690
18691         * object.c: register the object for finalization if needed.
18692         Allocate one more char in the string for the terminating 0 char.
18693
18694 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18695
18696         * class.c, class.h, image.c: check if a type implemenst a destructor.
18697         Use the proper key for array class lookups.
18698         * icall.c: register the icalls in the System.GC class.
18699         * gc.c, gc.h: GC-related functions and icalls.
18700
18701 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18702
18703         * icall.c:
18704         * socket-io.c:
18705         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18706         changed a couple of free () by g_free ().
18707
18708         * decimal.c: one-liner in the comments for decimal2string ().
18709
18710 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18711
18712         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18713
18714 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18715
18716         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18717         * object.c (mono_runtime_invoke_array) : handle null in params
18718
18719 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18720
18721         * string-icalls.c: fixed bug in split (one off bug)
18722
18723 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18724
18725         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18726         * icalls.c: added String::Equals as internal method
18727
18728 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18729
18730         * threads.c: fixed bug in the double interlocked functions
18731
18732 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18733
18734         * threads.c: implemented all of the new interlocked icalls.
18735         * string-icalls.c: fix a bug in insert.
18736         * icalls.c: added the icalls for interlocked, removed old string functions.
18737         
18738 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18739
18740         * loader.c: fix off-by-one error when reading argument names.
18741
18742 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18743
18744         * profiler.c: win32 counter implementation (untested).
18745         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18746         (the latter needs testing and more complete impl. from win32 folks).
18747
18748 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18749
18750         * object.c: mono_array_new_full workaround mono_array_class_get
18751         problem.
18752
18753 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18754
18755         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18756         * object.h (mono_string_chars): Changed casting type.
18757
18758 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18759
18760         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18761                            method signatures to use gunichar2 instead of gint16.
18762
18763 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18764
18765         * object.h, object.c: domain-specific versions of mono_object_new and
18766         mono_array_new.
18767
18768 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18769
18770         * object.c: changed String layout
18771
18772         * string-icalls.c (mono_string_Internal_ctor_chara): added
18773         internal string constructors.
18774
18775 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18776
18777         * threads.c: pass 'this' to the thread start routine.
18778
18779 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18780
18781         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18782         InternalCompareStr don't call twice mono_string_cmp_char for the last
18783         character. Improved performance in mono_string_cmp_char.
18784
18785 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18786
18787         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18788         code into its own library: libmonoruntime.
18789
18790 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18791
18792         * object.h, object.c: changed array format so that szarrays do not
18793         require a bounds structure.
18794         * icall.c, appdomain.c: support for new szarray format.
18795
18796 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18797
18798         * metadata.c: compare also the retuns type when comparing signatures:
18799         we didn't do this as an optimization since really overloaded methods
18800         must differ also in the arguments, but this doesn't work with
18801         low-level IL code (or when using explicit conversion operators: see
18802         bug#23498 for an example).
18803
18804 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18805
18806         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18807
18808 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18809
18810         * icall.c: make MonoType::GetElementType its own icall.
18811
18812 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18813
18814         * icall.c: remove MonoMethod_get_Name().
18815         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18816         object.
18817
18818 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18819
18820         * string-icalls.c: optimized a few methods.
18821
18822 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18823
18824         * icall.c: added all new string internal calls
18825         * string-icalls.c: added, new string internal call implementation.
18826         * object.c: added mono_string_new_size for allocating a string a size
18827
18828 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18829
18830         * object.c (mono_object_isinst): use the same code as in the
18831         optimized x86 version.
18832
18833 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18834
18835         * profiler.c: TSC-based timer code (faster and more accurate).
18836         Not hooked up in configure, yet (set USE_X86TSC to 1).
18837
18838 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18839
18840         * profiler.c, profiler.h: track time spent compiling methods.
18841         * threads.c: track thread creation/destruction.
18842
18843 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18844
18845         * profiler.c, profiler.h, profiler-private.h: profiling interface
18846         and sample implementation. Moved here so that it can be used also by
18847         the jit.
18848
18849 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18850
18851         * reflection.c, reflection.h: keep types and other handles separate in
18852         the hash tables for referred tokens. Add guid for modules.
18853
18854 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18855
18856         * assembly.c: fix bugs found with valgrind.
18857         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18858
18859 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18860
18861         * threads: added icall support for getting current domain for
18862                    the thread.
18863  
18864 2002-04-13  Martin Baulig  <martin@gnome.org>
18865
18866         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18867         (MonoDebugVarInfo): Added `index' field for register based addresses.
18868         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18869         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18870         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18871         `MonoDebugVarInfo *this_var'.
18872
18873         * debug-symfile.c (relocate_variable): New static function to write
18874         a location description for a local variable or method parameter.
18875
18876 2002-04-12  Martin Baulig  <martin@gnome.org>
18877
18878         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18879         stack offset and begin/end scope address of a local variable.
18880         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18881         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18882         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18883
18884         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18885         Added new relocation types for start/end scope of a local variable.
18886
18887 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18888
18889         * object.h: add mono_object_domain() macro.
18890         * reflection.c: handle typespecs.
18891         * icall.c: MonoMethod::get_Name() implementation.
18892
18893 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18894
18895         * icall.c: String::GetHashCode() icall implementation.
18896
18897 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18898
18899         * icall.c: String::IndexOfAny icall.
18900         * object.c, object.h: make array->max_length more useful.
18901         Intrduced mono_object_class() and mono_string_length() macros.
18902
18903 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18904
18905         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18906         instead of g_unichar_isdigit.
18907
18908 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18909
18910         * icall.c: Implement a simple Double.ToString().
18911
18912 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18913
18914         * appdomain.h: only io-layer.h is supposed to be included.
18915         * icall.c: explicitly import environ. Fix warning.
18916
18917 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18918
18919         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18920                 return true even if it's not Daylight Savings time.
18921                 Only return false for the case where the function isn't
18922                 implemented for a plaform (read Windows).
18923
18924 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18925
18926         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18927         data with a mutex.
18928
18929 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18930
18931         * mempool.c (mono_mempool_alloc): only use g_malloc when
18932         absolutely necessary.
18933
18934 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18935
18936         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18937
18938         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18939         (mono_class_proxy_vtable): use domain mempool
18940
18941 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18942
18943         * appdomain.h, appdomain.c: split initialization that requires the
18944         execution engine support into mono_runtime_init().
18945
18946 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18947
18948         * class.c (mono_class_init): don't include vtable inside MonoClass
18949         to save some memory, gather some statistics.
18950         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18951
18952 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18953
18954         * icall.c: internalcall implementation for ValueType.Equals().
18955
18956 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18957
18958         * object.c (mono_message_init): moved 
18959         (mono_runtime_exec_main): new arch. independent impl.
18960         (mono_runtime_invoke_array): new method - like
18961         mono_runtime_invoke, but you can pass an array of objects.
18962         (mono_remoting_invoke): new arch. independent impl.
18963         (mono_message_invoke): new arch. independent impl.
18964         (mono_runtime_class_init): new arch. independent impl.
18965         (mono_runtime_object_init): new arch. independent impl.
18966
18967 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18968
18969         * metadata.c, object.c, reflection.c: documented the exported
18970         functions.
18971
18972 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18973
18974         * icall.c: simpler code to pass the assembly builder data to corlib.
18975         Implement GetNestedTypes() internalcall.
18976
18977 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18978
18979         * class.c: warn if a type can't be loaded.
18980
18981 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
18982
18983         * image.h: typedef MonoImageOpenStatus
18984         * types.h: removed unused file
18985         
18986 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
18987
18988         * icall.c: Enum_ToObject accepts enum value arguments.
18989
18990 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18991
18992         * class.c: move initialization of properties, events and nested
18993         classes, so that they happen for interfaces, too.
18994
18995 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18996
18997         * icall.c: cleanup some ugly casts in Array_SetValue*.
18998
18999 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19000
19001         * icall.c: the values array fro enums is of the correct type, now.
19002         Implement (correctly) getFullName instead of assQualifiedName for
19003         MonoType.
19004         * reflection.h, reflection.c: added mono_type_get_name ().
19005
19006 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19007
19008         * assembly.c, image.h: for each MonoImage, record from wich assembly
19009         it was loaded.
19010         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19011         Make Type.Assembly work.
19012
19013 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19014
19015         * debug-symfile.h: use char* instead of gpointer to avoid
19016         unnecessary casts.
19017
19018         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19019
19020         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19021         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19022
19023 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19024
19025         * icall.c (mono_message_init): impl. (code cleanup)
19026         (ves_icall_InternalExecute): impl. FieldGetter
19027
19028         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19029         defined we call all (non-static)methods through the vtable. 
19030
19031 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19032
19033         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19034         finalizer even though the memory is still referenced (and the chunk of
19035         memory is not freed).
19036
19037 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19038
19039         * assembly.c: fix brokeness.
19040
19041 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19042
19043         * class.c: kill some warnings. Check explicit interface method
19044         implementation also without considering the namespace.
19045         Load also literal strings in static class data.
19046
19047 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19048
19049         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19050         (default_assembly_name_resolver): Make the resolver take the
19051         "base" directory where the assembly was originally defined, so we
19052         can load DLLs that are in the same directory as the assembly that
19053         is being referenced.
19054
19055 2002-03-28  Dick Porter  <dick@ximian.com>
19056
19057         * file-io.h: 
19058         * file-io.c:
19059         * socket-io.c: 
19060         * unicode.h: 
19061         * unicode.c: Warning cleanups
19062
19063 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19064
19065         * object.h, reflection.h: use the correct type instead of MonoObject.
19066
19067 2002-03-28  Martin Baulig  <martin@gnome.org>
19068
19069         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19070         (mono_debug_update_symbol_file): Initialize classes if necessary.
19071
19072 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19073
19074         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19075         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19076
19077 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19078
19079         * assembly.h: fix function prototype.
19080         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19081         * mono-endian.h: use const cast.
19082
19083 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19084
19085         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19086
19087 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19088
19089         * loader.c: don't assert when a typeref can't be loaded, give
19090         a chance to the runtime to trow an exception instead.
19091         * loader.h: fix warning.
19092
19093 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19094
19095         * class.c (mono_class_proxy_vtable): added proxy support
19096
19097 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19098
19099         * icall.c: removed last of PAL calls, added System.Environment
19100         * file-io.h, file-io.c: MonoIO implementation
19101         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19102
19103 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19104
19105         * appdomain.c: do not use the byte marker in ldstr table lookup.
19106         * debug-helpers.c: allow two ':' to separate class and method name.
19107         * object.c: allocate arrays bounds with the GC, too.
19108         * verify: add a few more checks.
19109
19110 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19111
19112         * reflection.c: output also literal strings. Allocate parameter data
19113         with GC_malloc() (thanks, Martin, for catching this!).
19114
19115 2002-03-26  Martin Baulig  <martin@gnome.org>
19116
19117         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19118         include the `this' offset in the `param_offsets'.
19119
19120 2002-03-25  Martin Baulig  <martin@gnome.org>
19121
19122         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19123         mono_debug_get_class() function to get the classes. Added new
19124         relocation types for arrays and strings.
19125         (mono_debug_get_class): New static function to search in all
19126         referenced assemblies for a metadata token.
19127
19128         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19129
19130 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19131
19132         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19133         hold gc-allocated objects. Make the string heap a stream like the
19134         others. Removed duplicated code when writing stream info.
19135         Added asserts to catch possible buffer overflows. Set the sorted map
19136         for tables that need sorting. Added some documentation.
19137
19138 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19139
19140         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19141         for interned strings and vtables.
19142
19143 2002-03-24  Martin Baulig  <martin@gnome.org>
19144
19145         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19146         it in the array since it was created with g_slist_prepend().
19147
19148 2002-03-24  Martin Baulig  <martin@gnome.org>
19149
19150         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19151         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19152         (mono_debug_method_from_token): Renamed to
19153         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19154         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19155
19156         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19157         relocation types.
19158
19159         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19160
19161 2002-03-24  Martin Baulig  <martin@gnome.org>
19162
19163         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19164         (mono_debug_method_from_token): New func.
19165
19166         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19167         New interncall, calls mono_debug_local_type_from_signature().
19168         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19169         calls mono_debug_method_from_token().
19170
19171 2002-03-23  Martin Baulig  <martin@gnome.org>
19172
19173         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19174         specifies the number of bytes to be converted, not the array size.
19175         Return the number of chars, not the number of bytes.
19176         (ves_icall_iconv_get_chars): The `byteCount' argument
19177         specifies the number of bytes to be converted, not the array size.
19178
19179 2002-03-23  Martin Baulig  <martin@gnome.org>
19180
19181         * reflection.h (MonoReflectionSigHelper): New type.
19182
19183         * reflection.c (mono_reflection_sighelper_get_signature_local),
19184         (mono_reflection_sighelper_get_signature_local): New functions.
19185
19186         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19187         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19188         interncalls.
19189
19190 2002-03-23  Martin Baulig  <martin@gnome.org>
19191
19192         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19193         is_writeable is set.
19194         (mono_raw_buffer_update): New function to write the modified map
19195         back to disk.
19196
19197         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19198
19199         * debug-symfile.c (mono_debug_update_symbol_file): Call
19200         mono_raw_buffer_update() when done writing.
19201
19202 2002-03-23  Martin Baulig  <martin@gnome.org>
19203
19204         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19205
19206         * debug-symfile.c: Added support for arguments and local variables.
19207
19208 2002-03-23  Dick Porter  <dick@ximian.com>
19209
19210         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19211         protected by ifdefs, hence breaking the w32 build.
19212
19213 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19214
19215         * object.c: implement is_interned() the right way.
19216
19217 2002-03-21  Martin Baulig  <martin@gnome.org>
19218
19219         * debug-symfile.[ch]: New files to handle debugging information
19220         files. There's also support to dynamically update these symbol
19221         files to include machine dependent information.
19222
19223 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19224
19225         * threads.c (mono_thread_create): new function to create thread
19226         from C
19227
19228 2002-03-20  Martin Baulig  <martin@gnome.org>
19229
19230         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19231         method is a constructor.
19232         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19233         points to ves_icall_InternalInvoke().
19234
19235 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19236
19237         * file-io.c: Flush shouldn't throw exceptions.
19238
19239 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19240
19241         * file-io.c: FileStream flush support; FileSetLength now
19242         restores file pointer.
19243
19244 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19245
19246         * class.c: set image for pointer classes.
19247
19248 2002/03/19  Nick Drochak <ndrochak@gol.com>
19249
19250         * sysmath.c: Forgot one.
19251
19252 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19253
19254         * sysmath.c: Avoid redefining existing names.
19255
19256 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19257
19258         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19259         handled by runtime as icall rather than dllimport from libm.so
19260         * file-io.c, file-io.h: fixed handle argument type.
19261
19262 2002-03-18  Dick Porter  <dick@ximian.com>
19263
19264         * reflection.c (mono_image_get_type_info): rename interface to
19265         iface, because of "#define interface struct" on windows.
19266
19267 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19268
19269         * class.c, class.h: rename and export mono_ptr_class_get().
19270         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19271         * reflection.c, reflection.h, icall.c: better/saner type name
19272         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19273         method signatures.
19274
19275 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19276
19277         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19278
19279         * icall.c (ves_icall_InternalInvoke): impl.
19280
19281 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19282
19283         * reflection.c: output the interface map table, too.
19284
19285 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19286
19287         * class.c (class_compute_field_layout): separate computation of 
19288         static field layout
19289
19290 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19291
19292         * icall.c: added System.Buffer support.
19293         * file-io.c: moved file icalls from PAL to FileStream.
19294
19295 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19296
19297         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19298
19299 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19300
19301         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19302
19303 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19304
19305         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19306
19307 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19308
19309         * debug-helpers.{c,h}: moved here from monograph some useful functions
19310         to locate a method by name/signature in a class or image. Included
19311         also a small and flexible IL disassembler.
19312
19313 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19314
19315         * reflection.c: fixup tokens in methods with small header size, too.
19316
19317 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19318
19319         * object.c (mono_string_to_utf8): remove assert(!error), instead
19320         print a warning. 
19321
19322 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19323
19324         * icall.c: update to the new mono_Array_class_get interface.
19325
19326 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19327
19328         * appdomain.c, object.c: Boehm-GC enable.
19329         * icall.c: make get_data_chunk() support split data requests.
19330         Ensure a class is initialized in more cases. Return only the first
19331         property found in GetProperties() or the compiler gets confused. 
19332         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19333         * reflection.h, reflection.c: add fixup mechanism for field and method
19334         tokens. Initialize assembly->typeref in a single place. Output
19335         properties after events. Support custom attributes for events, too.
19336         Typo fix for paramter custom attrs.
19337
19338 2002-03-07  Martin Baulig  <martin@gnome.org>
19339
19340         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19341
19342 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19343
19344         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19345
19346 2002-03-06  Martin Baulig  <martin@gnome.org>
19347
19348         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19349         non-zero lower bounds. See testcases #F10-#F13.
19350
19351 2002-03-05  Martin Baulig  <martin@gnome.org>
19352
19353         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19354
19355         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19356         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19357         here.
19358         (ves_icall_System_Array_SetValue): Likewise.
19359         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19360         as argument and does the actual work. This function is used when copying a
19361         multi-dimensional array.
19362         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19363         now do all the widening conversions of value types.
19364         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19365
19366 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19367
19368         * class.c: remove some magic numbers and use the smbolic names,
19369         instead. Added init_events() to load event info at class init time.
19370         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19371         and mono_metadata_methods_from_event().
19372         * reflection.h, reflection.c: added support for writing out the evnets
19373         related information.
19374
19375 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19376
19377         * reflection.h, icall.c: use a different method (GetInterfaces)
19378         to gather interface info and add isbyref, isprimitive and
19379         ispointer to the ves_icall_get_type_info() return value.
19380
19381 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19382
19383         * class.h: stared adding support for events.
19384         * icall.c: split find_members implementation. Added debug icall to get
19385         the address of an object.
19386         * reflection.c: handle TypeBuilders in mono_type_get_object().
19387
19388 2002-03-01  Martin Baulig  <martin@gnome.org>
19389
19390         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19391         ArgumentOutOfRangeException(), not an ArgumentException().
19392         (ves_icall_System_Array_GetLowerBound): Likewise.
19393         (ves_icall_System_Array_GetValue): Improved argument checking.
19394         (ves_icall_System_Array_SetValue): Improved argument checking.
19395
19396 2002-03-01  Martin Baulig  <martin@gnome.org>
19397
19398         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19399         called with invalid arguments rather than just dying with g_assert().
19400         (ves_icall_System_Array_SetValue): Likewise.
19401         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19402         raise a NotImplementedException instead.
19403         (ves_icall_System_Array_GetLength): Added argument checking.
19404         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19405
19406 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19407
19408         * object.h (mono_assert): new macros mono_assert and
19409         mono_assert_not_reached
19410
19411 2002-02-28  Martin Baulig  <martin@gnome.org>
19412
19413         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19414         and "System::String::IsInterned" to "System::String::_IsInterned".
19415
19416 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19417
19418         * icall.c: remove hacks for typebuilder. Added icall to create a
19419         modified type from a tybebuilder.
19420         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19421         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19422         to create a backing MonoClass for a TypeBuilder.
19423
19424 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19425
19426         * class.c, class.h: more refactoring of class init.
19427         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19428
19429 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19430
19431         * marshal.c, marshal.h: start of marshaling interface.
19432
19433 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19434
19435         * icall.c: fix order in assembly qualified name icall.
19436
19437 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19438
19439         * class.c: do not free str, since we store it in the hash table.
19440         * reflection.h: add label field to MonoILExceptionInfo.
19441         * reflection.c: handle references to more than one assembly. Handle
19442         case when there isn't a module created in the assembly.
19443
19444 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19445
19446         * class.c: Fix typo. Start refactoring of class init code.
19447
19448 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19449
19450         * appdomain.c: exit with 1 on error.
19451         * class.c: we already have the name in MonoClassField.
19452         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19453         MonoStreamHeader instead of an offset of image->raw_metadata.
19454
19455 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19456
19457         * appdomain.c (mono_init): Be even more descriptive about the error.
19458
19459 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19460
19461         * appdomain.c: give the user an informative message when corlib can't
19462         be loaded.
19463
19464 2002-02-26  Martin Baulig  <martin@gnome.org>
19465
19466         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19467         New icall to get the time zone data.
19468
19469 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19470
19471         * reflection.c: set virtual and raw size of section correctly.
19472         * threads.c: transfer domain information to newly created threads.
19473
19474 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19475
19476         * class.c: when instancing a class in a domain, load the default
19477         vaules for static fields from the constant table. Fix System.Enum to
19478         not be an enum.
19479         * icall.c: implement Object::GetType() internalcall. Implemented
19480         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19481         Fixed checking of binding flags in find_members().
19482         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19483         * reflection.c: handle enumerations when writing to the constant
19484         table. Use a different object cache for types.
19485
19486
19487 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19488
19489         * object.c (mono_object_isinst): fix for arrays
19490
19491         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19492
19493 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19494
19495         * object.c: don't use mprotect ()  and fix intern pool hash table
19496         lookup for big endian systems.
19497
19498 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19499
19500         * icall.c: change type_is_subtype_of () signature.
19501
19502 2002-02-21  Mark Crichton  <crichton@gimp.org>
19503
19504         * rand.c, rand.h: Added random number generator for
19505         System.Security.Cryptography classes.
19506
19507         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19508
19509         * icall.c: Added System.Security.Cryptography calls.
19510
19511 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19512
19513         * class.c, icall.c, metadata.c: better support for pointer types.
19514         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19515         * reflection.c: Add support for getting custom attrs for properties
19516         and simplify some code.
19517
19518 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19519
19520         * icall.c: change getToken () and add custom attribute GetBlob()helper
19521         method.
19522         * reflection.h: add custom attrs array to the reflection builder structures.
19523         * reflection.c: encode and emit custom attributes for all the relevant
19524         reflection objects. Cache fieldref and methodref tokens. Change
19525         mono_image_create_token() interface to take a MonoDynamicAssembly.
19526         More complete custom attributes decoder. Load custom attributes for
19527         Assembly, Field, Method and Constructor objects, too. Make the
19528         returned array an Attribute[] one, not object[]. Added
19529         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19530         custom attribute constructor.
19531
19532 2002-02-20  Dick Porter  <dick@ximian.com>
19533
19534         * icall.c:
19535         * rawbuffer.c:
19536         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19537         problem code out for now).
19538
19539 2002-02-19  Radek Doulik  <rodo@ximian.com>
19540
19541         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19542
19543 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19544
19545         * icall.c: register the GetCustomAttributes method.
19546         * object.c, object.h: add mono_string_new_len ().
19547         * reflection.h, reflection.c: added mono_runtime_invoke(),
19548         mono_install_runtime_invoke(). Added
19549         mono_reflection_get_custom_attrs () to load custom attributes and
19550         create the attribute objects.
19551
19552 2002-02-19  Dick Porter  <dick@ximian.com>
19553         * threads-dummy-types.c:
19554         * threads-dummy-types.h:
19555         * threads-dummy.c:
19556         * threads-dummy.h:
19557         * threads-pthread-types.c:
19558         * threads-pthread-types.h:
19559         * threads-pthread.c:
19560         * threads-pthread.h:  Deleted obsolete files
19561
19562 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19563
19564         * class.c (mono_class_vtable): runtime init the class when we
19565         allocate static class data.
19566
19567         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19568
19569         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19570         and String - but we will need generic marshalling support in the
19571         future. 
19572         (mono_init): set the domain name in a ms compatible way
19573
19574         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19575         String[].
19576
19577 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19578
19579         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19580         for sizes
19581
19582         * appdomain.c (mono_domain_unload): impl.
19583
19584 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19585
19586         * appdomain.c, object.c: fix intern pool implementation.
19587         * class.c: fix alignment code.
19588
19589 2002-02-16  Radek Doulik  <rodo@ximian.com>
19590
19591         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19592         and s2 > s1, just copy lower bytes to be compatible with little
19593         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19594         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19595
19596         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19597         force big_endian to be 1 for big endian machines 
19598         (ves_icall_iconv_new_decoder): ditto
19599
19600 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19601
19602         * socket-io.c (convert_sockopt_level_and_name): If the system
19603         doesn't define SOL_IP or SOL_TCP, get them by hand using
19604         getprotobyname() and caching the values (because this could be a
19605         slow operation).
19606         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19607         Use the appropriate struct when the system does support it. Ie,
19608         not all systems have struct ip_mreqn so use struct ip_mreq when
19609         appropriate.
19610
19611 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19612
19613         * reflection.c: handle finally clauses.
19614
19615 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19616
19617         * socket-io.c: use g_snprintf() instead of snprintf.
19618
19619 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19620
19621         * reflection.c (mono_param_get_objects): Cast second argument to
19622         mono_method_get_param_names to a const char** to silence the
19623         compiler warning.
19624
19625         * appdomain.c (mono_domain_assembly_open): Put parens around the
19626         truth statement in the for-loop.
19627
19628         * unicode.c (iconv_convert): Got rid of a compiler warning about
19629         int i being unused when the system has a new iconv.
19630         (iconv_get_length): Same.
19631
19632         * image.c (load_class_names): Cast the second argument to
19633         g_hash_table_insert() to char* to hush compiler warnings about the
19634         arg being a const.
19635         (mono_image_open): Same here.
19636
19637         * socket-io.c: Don't conditionally include sys/filio.h or
19638         sys/sockio.h here anymore since we now get them from
19639         io-layer/io-layer.h
19640         (inet_pton): If the system doesn't support inet_aton, implement
19641         using inet_addr and also #define INADDR_NONE if it isn't defined
19642         by the system.
19643
19644 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19645
19646         * metadata.c, metadata.h: added function to get packing and size info
19647         of a typedef.
19648         * reflection.h, reflection.c: handle field RVA data. Save info about
19649         the table layout if needed. Assign typedef indexes to all the types
19650         before dumping the info about them to avoid forward reference problems.
19651
19652 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19653
19654         * socket-io.c (convert_sockopt_level_and_name): ifdef
19655         SO_ACCEPTCONN because it is not defined on my system (old debian)
19656
19657 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19658
19659         * opcode.c: use stddef.h to get NULL.
19660
19661 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19662
19663         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19664         for FIONBIO, FIONREAD and SIOCATMARK.
19665         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19666         define INADDR_NONE and besides, inet_addr() is deprecated and
19667         should not be used. Use inet_pton() instead - it also has the
19668         added bonus that it can easily handle IPv6 addresses as well.
19669         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19670
19671 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19672
19673         * decimal.c: remove _MSC_VER conditional.
19674
19675 2002-02-13  Dick Porter  <dick@ximian.com>
19676
19677         * socket-io.c: 
19678         * icall.c: Internal calls for Blocking, Select, Shutdown,
19679         GetSocketOption and SetSocketOption
19680
19681 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19682
19683         * assembly.cs: better resolver: use it instead of some kludgy
19684         code.
19685
19686 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19687
19688         * reflection.c: the best way to speed-up the compiler is to avoid
19689         infinite loops.
19690
19691 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19692
19693         * class.c (mono_class_vtable): changed the object layout
19694         (obj->vtable->class). 
19695         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19696
19697 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19698
19699         * assembly.c: look for assemblies in the assembly dir, too.
19700
19701 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19702
19703         * class.c: fix thinko in mono_class_from_type().
19704
19705 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19706
19707         * exception.h, exception.c: added TypeLoadException.
19708         * object.h, object.c: added mono_array_clone ().
19709         * icall.c: handle throwOnError in AssemblyGetType().
19710         Added Array.Clone().
19711         * opcode.h, opcode.c: use a single value for the opcode val.
19712         Compile fix for non-gcc compilers.
19713
19714 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19715
19716         * opcodes.c, opcodes.h: export interesting info about opcodes.
19717
19718 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19719
19720         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19721         icalls. 
19722
19723         * class.c (class_compute_field_layout): set element_class for enums
19724         (mono_class_create_from_typedef): set element_class for normal classes
19725
19726         * icall.c (ves_icall_System_Enum_get_value): impl.
19727
19728         * class.c (mono_class_create_from_typedef): do not set valuetype
19729         flag for System.ValueType and System.Enum
19730
19731 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19732
19733         * unicode.c (iconv_convert): fix big endian problem.
19734
19735 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19736
19737         * class.c: add asserts if we are ever going to scribble over memory.
19738         * socket-io.c: not all systems have AF_IRDA defined.
19739
19740 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19741
19742         * class.c (class_compute_field_layout): do not consider static
19743         fields to compute alignment
19744
19745 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19746
19747         * appdomain.c (mono_appdomain_get): impl.
19748         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19749
19750 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19751
19752         * icall.c: ignore "file://" prefix when loading an assembly.
19753
19754 2002-01-23  Dick Porter  <dick@ximian.com>
19755
19756         * socket-io.c:
19757         * icall.c:
19758         * Makefile.am: Added socket support
19759
19760 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19761
19762         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19763         code back.  This should return the assemblies that are loaded by
19764         the runtime on behalf of an application domain. 
19765
19766         The current implementation is still broken, it just returns every
19767         assembly loaded, but until we get real applications domain this
19768         will do.
19769
19770 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19771
19772         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19773         AppDomain object.
19774
19775 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19776
19777         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19778         the mono_class_from_name lookup.
19779         (ves_icall_get_parameter_info): ditto.
19780         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19781         method.
19782         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19783
19784 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19785
19786         * class.c: load also nested classes on class init.
19787         System.ValueType instance methods gets passed boxed
19788         values, unless methods in derived classed that get a pointer to the
19789         data.
19790         * icall.c: use better name parsing code in GetType().
19791         * image.c, image.h: add mono_image_loaded ().
19792         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19793         * reflection.c, reflection.h: added mono_reflection_parse_type().
19794
19795 2002-01-22  Veronica De Santis <veron78@interfree.it>
19796
19797         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19798         * threads.c : Added the implementation of internal calls for events
19799         * threads.h : Added prototypes of internal calls for events
19800         
19801 2002-01-21  Radek Doulik  <rodo@ximian.com>
19802
19803         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19804
19805 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19806
19807         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19808         (mono_class_value_size): use min_align
19809
19810 2002-01-20  Dick Porter  <dick@ximian.com>
19811
19812         * threads.h:
19813         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19814         so it compiles on w32.
19815
19816 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19817
19818         * metadata.c (mono_type_stack_size): impl.
19819
19820         * class.c (mono_class_get_field): impl. memberref token
19821
19822 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19823
19824         * icall.h : Added the internal calls mapping for CreateMutex_internal
19825                     and ReleaseMutex_internal.
19826         * threads.h : Added the prototype of mutexes internal calls.
19827         * threads.c : Added the implementations of mutexes internal calls.
19828
19829 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19830
19831         * metaparse.h: removed unused file.
19832         * reflection.c, reflection.h: added stream_data_align () function 
19833         to align data in streams and keep stream aligned. Add support for
19834         exception support in method headers.
19835
19836 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19837
19838         * unicode.c: make iconv_convert () return the number of bytess written
19839         in the output buffer.
19840
19841 2002-01-15  Dick Porter  <dick@ximian.com>
19842         * threads.c: Make the runtime's idea of infinite timeouts coincide
19843         with the class library's
19844
19845         Fix a particularly egregious bug in mono_thread_cleanup(). That
19846         code was so utterly bogus it must have been written on a Monday.
19847
19848 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19849
19850         * reflection.h: add subtypes field to TypeBuilder.
19851         * reflection.c: encode constants for literal fields.
19852         Handle subtypes. Fix user string token (and add a zero byte)
19853         at the end.
19854         
19855 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19856
19857         * class.c (mono_class_init): bug fix: assign slot numbers for
19858         abstract methods.
19859
19860 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19861
19862         * reflection.c: don't try to output a code RVA for abstract methods.
19863         Small fixes for method header format. Output parameter info to the
19864         ParamDef table. Save method overriding info to MethodImpl table.
19865         Fix property support. Allow typedef.extends to be a type in the
19866         building assembly.
19867         * verify.c: fix off-by-one error.
19868
19869 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19870
19871         * class.c: fix mono_class_from_mono_type () for szarray types.
19872         Remove unused cache check in mono_class_from_type_spec().
19873         * icall.c: *type_from_name () functions handle simple arrays and byref.
19874         * reflection.c: handle byref and szarray types. Handle methods without
19875         body (gets P/Invoke compilation working). Handle types and fields in
19876         get_token ().
19877         * reflection.h: add rank to MonoTypeInfo.
19878
19879 2002-01-10  Dick Porter  <dick@ximian.com>
19880
19881         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19882         internal calls
19883
19884 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19885
19886         * icall.c: initialize class in type_from_handle ().
19887         Loop also in parent classes for get_method ().
19888         * reflection.c: properly encode class and valuetype types.
19889         Start on encoding TypeBuilder types. Handle fieldrefs.
19890         Use correct length when registering a user string.
19891         Handle ConstructorBuilder and MonoMethod in get_token ().
19892         Make mono_type_get_object () aware of cached types.
19893         * object.c: back out change to mono_string_new ().
19894
19895 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19896         * object.c: mono_string_new should return a NULL when the string 
19897         passed in is NULL -- not try to deference it.
19898         
19899 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19900
19901         * icall.c: hack to make IsSubType work for TypeBuilders.
19902         * reflection.c: emit constructors before methods.
19903         Retrieve param names in mono_param_get_objects().
19904
19905 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19906
19907         * Makefile.am: fix list of headers and sources so automake 1.5
19908         doesn't complain. Removed \# at end of list.
19909
19910 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19911
19912         * reflection.c: get token for a method ref. Set return type of
19913         constructor to void.
19914         * loader.c: debug message.
19915         * class.c: typo fix.
19916
19917 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19918
19919         * icall.c: fix array init with rank > 1. FindMembers
19920         loops in parent class as well.
19921         * image.c: do not insert nested types in name cache.
19922         * reflection.c: warning fix.
19923         * reflection.h: add override method (for interface impl).
19924
19925 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19926
19927         * metadata.c: fix customattr decoding.
19928
19929 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19930
19931         * rawbuffer.cs: Added native Win32 implementation, avoids using
19932         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19933
19934 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19935
19936         * class.c: make the low-level routines handle the cache.
19937
19938 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19939
19940         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19941
19942 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19943
19944         * class.c: fix mono_array_element_size() for objects.
19945         * class.h, class.c: add properties to MonoClass and load them
19946         at init time.
19947         * icall.c: check with isinst() when assigning a value to an array
19948         instead of requiring the classes to match exactly.
19949         Implemented icall for System.Type::GetType().
19950         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19951         enums. Handle bindingflags when looking for methods and fields.
19952         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19953         and mono_metadata_methods_from_property().
19954         * reflection.h, reflection.c: added structures for propreties,
19955         parameters and enums. Implemented mono_property_get_object() and
19956         mono_param_get_objects().
19957
19958 2001-12-18  Dick Porter  <dick@ximian.com>
19959
19960         * file-io.c: Use mono_string_to_utf16() instead of
19961         mono_string_chars()
19962
19963         * object.c: Added mono_string_to_utf16(), which copies the non
19964         NULL-terminated MonoString into a new double-null-terminated
19965         buffer.
19966
19967 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
19968
19969         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
19970
19971 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
19972
19973         * file-io.c: raise exceptions if handle is invalid.
19974
19975 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
19976
19977         * assembly.c: yet another check for mscorlib.
19978         * class.c, class.h: load nesting info for classes.
19979         * icall.c: many new functions to support the Reflection classes.
19980         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
19981         * reflection.h, reflection.c: mono_image_create_token(),
19982         mono_assembly_get_object(), mono_type_get_object(),
19983         mono_method_get_object(), mono_field_get_object(): methods to return
19984         objects that parallel the C representation of assemblies, types,
19985         methods, fields.
19986
19987 2001-12-11  Dick Porter  <dick@ximian.com>
19988
19989         * icall.c:
19990         * file-io.c: Internal calls for file IO.
19991
19992 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
19993
19994         * tabledefs.h: missing FileAttributes.
19995         * verify.h, verify.c: use is_valid_string () to simplify and check for
19996         valid strings more correctly. Fix warnings and speeling.
19997         Check more tables: Filed, File, ModuleRef, StandAloneSig.
19998         Check code: branches, maxstack, method calls.
19999
20000 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20001
20002         * object.c (mono_object_allocate): removed static, so that the jit
20003         can allocate value types.
20004
20005         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20006
20007 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20008
20009         * class.c: init enum types right away and register the
20010         token->MonoClass map in mono_class_create_from_typedef ().
20011         * verify.h, verify.c: first cut of the verifier.
20012         * pedump.c: add --verify switch to verify metadata tables.
20013         * tabledefs.h: add some missing enums.
20014
20015 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20016
20017         * class.c (mono_install_runtime_class_init): impl.
20018         (mono_class_init): renamed mono_class_metadata_init to
20019         mono_class_init, also removed the metadata_inited flag
20020
20021         * object.c (mono_object_isinst): use faster algorithm
20022
20023 2001-11-30  Radek Doulik  <rodo@ximian.com>
20024
20025         * mono-endian.h: reverted last change
20026         added function prototypes
20027
20028         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20029         add mono-endian.c back
20030
20031         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20032         for unaligned access, I've mistaked it with endianess. I am
20033         sorry.
20034         (mono_read16): fix reverted endianess
20035         (mono_read64): ditto
20036         (mono_read32): ditto
20037
20038 2001-11-30  Dick Porter  <dick@ximian.com>
20039
20040         * exception.c: Implement mono_exception_from_name()
20041
20042 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20043
20044         * metadata.h, metadata.c: remove params_size and locals_size and their
20045         calculation from the metadata code: they are only usefult to the
20046         interp.
20047
20048 2001-11-29  Radek Doulik  <rodo@ximian.com>
20049
20050         * object.c (mono_ldstr): swap bytes here, it's probably not the
20051         best place, but works for me now, I'll redo it once I know mono
20052         better, also note that I add PROT_WRITE and don't reset back, also
20053         note that it's only affects big endians, so x86 should be OK
20054
20055         * mono-endian.h (read16): use just glib macros for both endians
20056
20057         * mono-endian.c: removed as glib macros are used in in
20058         mono-endian.h so we don't need to care about endianess for read
20059         macros as glib does that for us already
20060
20061 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20062
20063         * class.h, class.h: take minimum alignment into consideration so
20064         that the fields of a class remain aligned also when in an array.
20065
20066 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20067
20068         * loader.h, loader.c: add mono_method_get_param_names().
20069         * class.c: 0-init class fields.
20070
20071 2001-11-26  Dick Porter  <dick@ximian.com>
20072
20073         * icall.c:
20074         * threads-types.h:
20075         * threads.c: New file that handles System.Threading on all platforms
20076
20077         * object.c: 
20078         * object.h: Remove the synchronisation struct from MonoObject,
20079         replace it with a pointer that gets initialised on demand
20080
20081         * Makefile.am: Replace all the system-specific threading code with
20082         a single file that uses the new wrapper library
20083
20084 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20085
20086         * class.c, class.h: add mono_install_trampoline() so that the runtime
20087         can register a function to create a trampoline: removes the ugly
20088         requirement that a runtime needed to export arch_create_jit_trampoline.
20089         * object.h, object.c: added mono_install_handler() so that the runtime
20090         can install an handler for exceptions generated in C code (with
20091         mono_raise_exception()). Added C struct for System.Delegate.
20092         * pedump.c: removed arch_create_jit_trampoline.
20093         * reflection.c: some cleanups to allow registering user strings and
20094         later getting a token for methodrefs and fieldrefs before the assembly
20095         is built.
20096         * row-indexes.h: updates and fixes from the new ECMA specs.
20097
20098 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20099
20100         * class.h, class.c: add enum_basetype field to MonoClass.
20101         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20102         to get index in the constant table reated to a field, param or
20103         property.
20104         * reflection.h, reflection.c: handle constructors. Set public-key and
20105         version number of the built assembly to 0.
20106         * row-indexes.h: update from new ECMA spec.
20107
20108 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20109
20110         * class.h, class.c: add a max_interface_id to MonoClass.
20111         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20112         since it's used to do that. Added mono_type_type_from_obj().
20113         Make GetType() return NULL instead of segfaulting if the type was not
20114         found. Handle simple arrays in assQualifiedName.
20115         * object.h: add a struct to represent an Exception.
20116         * reflection.c: output call convention in method signature.
20117         Add code to support P/Invoke methods and fixed offsets for fields.
20118
20119 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20120
20121         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20122         the value.
20123         * icall.c: use mono_array_addr instead of array->vector: fixes the
20124         reflection image writing.
20125         * reflection.c: init call convention byte to 0 in method signature.
20126         Encode the property signature. Don't output property-related methods
20127         twice. Really process the properties for a type (don't cast a field to
20128         a property, my mom always told me that).
20129         Fix 64 bit issues in pointer alignment in a different and more
20130         readable way.
20131
20132 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20133
20134         * loader.h: Removed type class from MonoDefaults, added monotype
20135
20136         * loader.c: Loaded MonoType, removed loading of Type
20137
20138         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20139         and fills in System.Type._impl with a RuntimeTypeHandle rather
20140         than the actual MonoClass *
20141
20142         (ves_icall_type_from_handle): change from type_class to
20143         monotype_class
20144
20145         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20146         implemented
20147
20148         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20149         implemented
20150
20151         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20152
20153         (ves_icall_System_Reflection_Assembly_GetType): implemented
20154
20155         (ves_icall_System_MonoType_assQualifiedName): implemented
20156
20157         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20158
20159 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20160
20161         * assembly.c (mono_assembly_open): Implement a cache for the
20162         assemblies. 
20163
20164         (mono_assembly_close): only destroy the assembly when the last
20165         reference is gone.
20166         
20167 2001-11-09  Dick Porter  <dick@ximian.com>
20168
20169         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20170
20171 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20172
20173         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20174
20175 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20176
20177         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20178         from Martin Weindel.
20179         * object.h: add mono_string_chars ().
20180
20181 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20182
20183         * reflection.c (build_compressed_metadata): Eliminates warnings
20184         and uses 64-bit clean code.
20185
20186         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20187         (mono_type_equal): Change signature to eliminate warnings.
20188
20189 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20190
20191         * icall.c, loader.c: remove the internalcall array constructors.
20192         Changes to match the new MonoArray structure.
20193         * object.h, object.c: an array object doesn't allocate an extra
20194         vector. Add mono_array_new_full () to create jagged arrays easily.
20195
20196 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20197
20198         * metadata.h, metadata.c: add mono_metadata_field_info () to
20199         retreive all the info about a field from vairous tables.
20200         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20201         * class.h, class.c: augment MonoClassField with more info.
20202         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20203         policy and load a field's RVA if needed.
20204
20205 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20206
20207         * class.c (mono_class_metadata_init): create a trampoline for all
20208         virtual functions instead of actually compiling them.
20209
20210 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20211
20212         * class.h, class.c: include name in MonoClassField.
20213         * class.c: fix fundamental type of System.Object and System.String.
20214         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20215         tokens in ldtoken.
20216         * icall.c: remove internalcalls for the Reflection stuff that is now
20217         done in C# code.
20218         * loader.c: mono_field_from_memberref () implementation.
20219         * mono-endian.c: thinko (s/struct/union/g).
20220         * object.c, object.h: make the mono_string_* prototypes actually use
20221         MonoString instead of MonoObject.
20222         * reflection.c, reflection.h: updates for changes in the reflection
20223         code in corlib: we use C structures that map to the actual C# classes.
20224         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20225         fat method header if needed and use the info from the ILGenerator for
20226         methods. Handle fields in types. Misc fixes.
20227
20228 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20229
20230         * class.c (mono_class_metadata_init): bug fix: always allocate
20231         space for static class data
20232
20233 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20234
20235         * class.c (mono_compute_relative_numbering): use relative
20236         numbering to support fast runtime type checks.
20237
20238 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20239
20240         * class.c (mono_class_create_from_typeref): added debugging output
20241         to print class name when MonoDummy is returned instead of real class
20242
20243 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20244
20245         * class.c (mono_class_metadata_init): interface offset table now
20246         contains pointers into the vtable - this is more efficient for the jit
20247
20248 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20249
20250         * class.c (mono_class_metadata_init): use a temporary vtable (the
20251         old algorithm only worked for the interpreter, but not for the jit)
20252
20253 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20254
20255         * loader.c (method_from_memberref): use mono_class_get to get the
20256         class of an array instead of using System.Array directly.
20257         (mono_get_method): also add MEMBERREF methods to the method cache
20258         which usefull for arrays.
20259
20260 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20261
20262         * pedump.c (arch_compile_method): added to compute vtable entry
20263
20264         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20265         number of interfaces.
20266         
20267         * class.h: merged MonoArrayClass into MonoClass
20268
20269         * class.c (mono_class_create_from_typedef): compute the vtable size and
20270         allocate space to include the vtable inside MonoClass
20271         (mono_class_metadata_init): initialize the vtable
20272
20273 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20274
20275         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20276         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20277         * image.c: endian fixes by Laurent Rioux.
20278         * object.h, object.c: rename MonoStringObject to MonoString and
20279         MonoArrayObject to MonoArray. Change some function names to conform to
20280         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20281         guint16* as first argument, so don't use char*.
20282         Provide macros to do the interesting things on arrays in a portable way.
20283         * threads-pthread.c: updates for the API changes and #include <sched.h>
20284         (required for sched_yield()).
20285         * icall.c: updates for the API changes above.
20286         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20287         platforms that need them.
20288
20289 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20290
20291         * class.c: set the correct type for all the fundamental
20292         type when loading the class.
20293
20294 2001-10-05  Dick Porter  <dick@ximian.com>
20295
20296         * threads-pthread.c (pthread_mutex_timedlock): Simple
20297         compatibility version for C libraries that lack this call.
20298
20299 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20300
20301         * class.c: MonoTypes stored in MonoClass are stored as
20302         fundamental MonoTypes when the class represents a
20303         fundamental type (System.Int32, ...).
20304         The TypeHandle return by ldtoken is a MonoType*.
20305         * icall.c: ves_icall_get_data_chunk () write out all the
20306         PE/COFF stuff. Implement ves_icall_define_method (),
20307         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20308         * image.c: properly skip unknown streams.
20309         * loader.h, loader.c: add type_class to mono_defaults.
20310         * metadata.c, metadata.h: export compute_size () as
20311         mono_metadata_compute_size () with a better interface.
20312         Typo and C&P fixes.
20313         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20314         * reflection.c, reflection.h: many cleanups, fixes, output method
20315         signatures and headers, typedef and typeref info, compress the metadata
20316         tables, output all the heap streams, cli header etc.
20317         * row-indexes.h: typo fixes.
20318
20319 2001-10-04  Dick Porter  <dick@ximian.com>
20320
20321         * object.h: Add a synchronisation mutex struct to MonoObject
20322
20323         * object.c (mono_new_object): Initialise the object
20324         synchronisation mutexes
20325
20326         * icall.c: System.Threading.Monitor internal calls
20327         
20328         * threads-pthread.h:
20329         * threads-pthread.c: System.Threading.Monitor internal calls
20330
20331         * threads-types.h: New file, includes the system-specific thread
20332         structures
20333         
20334         * threads-pthread-types.h:
20335         * threads-pthread-types.c: New files, handle pthread-specific
20336         synchronisation types
20337
20338         * threads-dummy-types.h: 
20339         * threads-dummy-types.c: New files of dummy support for
20340         thread-specific types
20341
20342         * metadata.c:
20343         * image.c:
20344         * pedump.c: include mono-endian.h not endian.h
20345         
20346         * Makefile.am: More threads files.
20347         Name mono-endian.h not endian.h
20348
20349 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20350
20351         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20352         stuff and implement a few more bits.
20353         * icall.c: a field needs to be dereferenced twice. Do not use the same
20354         name for two variables in the same scope.
20355         * image.c, image.h: cleanups.
20356
20357 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20358
20359         * class.c (mono_class_metadata_init): bug fix: compute the right size
20360
20361 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20362
20363         * icall.c: implemented some of the Reflection internalcalls.
20364         * image.c, image.h: start writing out the PE/COFF image.
20365         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20366         that does the reverse than decode_blob_size ().
20367         * object.c: use mono_metadata_encode_value (). Move here
20368         temporary implementation of mono_string_to_utf8 ().
20369         * rawbuffer.c: make malloc_map static.
20370
20371 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20372
20373         * metadata.c: fix type comparison for arrays.
20374         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20375         Added a couple of new classes to monodefaults.
20376         * icall.c: added a couple of Reflection-related internalcalls.
20377         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20378         Added a byval_arg MonoType to MonoClass.
20379
20380 2001-09-28  Dick Porter  <dick@ximian.com>
20381
20382         * icall.c:
20383         * threads-pthread.h: 
20384         * threads-pthread.c: Implemented internal calls for
20385         LocalDataStoreSlot operations.  Applied mutexes around all shared
20386         data.  Reworked the thread creation and Start() operations to
20387         avoid a race condition.
20388         
20389         * threads-dummy.h:
20390         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20391
20392 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20393
20394         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20395
20396 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20397
20398         * class.c, loader.c: warn and return NULL instead of erroring out.
20399         * icall.c: added System.AppDomain::getCurDomain().
20400         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20401
20402 2001-09-25  Dick Porter  <dick@ximian.com>
20403
20404         * threads-pthread.h:
20405         * threads-pthread.c: Implemented timed thread joining and added
20406         System.Threading.Thread::Join_internal internal call
20407
20408         * icall.c: Added System.Threading.Thread::Join_internal internal call
20409
20410         * threads-dummy.h:
20411         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20412
20413 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20414
20415         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20416         mono_string_intern () to implement the semantics of the ldstr opcode
20417         and the interning of System.Strings.
20418         * icall.c: provide hooks to make String::IsIntern and String::Intern
20419         internalcalls.
20420
20421 2001-09-23  Dick Porter  <dick@ximian.com>
20422
20423         * threads-dummy.c: 
20424         * threads-dummy.h: New files of dummy threading routines
20425
20426         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20427         support code based on system specifics
20428
20429         Rename PTHREAD_LIBS to THREAD_LIBS
20430         
20431 2001-09-23  Dick Porter  <dick@ximian.com>
20432
20433         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20434         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20435         internal calls.
20436         (mono_thread_init): Set up a Thread object instance to return when
20437         the main thread calls Thread.CurrentThread
20438         (mono_thread_cleanup): Wait for all subthreads to exit
20439
20440         * icall.c: New internal calls for System.Threading.Thread::Sleep
20441         (including Schedule) and CurrentThread
20442
20443         * threads.h: New file, to insulate thread-specific stuff from the
20444         rest of the code
20445
20446 2001-09-21  Dick Porter  <dick@ximian.com>
20447
20448         * threads-pthread.h: 
20449         * threads-pthread.c: New file, for handling pthreads-style
20450         threading support.  Start() now starts a new thread and executes
20451         the ThreadStart delegate instance.
20452
20453         * icall.c: Added the internalcall for
20454         System.Threading.Thread::Start_internal
20455
20456         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20457
20458 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20459
20460         * loader.c: work around the different signatures for delegates
20461         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20462
20463 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20464
20465         * class.h, class.c: add mono_class_get_field_from_name ().
20466         * *: Fix C comments and other ANSI C issues.
20467
20468 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20469
20470         * endian.h, assembly.c: fix some endianness issues.
20471
20472 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20473
20474         * loader.h, load.c: add delegate_class to mono_defaults.
20475         Handle runtime provided methods in mono_get_method ().
20476
20477 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20478
20479         * loader.c (mono_get_method): use pinvoke for internal call
20480
20481         * icall.c: use pinvoke for internal call
20482
20483         * loader.c (method_from_memberref): set the method name
20484
20485 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20486
20487         * metadata.c: help the compiler generate better code for
20488         mono_class_from_mono_type ().
20489
20490 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20491
20492         * class.c (mono_class_metadata_init): delayed computing of the
20493         class size to mono_class_metadata_init ()
20494
20495 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20496
20497         * class.c, class.h: add an interfaces member to MonoClass.
20498         * image.c, image.h: add assembly_name field to MonoImage
20499         from the assembly table.
20500         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20501
20502 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20503
20504         * class.c: Handle Array in mono_class_from_mono_type ().
20505         * metadata.c, pedump.c: some endian fixes.
20506
20507 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20508
20509         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20510         * metadata.c: fix small problem introduced with the latest commit.
20511
20512 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20513
20514         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20515         We don't need a MonoMetadata pointer anymore to compare signatures in
20516         mono_metadata_signature_equal (), update callers.
20517         Reduced memory usage an number of allocations for MonoMethodHeader and
20518         MonoMethodSignature.
20519
20520 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20521
20522         * metadata.c: added compare for szarray.
20523
20524 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20525
20526         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20527         and add a couple more types to it and mono_defaults. Give an hint on
20528         classes that need implementing in our corlib and are referenced
20529         in mscorlib.
20530
20531 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20532
20533         * class.h, class.c: keep track if a class is also an Enum.
20534         * loader.c: Implement a couple more types for use in libffi
20535         marshalling. Gives better diagnostics when failing to dlopen
20536         a library. Set method->klass for P/Invoke methods, too.
20537
20538 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20539
20540         * class.c, class.h: add a MonoType this_arg to MonoClass that
20541         represents a pointer to an object of the class' type that
20542         can be used by the interpreter and later the type cache.
20543         Add best guess alignment info for valuetype objects.
20544
20545 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20546
20547         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20548         into MonoType: one less level of indirection and allocation and
20549         simplifies quite a bit of code. Added cache for MonoTypes that are
20550         used frequently, so that we don't need to allocate them all the time.
20551
20552 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20553
20554         * class.c (mono_class_create_from_typedef): System.Enum is also a
20555         value type, although it does not derive from System.ValueType
20556         (maybe a bug in the ms compiler?)
20557
20558         * metadata.c (mono_type_size): return the right size for value types
20559
20560         * loader.c (mono_get_method): only initialize method header if not abstract
20561
20562         * class.c (mono_class_from_mono_type): use mono_default values. 
20563
20564 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20565
20566         * *: use MonoClass pointers instead of <type_tokens>
20567         
20568         * class.h: new flag: metadata_inited.
20569
20570         * class.c (mono_class_metadata_init): impl.
20571         (mono_class_instance_size): impl.
20572         (mono_class_data_size): impl.
20573
20574 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20575
20576         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20577         MonoClass now has the name and name_space fields. 
20578         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20579         mono_get_method () takes and optional MonoClass as argument.
20580         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20581         instead that takes advantage of a map from class names to typedef
20582         tokens in MonoImage.
20583
20584 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20585
20586         * metadata.c: zero is not a valid alignment boundary.
20587         Merge MONO_TYPE_VOID in default decoding code.
20588
20589 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20590
20591         * image.h: merged MonoMetadata into MonoImage
20592
20593         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20594         identify the type of elements.
20595
20596 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20597
20598         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20599         * cil-coff.h: split MonoMSDOSHeader and add size info.
20600         * image.c: add some consistency checks.
20601         * metadata.c: fix row size computation: one programmer
20602         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20603         add explanation for the locator routine.
20604         Fix decoding of size in method header.
20605         
20606 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20607
20608         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20609         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20610         function from gnome-libs.  This uses the right path separator
20611         based on the OS, and also works around a bug in some systems where
20612         a double slash is not allowed. 
20613         (default_assembly_name_resolver): Use g_concat_dir_and_file
20614         (mono_assembly_open): ditto.
20615
20616 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20617
20618         * metadata.c (mono_metadata_signature_equal): impl.
20619
20620         * *: void is now a realy MonoType (instead of using NULL)
20621         
20622         * metadata.c (do_mono_metadata_parse_type): use
20623         mono_metadata_parse_type to parse void value.
20624
20625 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20626
20627         * metadata.c, metadata.h: in the signature and method header store
20628         only the space required for holding the loca vars and incoming arguments.
20629
20630 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20631
20632         * metadata.c (do_mono_metadata_parse_type): treat void like any
20633         other type (instead of assigning NULL);
20634
20635 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20636
20637         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20638
20639 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20640
20641         * image.c (do_mono_image_open): added a cache for arrays.
20642
20643 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20644
20645         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20646         decode a single column from a row in a metadata table and changes
20647         to take advantage of it in the typedef locator (gives a nice speed up).
20648         Store offset info for function params.
20649
20650 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20651
20652         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20653
20654 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20655
20656         * assembly.c: how could mono_assembly_close () had ever worked?
20657         * metadata.c, metadata.h: provide offset info for local vars.
20658         Implement mono_type_size () to take care of alignment as well
20659         as size (it was mono_field_type_size in cli/class.c before).
20660
20661 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20662
20663         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20664
20665         * assembly.h (CORLIB_NAME): set to corlib.dll
20666
20667         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20668
20669 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20670
20671         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20672         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20673         tokentype.h: massive namespace cleanup.
20674
20675 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20676
20677         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20678
20679 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20680
20681         * metadata.c (mono_metadata_free_type): added check for type !=
20682         NULL (void) before calling mono_metadata_free_type()
20683
20684 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20685
20686         * metadata.h, row_indexes.h: added header with enumerations to use
20687         to index in the columns from tables in metadata and to decode coded
20688         tokens: we should start using this instead of embedding magic numbers
20689         all over the code.
20690
20691 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20692
20693         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20694         Move metadata_t info from cli_image_info_t to MonoImage, where
20695         it's easily accessible. Changed all the uses accordingly.
20696         Added the method and class caches to MonoImage.
20697         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20698         and mono_metadata_decode_value () signature to be more consistent
20699         with the other parse functions (and simplify code). Taken advantage
20700         of zero-length array allocation with GCC. Removed reduntant (and
20701         wrong) MonoFieldType struct and use MonoParam instead. Changed
20702         mono_metadata_parse_field_type () to use common code for parsing.
20703         Added mono_metadata_typedef_from_field () and
20704         mono_metadata_typedef_from_method () to lookup a typedef index from a
20705         field or method token.
20706         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20707
20708 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20709
20710         * metadata.c (mono_metadata_parse_field_type): Implement. 
20711         (do_mono_metadata_parse_type): Split engine from
20712         mono_metadata_parse_type, so that we can create smaller structures
20713         for things that just have one pointer to the MonoType (look at
20714         the MonoFieldType)
20715
20716 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20717
20718         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20719         as Jan Gray found out, it is incorrect. 
20720
20721 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20722
20723         * assembly.c: Implement asssembly loading.  This loads an image
20724         and loads all the referenced assemblies.  Come to think of it, we
20725         could always do lazy loading of the assemblies. 
20726
20727         * image.c (mono_image_open): Keep loaded images in a hashtable.
20728
20729         * image.h (MonoImage): Add reference count.
20730
20731 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20732
20733         * assembly.c (mono_assembly_open): Keep track of the file name in
20734         case the assembly has no ASSEMBLY table.
20735
20736         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20737         from get.c here.
20738
20739 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20740
20741         * metadata.c, metadata.h: decode local vars in method header
20742         parse function. Change callers accordingly.
20743
20744 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20745
20746         * metadata.h, cil-coff.h: protect against multiple inclusion.
20747         Added some new structures to hold information decoded from metadata:
20748         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20749         and relevant decoding/free functions.
20750         * metadata.c: implement decoding functions. Add warning for out of bounds
20751         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20752         all the info about a method signature and invocation. Remove check on
20753         uninitialized local var in parse_mh() and fix memory leak.
20754
20755 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20756
20757         * metadata.h: More macros.
20758
20759         * tokentype.h: New file.
20760
20761 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20762
20763         * assembly.c: added a consistency check and initialize
20764         some structures with g_new0().
20765         * metadata.c: fixed a couple more bugs in table size computation
20766         and add other checks for out-of bound access to metadata.
20767
20768 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20769
20770         * metatada.c: fix bugs computing table sizes. Spew a
20771         warning when index in string heap is out of bounds.
20772
20773 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20774
20775         * metadata.h: Add a couple of macros to manipulate tokens. 
20776
20777 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20778
20779         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20780         cli_section_tables).
20781
20782 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20783
20784         * metadata.c (mono_metadata_user_string): New function, provides
20785         access to the UserString heap. 
20786
20787 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20788
20789         * metadata.c: Add inline documentation.
20790
20791 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20792
20793         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20794         files. 
20795
20796 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20797
20798         * typeattr.h: New file, TypeAttribute flags. 
20799
20800 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20801
20802         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20803         mono_assembly_ensure_section): Section loading code.
20804         (load_section_tables): Load the sections.
20805
20806         * mono/metadata/metadata.c (mono_metadata_locate_token,
20807         mono_metadata_locate): Functions to locate the information
20808         definition given a token or a table and an index.
20809         (mono_metadata_compute_table_bases): New.
20810         (compute_size): New function to compute the sizes of the various
20811         tables.
20812
20813         * mono/metadata/metadata.h: Finish listing the different index
20814         types. 
20815
20816         * mono/metadata/pedump.c: Improve to dump new information.
20817
20818 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20819
20820         * mono/metadata/metadata.c: Entered all the tables matching
20821         Beta2. 
20822
20823         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20824
20825
20826