Implement MS .Net style shadow copying
[mono.git] / mono / metadata / ChangeLog
1 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2
3         * appdomain.c: implement MS .Net style shadow copying. Copies of
4         the assemblies are made in a subdirectory of the dynamic base
5         directory, the assembly names are preserved.
6         Copy .mdb and .config files along with the assemblies being shadowed.
7
8 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
9
10         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
11         (emit_marshal_handleref): Ditto.
12
13         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
14         on Visual C++. Fixes #80671.
15
16 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
17
18         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
19         for clone operations.
20
21 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
22
23         * marshal.c: Fix warnings.
24
25 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
26
27         * loader.c: allow case-insensitive matching of the dll name
28         in dllmap handling when prefixed with "i:".
29
30 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
31
32         * threads.c: Fix #ifdef for dummy_apc function for VS.
33
34 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
35
36         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
37
38 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
39         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
40         giving precedence to the methods with a fully qualified name
41         (InterfaceName.MethodName) when building the interface sections
42         of the vtable.
43
44 2007-02-16  Dick Porter  <dick@ximian.com>
45
46         * threadpool.c (append_job): Fix fast-path array handling, so it's
47         less likely the array will grow exponentially when the load is
48         heavy.
49
50 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
51
52         * metadata-internals.h, loader.c: fix dllmap lookup order
53         for non-function maps, too, and prepare for fallback code.
54
55 2007-02-12  Robert Jordan  <robertj@gmx.net>
56
57         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
58         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
59         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
60         GlobalFree. Fixes a part of bug #77075.
61
62 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
63
64         * loader.c: implemented typedef parent in field memberref.
65
66 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
67
68         * marshal.c: Fix warnings and remember to call Release on
69         IUnknown of RCW.
70         
71         Code is contributed under MIT/X11 license.
72
73 2007-02-10  Miguel de Icaza  <miguel@novell.com>
74
75         * class-internals.h: Add MonoHandleRef definition, and
76         handleref_class to mono_defaults. 
77
78         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
79         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
80
81         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
82         (do nothing on this stage)
83         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
84         (emit_marshal_handleref): New method, used for argument handling
85         of HandleRefs. 
86
87 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
88
89         * class.c (mono_class_setup_parent): Lazily init com types.
90         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
91         init com types.
92         * object.c (mono_remote_class_vtable): Lazily init com types.
93         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
94         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
95         * domain-internals.h: Expose mono_init_com_types.
96         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
97         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
98         Add support for COM Callable Wrapper marshalling.
99         * marshal.h: Add icall definitions.
100         * gc.c: Handle freeing of CCWs in finalizer code.
101         
102         Code is contributed under MIT/X11 license.
103
104 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
105
106         * reflection.c: changed all the signature encoding code to use
107         a variable-sized buffer.
108
109 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
110
111         * marshal.c: locking fixes: never take the loader lock
112         or other runtime locks when holding the marshal lock
113         (fixes bug#80664).
114
115 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
116
117         * marshal.c: make the delegate function pointer mapping
118         work for the moving GC.
119
120 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
121
122         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
123         for bug #80618.
124
125 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
126
127         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
128         gmodule.
129
130 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
131
132         * threadpool.c: made the code moving-GC safe.
133
134 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
135
136         * assembly.c, boehm-gc.c, class-internals.h, class.c,
137         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
138         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
139         warning cleanup.
140         * reflection.c: warning cleanup, some threading and moving GC fixes.
141
142 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
143
144         * class.c, loader.c: create the needed Set/Get/Address array methods
145         as well as the .ctors in mono_class_init (), fixes bug #80567.
146
147 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
148
149         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
150         we doesn't decrease its alignment. Should fix the sparc build.
151
152 2007-01-24  Dick Porter  <dick@ximian.com>
153
154         * socket-io.c
155         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
156         Create the returned object if we need to ignore an unsupported
157         socket option.  Fixes a segfault reported by Atsushi.
158
159 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
160
161         * class.c, object.c: restrict GC-tracked fields to
162         UIntPtr fields used inside corlib, so we provide better
163         type info to the GC and also allow broken packing as in
164         bug #80580.
165
166 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
167
168         * sgen-gc.c: removed duplicated function.
169
170 2007-01-19  Miguel de Icaza  <miguel@novell.com>
171
172         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
173         value that means that the value is not supported, but that we
174         should not return a failure, but instead report this as a
175         successful operation.
176
177 2007-01-19  Raja R Harinath  <rharinath@novell.com>
178
179         Fix tests/bug79956.2.il
180         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
181         (mono_generic_class_get_class): If the generic definition in an
182         enum, copy over other fields related to it.
183
184 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
185
186         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
187         genericinst enums (bug #79215).
188
189 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
190         * class.c: Fix bug 80307.
191
192 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
193
194         * image.c: if the file table is not present, try to load
195         all the modules, since we don't have info about them
196         having or not metadata (bug #80517).
197         * assembly.c: allow mono_assembly_load_references () to
198         work for netmodules.
199
200 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
201
202         * image.c, metadata-internals.h, object.c: execute module
203         cctors when running on the 2 runtime if present (bug #80487).
204
205 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
206
207         * icall.c: optimized InitializeArray() on bigendian.
208
209 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
210
211         * icall.c: fix for the broken ARM FPA double format.
212
213 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
214
215         * icall.c: handle endian issues for r4 and r8 types, too, in
216         the InitializeArray() icall.
217
218 2007-01-15  Miguel de Icaza  <miguel@novell.com>
219
220         * loader.c (mono_loader_error_prepare_exception): Clear the error
221         once we have extracted the information from it, do this before we
222         call into the JIT's class loading mechanisms.
223
224         * object.c (mono_class_create_runtime_vtable): Do not clear the
225         loader error before calling mono_class_get_exception_for_failure
226         as the loader error is needed inside
227         mono_class_get_exception_for_failure to throw the error (thinko).
228
229         Fixes #80521
230         
231 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
232
233         * reflection.c: align fields rva data so it's faster to load at
234         runtime.
235
236 2007-01-12  Raja R Harinath  <rharinath@novell.com>
237
238         Prepare to simplify GenericMethod handling.
239         * class-internals.h (mono_method_get_context): New accessor function.
240         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
241         rather than directly accessing '->context' field.
242
243         * class-internals.h (_MonoGenericParam.method): Move ...
244         (_MonoGenericContainer): ... here.  Add into union with klass field.
245         * class.c, icall.c, loader.c, metadata.c, reflection.c:
246         Update to changes.
247
248 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
249
250         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
251         the wrapper type enum and reduce relocations.
252
253 2007-01-12  Raja R Harinath  <rharinath@novell.com>
254
255         * reflection.c (inflate_mono_method): Reuse method instantiation
256         from the generic method, if available.
257
258 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
259
260         * marshal.c (emit_marshal_variant): Fix conv_arg
261         type in last commit, based on whether parameter is byref.
262         
263 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
264
265         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
266         marshalling.
267         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
268         MONO_TYPE_OBJECT back for VARIANT support.
269
270 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
271
272         * marshal.c, marshal.h, icall-def.h: Implement 
273         Marshal.ReAllocCoTaskMem.
274
275 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
276
277         * marshal.c: memory retention fixes: use the proper
278         image cache for runtime_invoke method lookups.
279
280 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
281
282         * mempool.c: added code to help debug mempool allocations.
283
284 2007-01-11  Dick Porter  <dick@ximian.com>
285
286         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
287         support (experimenting with faking it with IP_MTU_DISCOVER for
288         systems that don't have IP_DONTFRAGMENT.)
289         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
290         icall.
291
292         * icall-def.h: new System.Net.Sockets.Disconnect icall.
293
294         * socket-io.h: Add new fields to MonoSocketAsyncResult
295         corresponding to the new ones in Socket.cs.
296
297 2007-01-11  Raja R Harinath  <rharinath@novell.com>
298
299         Fix IronPython regression mentioned in #80249
300         * metadata.c (do_mono_metadata_parse_generic_class): Clear
301         'cached_context' field, since it may have been initialized as a
302         side-effect of metadata parsing.
303
304         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
305         (_MonoGenericClass.cached_class): Move here and rename from lone
306         remaining field of ...
307         (_MonoInflatedGenericClass): ... this.  Remove.
308         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
309         to changes.
310
311         Fix mcs/tests/test-128.cs regression.
312         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
313         2007-01-10 change below.
314         [MONO_TYPE_OBJECT]: Recurse into array case.
315
316 2007-01-11  Raja R Harinath  <harinath@gmail.com>
317
318         * class-internals.h (mono_get_inflated_generic_class): Remove.
319         * class.c (mono_get_inflated_generic_class): Remove.
320         (mono_generic_class_get_class): Rename from
321         mono_class_create_generic.
322         (mono_class_from_mono_type) [GENERICINST]: Use it.
323         * reflection.c, metadata.c: Update to changes.  Use
324         'mono_class_from_mono_type'.
325
326 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
327
328         * reflection.c: use passed type when encoding an array element
329         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
330
331 2007-01-09  Robert Jordan  <robertj@gmx.net>
332
333         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
334         result arguments (someDelegate.EndInvoke (unrelatedAres)).
335         Fixes bug #80392.
336
337 2007-01-09  Raja R Harinath  <rharinath@novell.com>
338
339         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
340
341         * object.c (set_value): Avoid aliasing between type->data.klass
342         and type->data.generic_class.
343
344         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
345
346 2007-01-08  Raja R Harinath  <rharinath@novell.com>
347
348         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
349         between type->data.klass and type->data.generic_class.
350
351 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
352
353         * marshal.c: In MS.NET, StringBuilder objects are not copied by
354         value in out parameters.
355
356 2007-01-08  Raja R Harinath  <rharinath@novell.com>
357
358         Simplify invariant for MonoGenericClass::klass field.
359         * class.c (mono_class_create_generic): Verify 'klass' is null.
360         * metadata.c (do_mono_metadata_parse_generic_class): Don't
361         initialize 'klass' field.
362
363 2007-01-05  Raja R Harinath  <rharinath@novell.com>
364
365         Ongoing work to avoid redundant data and simplify invariants.
366         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
367         'generic_class', and change type to a GenericInst.
368         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
369         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
370
371 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
372
373         * class.c : skip io-layer under PLATFORM_WIN32.
374
375 2007-01-03  Tor Lillqvist  <tml@novell.com>
376
377         Fix #80305: In a bundled executable, look in the bundled exe
378         assembly to determine the runtime version. Add the possibility to
379         bundle also the machine.config file.
380         
381         * assembly.c (mono_assembly_open_from_bundle): Make
382         non-static. Allow being called even if we have no bundled
383         assemblies, and return NULL right away in that case.
384
385         * domain-internals.h: Declare mono_assembly_open_from_bundle()
386         here.
387
388         * domain.c (app_config_parse): Take an assembly exe file name as
389         parameter instead of a config file name. Check for a bundled
390         config file for that assembly by calling
391         mono_config_string_for_assembly_file() (see below) before looking
392         for one in the file system.
393         (get_runtimes_from_exe): Corrsponding change to call of
394         app_config_parse().
395         (get_runtimes_from_exe): Check for bundled assembly exe file first
396         by calling mono_assembly_open_from_bundle(). If no bundled
397         assembly exe file is found, call mono_image_open() as before to
398         look it up in the file system.
399
400         * mono-config.c: Add variable bundled_machinec_onfig.
401         (mono_config_string_for_assembly_file): New function.
402         (mono_config_for_assembly): Move code snippet that looks for a
403         bundled assembly .config file into the above new function. Call
404         it.
405         (mono_register_machine_config, mono_get_machine_config): New
406         functions to set and retrieve
407
408         * assembly.h: Declare mono_register_machine_config().
409
410         * mono-config.h: Declare mono_get_machine_config() and
411         mono_config_string_for_assembly_file().
412
413         * icall.c: No declaration of environ necessary on Win32. It is
414         declared (as a macro expanding to a function call) in stdlib.h.
415         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
416         New internal mono function. Returns the value of
417         mono_get_machine_config() as a Mono string.
418
419         * icall-def.h: Add get_bundled_machine_config().
420
421 2007-01-04  Raja R Harinath  <rharinath@novell.com>
422
423         Remove redundant field
424         * class-internals.h (_MonoGenericContext.container): Remove field.
425         * loader.c (mono_method_get_signature_full): Don't parse a
426         "container" for a signature parse when the signature is inflated
427         immediately.
428         (method_from_methodspec): Likewise, for a generic_inst.
429         * class.c, metadata.c, reflection.c: Update to changes.
430
431 2006-01-04  Raja R Harinath  <rharinath@novell.com>
432
433         * class-internals.h (_MonoGenericClass): Rename 'context' field to
434         'cached_context', and change semantics -- it starts off NULL, and
435         is initialized on demand.
436         * class.c (mono_generic_class_get_context): New accessor to
437         replace 'context' field accesses.
438         (mono_class_get_context): New helper.
439         (*): Update to changes.
440         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
441
442 2007-01-03  Miguel de Icaza  <miguel@novell.com>
443
444         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
445         before the memcpy.   Fixes Marshal2 regression.
446
447 2007-01-02  Jb Evain  <jbevain@gmail.com>
448
449         * blob.h: add a MONO_TYPE_ENUM definition
450         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
451         fix the encoding of arrays of enums in custom attributes.
452
453         Fixes #79666.
454
455 2007-01-01  Miguel de Icaza  <miguel@novell.com>
456
457         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
458         string is null terminated, but only cut the string short if it
459         overflows the buffer.   
460         
461         (mono_string_to_byvalstr): Also fix this routine.   The code here
462         was not properly terminating a string (it was only terminated
463         because of the previous catch-all memset). 
464
465         I left the memset, because I do not know if applications expect
466         the runtime to clear this region. 
467
468         Fixes #79944.
469
470         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
471         Clear the error before returning to unmanaged code to prevent the
472         runtime from being confused later on (fixes  80420).
473         (ves_icall_type_from_name): Always call mono_loader_clear_error
474         after parsing a type that could have failed.
475         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
476
477         * loader.c (mono_loader_clear_error): Fix indentation.
478
479 2006-12-28  Martin Baulig  <martin@ximian.com>
480
481         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
482
483 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
484
485         * reflection.c: patch from Rolf Bjarne Kvinge to fix
486         getting a token for an EnumBuilder.
487
488 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
489
490         * reflection.c: be more careful in case resource generation
491         fails to create the data array.
492
493 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
494
495         * sgen-gc.c: write barrier for clone and fix unregister handles.
496
497 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
498
499         * reflection.c: some fixes needed in the generics code for the moving GC.
500
501 2006-12-22  Robert Jordan  <robertj@gmx.net>
502
503         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
504         account. Fixes bug #80299.
505
506 2006-12-21  Raja R Harinath  <rharinath@novell.com>
507
508         Fix WaitHandle usage in delegates.
509         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
510         * object.c (mono_wait_handle_new): Use the property set method to
511         initialize the handle.
512         (mono_wait_handle_get_handle): New.
513         * threadpool.c (mono_async_invoke): Use it.
514         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
515         Likewise.
516         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
517
518 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
519
520         * marshal.c (emit_marshal): Call emit_marshal_variant and
521         emit_marshal_com_interface when applicable.
522         (emit_marshal_variant, emit_marshal_com_interface): Add
523         methods for this case and remove if's from emit_marshal_object.
524         
525 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
526
527         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
528
529 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
530
531         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
532         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
533         and GlobalFree on Windows. Remove FIXME.
534
535 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
536
537         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
538         implementation for managed objects.
539
540 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
541
542         * object.c: implemented code to be used for checking
543         that no reference field overlaps with non-references.
544
545 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
546
547         * threadpool.c: fix queue code to be compatible with the
548         moving GC.
549
550 2006-12-18  Miguel de Icaza  <miguel@novell.com>
551
552         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
553         in structures by throwing ArgumentNullException.
554
555         (emit_marshal_safehandle): Also when they are null parameters.
556
557         (emit_marshal_safehandle): Add support for ref
558         SafeHandles parameters
559
560 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
561
562         * profiler.c: updated to use the mono-dl API instead of
563         gmodule.
564
565 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
566
567         * profiler.c: updated to use the mono-dl dynamic loading
568         API instead of gmodule.
569
570 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
571
572         * profiler.c: use readlink, older versions of glib don't have
573         g_file_read_link ().
574
575 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
576
577         * profiler.c: try to detect the path to mono if libc fails to provide
578         a useful name (bug #80286).
579
580 2006-12-16  Raja R Harinath  <rharinath@novell.com>
581
582         Fix #80242
583         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
584         instance, use the generic type definition instead.
585         (ves_icall_Type_GetNestedTypes): Likewise.
586         * class.c (mono_class_create_generic): Always set the
587         nested_classes of a generic instance to NULL, even if the generic
588         type definition has nested types.
589
590 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
591
592         * marshal.c (mono_string_from_bstr): Revert previous Windows change
593         and fix on Linux.
594         
595 2006-12-15  Miguel de Icaza  <miguel@novell.com>
596
597         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
598         my arguments were in the wrong order.   I also fixed the Windows
599         version which seems to have had the same issue.
600
601         (mono_free_bstr): On Unix, this is g_free.
602         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
603         conversions (for the tests in corlib to pass).
604
605 2006-12-14  Miguel de Icaza  <miguel@novell.com>
606
607         * marshal.c (emit_ptr_to_object_conv): For now, ignore
608         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
609         exception if a ref SafeHandle in a struct has changed).
610         
611         (emit_struct_conv): Do not perform layout checks for classes
612         derived from SafeHandle, as those are specially handled. 
613
614         (emit_object_to_ptr_conv): Add support for
615         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
616
617         (emit_marshal_safehandle): Implement conversion of return values
618         of safehandles (MARSHAL_ACTION_CONV_RESULT).
619         
620         * threads.c: WaitHandle now is compiled with two different handles
621         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
622         for 2.0.
623         
624         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
625         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
626         these routines to cope with both kinds of fields.
627
628 2006-12-12  Miguel de Icaza  <miguel@novell.com>
629
630         * metadata.c (mono_type_to_unmanaged): Handle the case where
631         type->data.klass is a SafeHandle, and in that case, return the
632         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
633         MONO_MARSHAL_CONV_SAFEHANDLE. 
634
635 2006-12-11  Miguel de Icaza  <miguel@novell.com>
636
637         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
638         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
639         calling emit_marshal_object.
640
641         (emit_marshal_safehandle): Implement marshalling of
642         SafeHandle parameters (no ref support yet).
643
644         (MarshalAction): Document the defines as I implement
645         them for SafeHandle.
646
647         (emit_marshal_object): indentation police.
648
649         * class-internals.h: Define MonoSafeHandle.
650         Add safehandle_class to MonoDefaults type.
651
652         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
653         list of classes to check for fields. 
654
655         * domain.c (mono_init_internal): Add SafeHandle to the list of
656         mono_defaults loaded.
657
658 2006-12-15  Raja R Harinath  <rharinath@novell.com>
659
660         Fix #80253
661         * reflection.c (mono_reflection_bind_generic_parameters): If the
662         generic type definition is a type builder, ensure that it is fully
663         initialized before instantiating it.  Kill some dead code.
664
665 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
666
667         * object.c: clear the loader_error () before loading
668         more metadata stuff (bug #80258).
669
670 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
671
672         * icall.c, icall-defs.h: type modifiers icalls for
673         parameters and properties.
674
675 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
676
677         * object.c, icall.c: fixed warnings.
678
679 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
680
681         * marshal.c: fixed a couple of leaks and coding style in a few places.
682
683 2006-12-08  Dick Porter  <dick@ximian.com>
684
685         * process.c: Cope with NULL ProcessStartInfo arguments on windows
686         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
687         80173.
688
689 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
690
691         * process.c: ProcessStartInfo may have only filename set and
692         arguments can be NULL.
693
694 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
695
696         * icall.c: fix leak found by Robert Jordan.
697
698 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
699
700         * marshal.c, marshal.h: generate managed method to access an element
701         of a multi-dimensional array.
702
703 2006-11-30  Paolo Molaro (lupus@ximian.com)
704
705         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
706
707 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
708
709         * icall.c: back out GetFields () fix until the serialization code is
710         fixed to not depend on the incorrect behaviour.
711
712 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
713
714         * profiler.c: provide defaults if none are set.
715
716 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
717
718         * Makefile.am, attrdefs.h: new public header file with
719         constants for attributes for use by embedders.
720
721 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
722
723         * icall.c: GetFields () fix for bug #80064.
724
725 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
726
727         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
728         removed long unused icalls.
729
730 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
731   
732         * marshal.c: 
733                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
734                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
735                 can be generated without a delegate class.
736                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
737         
738         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
739
740 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
741
742         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
743         #80069.
744
745 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
746
747         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
748         icall-def.h: added icalls needed by System.GC.
749
750 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
751
752         * loader.c: ensure the class in catch clauses is handled
753         correctly for generics methods (fixes bug#79980).
754
755 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
756
757         * monitor.h, monitor.c: added mono_locks_dump () function
758         to help debug deadlocks involving managed locks.
759
760 2006-11-13  Dick Porter  <dick@ximian.com>
761
762         * file-io.c (get_file_attributes): If the file is a symlink try
763         and get the stat data for the target, but also add the
764         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
765         the specs for the windows symlink support, but will probably have
766         to be reworked when I have test data from a vista machine.  Fixes
767         bug 79887.
768
769 2006-11-13  Dick Porter  <dick@ximian.com>
770
771         * gc.c (mono_domain_finalize): 
772         * marshal.c (mono_delegate_begin_invoke): 
773         * threadpool.c (socket_io_init, mono_thread_pool_init)
774         (mono_thread_pool_finish): 
775         * monitor.c (mono_monitor_try_enter_internal): 
776         * threads.c (mono_thread_resume, mono_thread_init)
777         (mono_thread_suspend_all_other_threads)
778         (mono_thread_execute_interruption): 
779         * appdomain.c (mono_domain_unload): Check for NULL error returns
780         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
781         75733.
782
783 2006-11-11  Miguel de Icaza  <miguel@novell.com>
784
785         * process.c
786         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
787         Only close the handle if the value of the handle is not
788         INVALID_HANDLE_VALUE.  This just makes the process a bit more
789         robust.
790
791         Improvement for #75733, so that we do not run into this problem. 
792
793         
794         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
795         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
796         internal variables.  Fixes #79462 
797         
798
799 2006-11-09  Dick Porter  <dick@ximian.com>
800
801         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
802         Use poll() not select().  Fixes bug 79397.
803
804 2006-11-09  Raja R Harinath  <rharinath@novell.com>
805
806         Fix #79872
807         * assembly.c (mono_assembly_load_from_full): Check that the given
808         image has an assembly manifest.
809
810 2006-11-09  Ankit Jain  <jankit@novell.com>
811
812         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
813         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
814         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
815
816 2006-11-07  Dick Porter  <dick@ximian.com>
817
818         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
819         Put the old resolver behaviour back for pre-2.0 profiles.
820
821 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
822
823         * threadpool.c: precise GC and locking fixes.
824
825 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
826
827         * class.c: don't load types that have an explicit unaligned
828         managed reference. Provide better info in the TypeLoad exception.
829         Part of the fix for bug #79744.
830         * object.c: use the correct check for class type load issues.
831
832 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
833
834         * class.c: enforce alignment of fields with managed references
835         even when Pack=1 is forced by the user (bug #77788).
836
837 2006-11-03  Dick Porter  <dick@ximian.com>
838
839         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
840         If the address reverse lookup fails, return it as the hostname
841         anyway.  Fixes bug 79721.
842
843 2006-11-03  Dick Porter  <dick@ximian.com>
844
845         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
846         Fix build on Windows.
847
848 2006-11-02  Dick Porter  <dick@ximian.com>
849
850         * icall-def.h: 
851         * object-internals.h: 
852         * exception.c (mono_get_exception_thread_interrupted): 
853         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
854         Fixes bug 74525.
855
856         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
857         Check for pending Thread.Interrupt.
858
859 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
860         * loader.c: Fixed bug 79684.
861
862 2006-10-27  Dick Porter  <dick@ximian.com>
863
864         * file-io.c (get_file_attributes): Force symlinks to directories
865         to be returned as a regular file.  Fixes bug 79733.
866 2006-10-26  Dick Porter  <dick@ximian.com>
867
868         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
869         CreateFile to open a directory then we need to set the
870         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
871
872 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
873
874         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
875         friends.
876
877 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
878
879         * sgengc.c: small cleanup of timer code.
880
881 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
882
883         * sgen-gc.c: fix some warnings and start adding support for
884         complete object removal on domain unload.
885
886 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
887
888         * assembly.c: build_assembly_name should not consider a version
889         number without build or revision number invalid. Fixes bug #79715.
890
891 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
892
893         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
894         call kernel32 function OutputDebugString directly.
895         
896         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
897         
898 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
899
900         * reflection.c: small cleanup, using a function to insert a MonoString
901         in the string heap.
902
903 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
904
905         * reflection.c: moving GC fixes.
906
907 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
908
909         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
910         all the objects with finalizers belonging to an unloading appdomain.
911
912 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
913
914         * sgen-gc.c: added ability to allocate even when the nursery is fully
915         pinned and fixed a couple of bugs.
916
917 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
918
919         * threads.h: Revert the last change for now.
920
921         * threads.h (mono_thread_get_pending_exception): Rename this to
922         mono_thread_get_undeniable_exception ().
923
924 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
925
926         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
927         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
928         when fname does not refer to valid assembly. This result in a more
929         meaningful error message.
930         * exception.c: added mono_get_exception_bad_image_format2 which 
931         constructs a BadImageFormatException using the ctor taking a custom
932         message and the file name. Passing in a NULL msg results in a default
933         message.
934         * exception.h: define mono_get_exception_bad_image_format2 function.
935         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
936         when file name pointed to an invalid IL image. Use 
937         mono_get_exception_file_not_found2 to construct FileNotFoundException,
938         as this results in a more meaningful error message.
939
940 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
941
942         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
943         #79465.
944
945 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
946
947         * metadata.c (mono_type_size): Change the align parameter to guint32 for
948         consistency with the other _size functions.
949         (mono_type_stack_size): Ditto.
950
951         * class.c object.c icall.c: Fix warnings caused by the above change.
952
953         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
954
955         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
956
957         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
958
959 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
960
961         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
962         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
963         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
964         threadpool.h, threads-types.h: mark more internal functions.
965
966 2006-10-11  Dick Porter  <dick@ximian.com>
967
968         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
969         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
970         reproduce the bug even before applying the fix.)
971
972 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
973
974         * reflection.c: allow retrieving attributes for arguments in generic
975         methods (bug #79241).
976
977 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
978
979         * debug-mono-symfile.c: properly check fopen () result (found by
980         coverity).
981
982 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
983
984         * reflection.c: make error message clearer and fixed two
985         issuelets found by Coverity.
986
987 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
988
989         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
990
991 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
992
993         * object-internals.h, gc-internal.h, profiler-private.h:
994         mark internal functions.
995
996 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
997
998         * reflection.c: put data in the text section.
999         * icall.c: recognize more types in type_from_typename ().
1000         * process.c, marshal.c: added some GC FIXMEs.
1001
1002 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1003
1004         * loader.c: check for NULL before initializing.
1005
1006 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1007
1008         * gc.c (finalizer_thread): Use a non-alertable wait here.
1009
1010         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1011         until the correct solution is found.
1012
1013 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1014
1015         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1016         modules with no metadata. Fixes #79596.
1017
1018         * image.c (load_metadata_ptrs): Put back the error message when
1019         the #- heap is encountered since the support is not complete yet.
1020
1021 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1022
1023         * gc.c: do not allow the user to SuppressFinalize () a
1024         delegate because it would leak the trampoline if present.
1025
1026 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1027
1028         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1029         PropertyPtr table.
1030
1031 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1032
1033         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1034
1035         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1036
1037         * row-indexes.h: Add definitions for *Ptr tables.
1038
1039         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1040
1041         * metadata.c (mono_metadata_translate_token_index): New helper function to
1042         translate table indexes used in uncompressed metadata.
1043         (mono_metadata_decode_table_row): Ditto.
1044         (mono_metadata_decode_table_row_col): Ditto.
1045
1046         * metadata.c: Add table schema for *Ptr tables.
1047
1048         * class.c loader.c: Use the new helper function to access the affected metadata
1049         tables.
1050         
1051         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1052         #38532.
1053         
1054 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1055
1056         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1057         sequences which can be unbounded in size. Fixes #79583.
1058
1059 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1060
1061         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1062         static initialization.
1063
1064         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1065
1066         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1067
1068         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1069
1070         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1071         ctor fails, i.e. throw the same exception on subsequent accesses.
1072         
1073 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1074
1075         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1076         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1077         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1078         Handle marshalling of interfaces and VARIANTs contained in structs.
1079         
1080         Code is contributed under MIT/X11 license.
1081         
1082 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1083
1084         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1085         
1086         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1087         mempool.
1088
1089 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1090
1091         * console-io.c: ignore previous SIGINT handler.
1092
1093 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1094
1095         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1096         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1097         #79460, #79461, #79485.
1098
1099         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1100
1101         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1102         #79217.
1103
1104 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1105
1106         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1107         could be generated from it.
1108
1109 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1110
1111         * rand.c: fix read loop to correctly handle EINTR.
1112
1113 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1114
1115         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1116         internal calls are defined to keep methods closer to the declaring
1117         type and allow a significant reduction in runtime relocations and
1118         memory usage.
1119
1120 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1121
1122         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1123         exception message to have FileNotFoundException use the default
1124         assembly load error message. Fixes bug #79426.
1125         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1126
1127 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1128
1129         * threadpool.c: (start_thread_or_queue) use the root domain when
1130         creating the thread instead of the async object one.
1131
1132 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1133
1134         * class.c, object.c, class-internals.h, reflection.c:
1135         for arrays, store element_size inside MonoClass (speedup
1136         for array object creation).
1137
1138 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1139
1140         * icall.c: fixed CodeBase to use the file name and not the module
1141         name (bug #79365).
1142
1143 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1144
1145         * mono-debug.c, mono-debug.h: export find_method as
1146         mono_debug_find_method ().
1147
1148 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1149
1150         * debug-helpers.c, class-internals.h: added a few functions useful
1151         when debugging under gdb.
1152
1153 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1154
1155         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1156         characters that need special handling.
1157
1158 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1159
1160         * mono-config.c: make the os/cpu specification more flexible,
1161         allowing lists and negation.
1162
1163 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1164
1165         * marshal.c: COM Interop fixes. Handle case where method->klass.
1166         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1167         calling convention on non-windows platforms. This is for
1168         compatibility with XPCOM and MainWin COM.
1169         
1170         Code is contributed under MIT/X11 license.
1171         
1172
1173 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1174
1175         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1176         correctly. Fixes #79217.
1177
1178         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1179
1180 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1181
1182         * mono-config.c: allow both an os and cpu attribute for dllmap
1183         and dllentry elemnets to enable a single config file to be used
1184         for multiple architectures.
1185
1186 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1187
1188         * loader.c: MonoLoaderError was cleared too soon on load failure.
1189         Fixes bug #79424.
1190
1191 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1192
1193         * icall.c: use the defining class vtable when accessing a
1194         static field, not a pobblibly derived class.
1195
1196 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1197
1198         * icall.c string-icalls.c: Remove references to unicode.h.
1199
1200         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1201
1202         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1203
1204         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1205         indicating the image where custom marshaller types should be looked up.
1206         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1207         custom marshallers, instead of corlib. Fixes #79425.
1208
1209 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1210
1211         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1212
1213 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1214
1215         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1216         Implement Environment.ProcessorCount.
1217         
1218         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1219         Implement Environment.ProcessorCount.
1220         
1221         * icall.c: 
1222         Add Environment.ProcessorCount icall.
1223         
1224         Patch by Jason McFall.
1225
1226 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1227
1228         * assembly.c: don't append .exe/.dll when the filename already contains
1229         one of those extensions.
1230
1231 2006-09-12  Martin Baulig  <martin@ximian.com>
1232
1233         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1234         to array interfaces.
1235
1236 2006-09-11  Martin Baulig  <martin@ximian.com>
1237
1238         * reflection.c (mono_image_build_metadata): Create the
1239         MethodImpl's after emitting all types and methods, so we don't
1240         need another fixup pass for them.
1241
1242 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1243
1244         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1245         change.
1246
1247 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1248
1249         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1250         unload.
1251
1252 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1253
1254         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1255         args is not set. Fixes #78926.
1256
1257 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1258
1259         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1260
1261         * image.c (load_class_names): Move this to class.c, and rename it to 
1262         'mono_image_init_name_cache'.
1263         (load_modules): Fix a warning.
1264
1265         * class.c icall.c image.c: Initialize image->name_cache lazily.
1266
1267         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1268         on its name using information in the AOT file.
1269
1270         * class.c (mono_class_from_name): Use the new hook function.
1271
1272 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1273
1274         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1275         correctly.
1276
1277         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1278         Fixes #79289.
1279         
1280 2006-09-06  Martin Baulig  <martin@ximian.com>
1281
1282         * icall.c (mono_lookup_internal_call): Small fix.
1283
1284 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1285
1286         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1287         double g_free.
1288
1289 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1290
1291         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1292         when --debug is specified.
1293
1294 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1295
1296         * class.c (setup_generic_array_ifaces): Fix a warning.
1297
1298 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1299
1300         * Temporarily remove the patch to assemly.c that checks the
1301         assembly versions as it breaks our gacutil.
1302
1303 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1304
1305         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1306
1307         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1308         a net 1.0 runtime.
1309
1310         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1311         created using the default ctor. Fixes #79152.
1312         (mono_string_builder_to_utf16): Ditto.
1313
1314 2006-09-01  Martin Baulig  <martin@ximian.com>
1315
1316         Fix handling of the generic array interfaces.
1317
1318         * class-internals.h
1319         (MonoDefaults): Removed `generic_array_class' and added
1320         `generic_ilist' class.
1321
1322         * class.c
1323         (mono_bounded_array_class_get): Add the new generic array interfaces.
1324         (setup_generic_array_ifaces): New static method; create vtable
1325         entries for each method in the generic array interfaces.
1326
1327         * metadata.c
1328         (select_container): Allow "parent-less" generic methods.
1329
1330         * marshal.c
1331         (mono_marshal_get_generic_array_helper): New public method.
1332
1333         * icall.c
1334         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1335         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1336         moved the interncall into System.Array.
1337
1338 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1339
1340         A few more cases of avoiding work on types with ->byref set.
1341         Has the real fix for #79238
1342         * icall.c (is_generic_parameter): New helper.
1343         (ves_icall_Type_GetGenericParameterPosition): Use it.
1344         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1345         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1346         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1347         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1348         reference types.
1349         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1350         reference types.
1351         (ves_icall_Type_get_IsGenericInstance): Likewise.
1352         (ves_icall_Type_get_IsGenericType): Likewise.
1353
1354 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1355
1356         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1357         class if possible.
1358
1359         * mempool.h (mono_mempool_get_allocated): New helper function.
1360
1361         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1362         change.
1363
1364         * mempool.c: Fix warnings and the calculation of stats.
1365
1366         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1367
1368         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1369
1370         * loader.c (mono_get_method_from_token): Update method_count stat.
1371
1372         * class-internals.h (MonoStats): Add some stats.
1373
1374 2006-08-31 Robert Jordan  <robertj@gmx.net>
1375
1376         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1377         with managed variants.
1378         All code is contributed under the MIT/X11 license.
1379         
1380 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1381
1382         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1383         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1384
1385         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1386
1387         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1388         with cycles in classes.
1389
1390         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1391
1392         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1393         missing a [MarshalAs] directive. Fixes #79203.
1394
1395         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1396         klass->marshal_info. Fixes #79217.
1397
1398 2006-08-30  Martin Baulig  <martin@ximian.com>
1399
1400         Committing a patch from Joachim Ante <joe@otee.dk>:
1401         Add support for binary data symbol stores.
1402
1403         * debug-mono-symfile.c
1404         (mono_debug_open_mono_symbol_file): Renamed into
1405         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1406         arguments.
1407
1408         * mono-debug.c
1409         (mono_debug_open_image): Added `raw_contents' and `size' args.
1410         (mono_debug_init_2_memory): New public function.
1411
1412 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1413
1414         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1415
1416 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1417
1418         * appdomain.c: implement support for ShadowCopyFiles.
1419
1420 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1421
1422         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1423         when value is NULL (and should remove CID #51).
1424
1425 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1426
1427         * image.c: moved 2 functions to ../utils.
1428
1429 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1430
1431         * gc.c: cope with the target object of a GC handle being NULL
1432         (bug #78877).
1433
1434 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1435
1436         * class.c: recursively check parent's explicit implementations
1437         of interface methods (fixes bug #79125).
1438
1439 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1440
1441         * filewatcher.c: Avoid warnings when building, do not redefine
1442         constants that are defined.
1443
1444         Remove warnings.
1445
1446 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1447
1448         * image.c: don't fail when the link points to an absolute path.
1449
1450 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1451
1452         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1453         Fix CID #3.
1454
1455 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1456
1457         * image.c (full_path): A new method used to obtain the actual path
1458         of an assembly even in the presence of symbolic links.  
1459
1460         This is necessary for the case where we are running a binary that
1461         has been GACed, but we are using the "published" path name
1462         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1463         file in the GAC.
1464
1465         This was the source of the failure for the `xsp' command with the
1466         recent AppDomain changes, as far as the runtime was concerned,
1467         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1468         $prefix/mono/gac/blah/version/blah.exe.
1469
1470         (do_mono_image_open): use full path
1471
1472 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1473
1474         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1475
1476 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1477
1478         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1479         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1480
1481 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1482
1483         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1484         small structures. Fixes #78990.
1485
1486 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1487
1488         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1489
1490         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1491
1492 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1493
1494         * appdomain.c:
1495         * marshal.c: don't load all the assemblies from a domain into newly
1496         created ones. The new domains might have different rules and load
1497         assemblies from different locations. Fixes bug #76757.
1498
1499         Patch by Lluis. Conflicts resolved by Brian Crowell.
1500
1501 2006-08-16  Alp Toker  <alp@atoker.com>
1502
1503         * socket-io.c: First half of the fix for #79084.
1504         Set sa_size to the length of the content, not that of the struct.
1505         Don't add NULL suffix to the content, this should be done in
1506         managed code if needed.
1507
1508 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1509
1510         Fix part of #79012
1511         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1512         mono_metadata_parse_type returns NULL.
1513
1514 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1515
1516         * normalization-tables.h : new file for string normalization data.
1517         * locales.c, locales.h, icall.c :
1518           added load_normalization_resource() for string normalization,
1519           and icall as well.
1520         * Makefile.am : added normalization-tables.h to the sources.
1521
1522 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1523
1524         * marshal.c: Add more helper functions to reduce code duplication and use them
1525         everywhere.
1526
1527 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1528
1529         * marshal.c: Fix non-x86 stdcall warnings.
1530         
1531         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1532         them everywhere.
1533
1534 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1535
1536         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1537         type check on multi-dimensional arrays. Fixes #79000.
1538
1539 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1540
1541         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1542         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1543         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1544         * class-internals.h: add is_com_object to class structure.
1545         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1546         null checks to COM object marshalling. Fix .ctor call on RCW.
1547         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1548         
1549         All code is contributed under the MIT/X11 license.
1550
1551 2006-08-09  Dick Porter  <dick@ximian.com>
1552
1553         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1554         racing mono_monitor_allocator_lock() somewhere, so don't delete
1555         the critical section for now.  Found by running and exiting
1556         monodevelop.
1557
1558 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1559
1560         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1561         (ves_icall_System_ComObject_FindInterface): Ditto.
1562         (ves_icall_System_ComObject_CacheInterface): Ditto.
1563
1564         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1565         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1566
1567 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1568
1569         * threadpool.c: treat pipes from process asynchronous reads as sockets
1570         when reading from them, so we get select/poll or epoll to wait for
1571         data.
1572
1573 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1574
1575         * loader.c: Fix a typo (CID #233) in the null check.
1576
1577 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1578
1579         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1580         Hopefully fixes #78949.
1581         
1582         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1583         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1584         bytes. Fixes #78972.
1585
1586 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1587
1588         * filewatcher.c: we need to set errno here.
1589
1590 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1591
1592         * filewatcher.c: let Win32Exception get the error value.
1593
1594 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1595
1596         * filewatcher.c: translate errno into win32 errors for Win32Exception
1597         to know what happened.
1598
1599 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1600
1601         * threadpool.c: Fix more warnings.
1602
1603         * assembly.c (search_loaded): Fix warnings.
1604
1605         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1606         (mono_async_invoke): Ditto.
1607
1608 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1609
1610         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1611         entries for __ComObject type in addition to ComImport types.
1612         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1613         about hash table.
1614         
1615         All code is contributed under the MIT/X11 license.
1616
1617 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1618
1619         * image.c: avoid tentative loading of modulerefs that contain
1620         no metadata (P/Invoke library names).
1621
1622 2006-07-28  Dick Porter  <dick@ximian.com>
1623
1624         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1625         mono_loader_lock() somewhere, so don't delete the critical section
1626         for now.  Found by running and exiting monodevelop.
1627
1628 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1629
1630         * filewatcher.c: define the inotify syscalls when we're building on
1631         linux and have sys/syscall.h. The build system might not have support
1632         for inotify but the target system might have it.
1633
1634 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1635
1636         * domain.c: Documentation updates.
1637
1638         * loader.c (mono_free_method): Do not release the method
1639         information if we are being profiled, as profilers will use this
1640         information at shut down to present some data to the user.
1641
1642         This is needed so that the profiler does not crash, as the
1643         profiler tends to keep MonoMethods around, and they might become
1644         invalid if we free these.
1645
1646         (mono_get_method_constrained): Return the original CIL stream
1647         method as well, so verification can be performed against it.
1648
1649 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1650
1651         * filewatcher.[ch]: support for inotify file system watcher.
1652         * icall.c: add new internal calls for the inotify file system watcher.
1653
1654 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1655
1656         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1657         #78888.
1658
1659 2006-07-20  Dick Porter  <dick@ximian.com>
1660
1661         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1662         warning.
1663
1664 2006-07-20  Dick Porter  <dick@ximian.com>
1665
1666         * threads.c (start_wrapper): Do the thread cleanup while we still
1667         hold a reference to its object.  Fixes bug 78123.
1668
1669 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1670
1671         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1672         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1673           "managed-to-managed".
1674         * icall.c: Redirect string constructors that take sbyte* to
1675           ves_icall_System_String_ctor_RedirectToCreateString.
1676         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1677           to CreateString () methods with matching signature.
1678         * reflection.c: Use original security informations for
1679           MONO_WRAPPER_MANAGED_TO_MANAGED.
1680         * security-manager.c: Use original security informations for
1681           MONO_WRAPPER_MANAGED_TO_MANAGED.
1682         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1683           that is a placeholder and only its address should be used.
1684         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1685           that is a placeholder and only its address should be used.
1686
1687 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1688
1689         Begin implementing COM Interop.
1690         * appdomain.c: Increment corlib version.
1691         * class.c: Set ComImport classes' parent to __ComObject.
1692         * loader.c: Mark cominterop methods as such.
1693         * domain.c: Add __ComObject class to MonoDefaults structure.
1694         * image.c: Add 2 hashtables to the image for COM Interop related methods
1695         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1696         using the mempool allocator
1697         
1698         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1699         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1700         declaration for mono_metadata_type_dup_mp.
1701         
1702         * debug-helpers.c: Added strings for two additional wrapper types
1703         * object.c: Create proxy objects for ComImport classes
1704         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1705         and added __ComObject class to MonoDefaults structure.
1706         
1707         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1708         MonoComInteropProxy and MonoComObject.
1709         
1710         * marshal.c: Added support for COM Interop
1711         (signature_cominterop): Converts managed signature to corresponding
1712         unmanaged COM signature.
1713         (cominterop_get_function_pointer): gets unmanaged function pointer via
1714         COM object vtable
1715         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1716         (cominterop_get_method_interface): returns interface type that method is defined on
1717         (mono_mb_emit_cominterop_call): emits native call to function pointer
1718         gotten from vtable
1719         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1720         that matches signature of unmanaged function.
1721         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1722         (cominterop_get_invoke): forwards call from proxy to __ComObject
1723         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1724         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1725         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1726         
1727         * marshal.h: Added Marshal icall declarations.
1728         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1729         so we can access them in finalizer
1730         
1731 2006-07-14  Dick Porter  <dick@ximian.com>
1732
1733         * object.c (mono_type_initialization_cleanup): Fix a race
1734         condition by temporarily commenting out the critical section
1735         deletion.
1736
1737 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1738
1739         * reflection.c (create_custom_attr): Fix some warnings.
1740         (create_custom_attr_data): Ditto.
1741         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1742         types. Fixes #78855.
1743
1744 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1745
1746         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1747
1748         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1749
1750 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1751
1752         * reflection.c (resolve_object): Add support for DynamicMethod.
1753
1754         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1755         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1756
1757 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1758
1759         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1760         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1761
1762 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1763
1764         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1765         Fixes #77888.
1766
1767 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1768
1769         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1770         slightly: remove a shadow local variable.
1771
1772 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1773
1774         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1775         definition that introduces the virtual function slot.
1776         Also fix Coverity #105.
1777
1778 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1779
1780         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1781         for dynamic assemblies. Fixes #78724.
1782
1783 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1784
1785         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1786         Fixes #78722.
1787
1788 2006-06-21  Martin Baulig  <martin@ximian.com>
1789
1790         * reflection.c
1791         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1792         fixes #76484.
1793
1794 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1795
1796         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1797
1798 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1799
1800         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1801         nor TYPEREFs.
1802         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1803         Inflate result if necessary.
1804         (mono_class_get_full): Remove old version.  Rename from
1805         'mono_class_get' and add 'context' argument.  Pass it to
1806         ..._create_from_typespec.
1807         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1808         (mono_ldtoken): Revert change below.
1809
1810 2006-06-20  Martin Baulig  <martin@ximian.com>
1811
1812         * class.c (mono_ldtoken): Don't pass the generic context to
1813         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1814
1815 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1816
1817         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1818         and later freeing it. Fixes #78638.
1819
1820 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1821
1822         * icall.c (mono_class_get_throw): Revert over-zealous error
1823         throwing, the caller for mono_class_get_throw will cope with
1824         errors when classes are not properly initialized already.
1825
1826         The code still copes with loader exceptions though.
1827
1828         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1829         
1830 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1831
1832         Fixes the `make run1' version of RuntimeAbort (to be commited,
1833         source is in Bugzilla).
1834         
1835         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1836         FALSE on class loading failure instead of returning true.
1837
1838         * class.c (mono_class_create_from_typedef): It is possible for
1839         mono_metadata_interfaces_from_typedef_full to fail if a class is
1840         not found, cope with this.
1841         
1842
1843 2006-06-14  Dick Porter  <dick@ximian.com>
1844
1845         * socket-io.c: 
1846         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1847         4.1.1
1848
1849 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1850
1851         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1852
1853 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1854
1855         * icall.c: Another fix for building mono in Visual Studio.
1856
1857 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1858
1859         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1860         
1861 2006-06-09  Martin Baulig  <martin@ximian.com>
1862
1863         * debug-mono-symfile.c: Put this back and really fix it this
1864         time. Sorry for all the trouble.
1865
1866 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1867
1868         * icall.c (mono_class_get_throw): Fix a warning.
1869         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1870         ReflectionTypeLoadException if needed. Fixes #78606.
1871
1872         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1873         (mono_class_init): Ditto.
1874
1875         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1876         ref_only exceptions.
1877         (mono_loader_clear_error): Make this work even if there is no error.
1878
1879 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1880
1881         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1882         Marshal.GetComSlotForMethodInfo using internal call.
1883
1884 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1885
1886         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1887         a function for signalling it.
1888
1889         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1890         a referenced assembly is not found.
1891
1892         * loader.c (mono_loader_error_prepare_exception): Add support for 
1893         LOADER_ERROR_ASSEMBLY. Fix formatting.
1894
1895 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1896
1897         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1898         for VARIANT marshalling on windows and increment corlib version
1899         since Variant struct was added.
1900
1901 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1902
1903         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1904         stack trace line information:
1905
1906         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1907         (Martin) when looking up B which is between A and C, return A not C.
1908
1909         Bug is #78573.
1910
1911         Thanks to Alexander Olk for tracking this down.
1912
1913 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1914
1915         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1916         
1917         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1918         avoid clobbering its value.
1919         (mono_string_to_lpstr): Fix a warning on windows.
1920
1921 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1922
1923         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1924
1925         * reflection.c loader.c: Removed references to 'dummy' flag.
1926
1927         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1928
1929         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1930         it gets GC tracking.
1931
1932         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1933         GC tracking.
1934         
1935         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1936
1937         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1938
1939         * appdomain.c: Bump corlib version.
1940
1941 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1942
1943         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1944         CEE_STIND_REF when working with object references.
1945
1946 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1947
1948         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1949         Fixes #78539.
1950
1951 2006-05-30  Miguel de Icaza  <miguel@novell.com>
1952
1953         * loader.c (method_from_memberref): Fix argument value for
1954         mono_loader_set_error_method_load (I was passing the MonoClass
1955         instead of the class name char *).
1956
1957 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1958
1959         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1960         CEE_STIND_REF when working with object references.
1961
1962 2006-05-30  Martin Baulig  <martin@ximian.com>
1963
1964         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
1965         mono_method_full_name() change and replace the ':' with a '.'
1966         here.
1967
1968 2006-05-30  Martin Baulig  <martin@ximian.com>
1969
1970         * debug-mono-symfile.c
1971         (mono_debug_symfile_lookup_location): Fix the algorithm:
1972         when looking up B which is between A and C, return A not C.
1973
1974 2006-05-29  Martin Baulig  <martin@ximian.com>
1975
1976         * mono-debug.h
1977         (MonoDebugMethodInfo): Make the typedef public.
1978         (MonoDebugSourceLocation): New public struct.
1979
1980         * mono-debug.c
1981         (mono_debug_source_location_from_address): Removed.
1982         (mono_debug_source_location_from_il_offset): Removed.
1983         (mono_debug_il_offset_from_address): Removed.
1984         (mono_debug_address_from_il_offset): Removed.
1985         (mono_debug_lookup_method): New public function.
1986         (mono_debug_lookup_source_location): New public function; replaces
1987         the old mono_debug_source_location_from_*() functions; see the
1988         inline documentation.
1989         (mono_debug_free_source_location): New public function.
1990         (mono_debug_print_stack_frame): New public function; see the
1991         inline documentation.
1992
1993         * debug-mono-symfile.c
1994         (mono_debug_find_source_location): Renamed into
1995         mono_debug_symfile_lookup_location(); only take a
1996         `MonoDebugMethodInfo *' and an `offset' argument; added inline
1997         documentation.
1998         (mono_debug_find_method): Renamed into
1999         mono_debug_symfile_lookup_method().
2000
2001 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2002
2003         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2004         returned by mono_image_open_full ().
2005
2006         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2007         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2008         #78517.
2009
2010         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2011         #78518.
2012
2013 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2014
2015         * class.c (mono_class_from_typeref): handle missing images
2016         earlier, deals with bug #78418.   Refactor code; 
2017
2018         Fix a warning introduced in my previous commit (some stale code
2019         from before I revisited my patch).
2020
2021         * class.c (mono_class_create_from_typedef): On failure, remove the
2022         class from the MonoImage->class_cache as the class is not
2023         initialized;   Fixes the leak pointed out by Paolo.
2024
2025 2006-05-25  Dick Porter  <dick@ximian.com>
2026
2027         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2028         DeleteCriticalSections until I figure out which one may still be
2029         sometimes locked when mono_thread_cleanup is called.
2030
2031 2006-05-24  Dick Porter  <dick@ximian.com>
2032
2033         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2034         of mono_thread_manage and back into its own function, so it can be
2035         called after the finalizer thread has finished.
2036
2037         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2038
2039 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2040
2041         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2042         Fixes #78495.
2043
2044         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2045         with non-blittable elements.
2046         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2047
2048 2006-05-24  Martin Baulig  <martin@ximian.com>
2049
2050         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2051         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2052
2053         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2054         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2055         `mono_debugger_event_handler' to NULL.
2056
2057 2006-05-24  Martin Baulig  <martin@ximian.com>
2058
2059         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2060
2061 2006-05-24  Martin Baulig  <martin@ximian.com>
2062
2063         * mono-debug-debugger.h
2064         (mono_debugger_create_notification_function): Added
2065         `MonoCodeManager *' argument.
2066
2067 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2068
2069         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2070
2071 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2072
2073         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2074         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2075         implementation.
2076
2077 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2078
2079         * icall.c: precise GC support: objects can't be stored in unmanaged
2080         memory anymore, even if they are kept alive by other references: since
2081         they can move the GC needs to be able to always find them.
2082
2083 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2084
2085         * object.c: precise GC support for static fields. Support
2086         for moving GCs: write barriers and pinned allocation for interned
2087         strings.
2088
2089 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2090
2091         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2092         structure.
2093
2094 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2095
2096         * class.c, gc.c: sgen and precise GC updates.
2097
2098 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2099
2100         * marshal.h, marshal.c: added write barrier wrapper and precise type
2101         fixes.
2102
2103 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2104
2105         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2106         support.
2107
2108 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2109
2110         * reflection.c: precise and sgen GC updates.
2111
2112 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2113
2114         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2115
2116 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2117
2118         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2119
2120 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2121
2122         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2123         MONO_TYPE_OBJECT. Fixes #78462.
2124
2125 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2126
2127         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2128         and blittable types.
2129
2130 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2131
2132         * class.c (mono_class_get_exception_for_failure): Implement parts
2133         of a TODO: if the loader error is set (instead of the class
2134         error), we return a Loader exception that can be properly thrown
2135         elsewhere.
2136
2137         This was exposed by some Winforms 2.0 code that I tried to run
2138         (Atsushi pointed me to it).
2139
2140 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2141
2142         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2143         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2144         
2145         * marshal.c (emit_marshal_vtype): Add limited support for 
2146         UnmanagedType.LPStruct. Fixes #78427.
2147
2148         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2149         Applied a patch from kangaroo to fix #77523.
2150
2151 2006-05-17  Martin Baulig  <martin@ximian.com>
2152
2153         * threads.c
2154         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2155         (debugger_thread_created): Removed.
2156         (debugger_thread_exited): Removed.
2157
2158 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2159
2160         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2161
2162         * object-internals.h (MonoReflectionResource): Sync with managed version.
2163
2164 2006-05-12  Wade Berrier <wberrier@novell.com>
2165
2166         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2167
2168 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2169
2170         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2171         functions try to allocate from the image mempool.
2172
2173 2006-05-12  Dick Porter  <dick@ximian.com>
2174
2175         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2176
2177 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2178
2179         * object.c: The FieldGetter and FieldSetter methods require the full
2180         name of the class, not only the name. Fixes bug #78277.
2181
2182 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2183
2184         * loader.c (method_from_memberref): Do not pass the NULL klass to
2185         mono_loader_set_error_() methods.  Pass the non-NULL value
2186         (class). 
2187
2188 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2189
2190         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2191         (mono_assembly_close): Null out assembly->image->references after freeing it.
2192
2193         * image.c (mono_image_close): Free image->references.
2194         
2195         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2196
2197 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2198
2199         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2200         before checking if it's NULL (g_assert).
2201
2202 2006-05-10  Martin Baulig  <martin@ximian.com>
2203
2204         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2205         I thought I already killed that two months ago, but now it somehow reappeared.
2206
2207 2006-05-10  Martin Baulig  <martin@ximian.com>
2208
2209         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2210
2211 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2212
2213         * reflection.c: Allocate memory for dynamically created methods in the image
2214         mempools.
2215
2216 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2217
2218         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2219         don't use the ad pointer before checking if it's NULL (g_assert).
2220
2221 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2222
2223         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2224         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2225
2226         * marshal.c: Allocate all signatures from mempools.
2227
2228         * marshal.c: Allocate some more signatures from mempools.
2229
2230 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2231
2232         * object.c (mono_load_remote_field): The code used to provide a
2233         temporary variable for returning results if the user did not
2234         provide a result pointer.  But our temporary variable was allocted
2235         on the satck.
2236
2237         Fix calling code to always pass a result area.   Coverity ID 103.
2238
2239 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2240
2241         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2242         value, not the old. Fixes #78312.
2243         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2244
2245         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2246         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2247         per-image cache.
2248
2249         * assembly.c (mono_assembly_close): Free image->references.
2250
2251         * assembly.c (mono_assembly_names_equal): Fix a warning.
2252         (mono_assemblies_cleanup): Cleanup more global data.
2253
2254         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2255
2256         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2257         ptr_cache and image->modules.
2258
2259         * image.c (mono_image_init): Allocate array_cache lazily.
2260         
2261 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2262
2263         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2264         behavior was changed recently and has bad side effects.
2265
2266 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2267
2268         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2269         
2270         * assembly.c (mono_assembly_close): Remove a debug printf.
2271
2272         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2273
2274         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2275         to also allow for temporary references between mono_image_open ()/close ().
2276
2277         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2278
2279 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2280
2281         * marshal.c: Fix support for dynamic methods.
2282
2283         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2284
2285         * marshal.c (mono_marshal_cleanup): New cleanup function.
2286
2287         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2288         image mempools.
2289
2290         * class.c (mono_class_init): Fix leaking class->nested_classes.
2291
2292         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2293
2294         * image.c (mono_image_init): Initialize the new cashes.
2295
2296         * image.c (mono_image_close): Destroy the new cashes.
2297
2298         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2299
2300         * mempool.c (mono_mempool_strdup): New helper function.
2301
2302         * class-internals.h: Add prototype for mono_loader_unlock ().
2303
2304         * domain.c (mono_jit_info_table_find): Fix a warning.
2305         (mono_debugger_check_runtime_version): Ditto.
2306
2307         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2308         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2309         functions to these modules.
2310
2311         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2312         metadata modules.
2313         
2314         * marshal.c (mono_free_bstr): Fix a warning.
2315
2316         * assembly.c (mono_assembly_open_full): Fix another small leak.
2317
2318         * object.c: Fix some unload leaks in the remoting code.
2319
2320         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2321         function.
2322
2323         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2324
2325         * reflection.c: Fix some unload leaks in dynamic assemblies.
2326
2327 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2328
2329         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2330         * marshal.h: Add BSTR support on Win32
2331         * icall.c: Add BSTR icalls
2332         * metadata.h: Add BSTR enums
2333
2334 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2335
2336         Work to catch the crash from #76795 and turn it into an
2337         exception.   As I stubbed out pieces of the VisualBasic support,
2338         I found a number of places where the code was failing and I added
2339         checks to those places. 
2340         
2341         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2342         function return a status code.  If we fail to parse the signature
2343         from mono_metadata_parse_generic_inst, return FALSE.
2344
2345         * loader.c (mono_get_method_from_token): If we fail to load the
2346         method (mono_class_get) return NULL.   
2347
2348         * (method_from_memberref): Return NULL if we are unable to parse
2349         the method signature
2350
2351         (mono_loader_error_prepare_exception): Since we now use the
2352         loader_error flag internally to stop processing, and obtaining
2353         exceptions that might be thrown will walk this code path the
2354         proper way of going from a MonoLoaderError into a
2355         MonoException was convoluted.   This new routine encapsulates the
2356         process of turning the error into an exception and *clearing* the
2357         error afterwards.
2358         
2359 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2360
2361         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2362         with missing assemblies), and to cope with:
2363
2364                 * Missing fieldref from a non-existing assembly.
2365                 * Missing methodref from a non-existing assembly.
2366
2367         The first batch of work to address *some* of the issues from 76661.
2368         
2369         * object.c (mono_class_create_runtime_vtable): If we fail to
2370         initialize the class raise the exception here. 
2371
2372         * metadata.c (mono_class_get_overrides_full): If any methods fail
2373         to load return the failure to the caller.
2374
2375         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2376         flagging assemblies that failed to load.   
2377
2378         Do not crash if we are unable to load the assembly.
2379
2380         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2381         assemblies. 
2382
2383         * loader.c (mono_loader_set_error_type_load): Change the
2384         convention to always pass unallocated strings, so we make our own
2385         copies (I know our own code had duplicated strings before, but
2386         this keeps the normal conventions).
2387         (method_from_memberref): Call mono_loader_set_error_method_load
2388         for all possible failures of loading the class. 
2389         Remove assert, turn into a loader error.
2390
2391         (mono_loader_error_to_exception): Move this routine from mini
2392         (mini_loader_error_to_exception) there was no need to have that in
2393         mini. 
2394
2395         * class.c (mono_class_from_typeref): If we were not able to load
2396         the assembly with mono_assembly_load_reference, call the
2397         mono_loader_set_error_type_load to register the problem.
2398
2399         (mono_class_setup_fields): If we fail to load the type from
2400         mono_metadata_parse_type_full, call mono_class_set_failure and
2401         break from the loop.
2402
2403         If class->exception_type is set, we do not layout the fields as
2404         that might crash the runtime, and instead return (from breaking
2405         from the previous loop).
2406
2407         (mono_class_setup_vtable): This now returns a boolean indicating
2408         whether the table was properly setup.   The decision is driven by
2409         mono_class_get_overrides_full which might run into non-existing
2410         methods. 
2411         
2412         (mono_class_init): Returns TRUE on success or FALSE if there was a
2413         problem in loading the type (incorrect assemblies, missing
2414         assemblies, methods, etc).
2415
2416         When we call mono_class_setup_fields we also check for a potential
2417         error inside this call (either a class exception or a general
2418         loader exception).
2419
2420         (mono_class_create_from_typedef): If the parent fails to load
2421         (calling mono_class_get_full) return NULL.
2422         
2423         ** Important **
2424
2425         calls to mono_metadata_parse_type_full should be checked
2426         everywhere and set the mono_class_set_failure
2427         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2428
2429         The current patch checks the places where my manually constructed
2430         tests show the errors are showing up, but we should do it
2431         everywhere. 
2432
2433         ** Important2 **
2434
2435         mono_class_init return values should be tested everywhere, like
2436         the previous case this is something that we should audit
2437         everywhere and not only on the cases exposed by the tests I
2438         created. 
2439
2440 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2441
2442         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2443         boolean parameter and instead pass the information on `options'
2444         parameter (FileOptions).
2445
2446         * icall.c: Register the new signature for MonoIO.Open.
2447
2448         * debug-helpers.c (dis_one): Trying to understand how coverity
2449         works.  Fix Run 5, item 78.
2450
2451 2006-04-26  Dick Porter  <dick@ximian.com>
2452
2453         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2454         dereference.
2455
2456 2006-04-25  Martin Baulig  <martin@ximian.com>
2457
2458         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2459
2460         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2461         debugger_thread_created().
2462         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2463         special way.
2464         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2465         (mono_debugger_finalize_threads): New function; undo the effects
2466         of mono_debugger_init_threads().
2467         (mono_debugger_create_all_threads): Removed.
2468
2469 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2470
2471         * image.c (mono_image_close): Tidy up trace messages.
2472
2473         * assembly.c (mono_assembly_close): Ditto.
2474
2475         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2476         no longer references an already freed assembly. Fixes #78168.
2477
2478 2006-04-21  Dick Porter  <dick@ximian.com>
2479
2480         * threads.c (mono_thread_detach): Fix reference counting when
2481         detaching threads.
2482
2483 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2484
2485         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2486         #78155.
2487
2488 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2489
2490         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2491         (mono_type_to_stind): Ditto.
2492
2493         * marshal.c: Use the new helper functions to simplify code.
2494
2495         * image.c (mono_image_close): Add some code for help debug assembly unloading
2496         problems.
2497
2498         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2499         image mempool.
2500
2501         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2502         assembly was already loaded in another appdomain. Fixes #78083.
2503
2504 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2505
2506         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2507         referenced assemblies.
2508         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2509
2510         * domain.c (mono_domain_free): Add a trace message.
2511
2512         * appdomain.c (add_assemblies_to_domain): Ditto.        
2513
2514         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2515         field.  
2516
2517 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2518
2519         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2520
2521 2006-04-12  Martin Baulig  <martin@ximian.com>
2522
2523         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2524         `USE_INCLUDED_LIBGC'.   
2525
2526 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2527
2528         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2529         the patch contains ../ and a small directory name later. Hopefully fixes
2530         #78035.
2531
2532 2006-04-10  Martin Baulig  <martin@ximian.com>
2533
2534         Clean up the debugger's thread-handling code.
2535
2536         The debugger's thread-handling code has been moved from
2537         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2538         over the `threads' hash, keep track of exiting threads and also
2539         use proper locking.
2540
2541         We can now debug XSP and XSP based applications with the debugger.
2542
2543         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2544
2545         * threads.h
2546         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2547         (mono_install_thread_callbacks): Likewise.      
2548
2549         * threads.c (mono_thread_callbacks): Removed.
2550         (debugger_thread_created, debugger_thread_exited): New static functions.
2551         (start_wrapper): Call debugger_thread_created().
2552         (thread_cleanup): Call debugger_thread_exited().
2553         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2554         (mono_debugger_init_threads): New public function.
2555         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2556         iterate directly over the `threads' hash and also use proper locking.
2557
2558         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2559
2560         * mono-debug-debugger.h
2561         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2562
2563 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2564
2565         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2566         argument type=array. Fixes #78057.
2567
2568 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2569
2570         * culture-info-table.h : regenerated. Fixed bug #69652.
2571
2572 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2573
2574         * loader.c metadata.c: Reapply a variant r59116.
2575         
2576         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2577
2578         * class.c (mono_class_setup_interface_offsets): New internal function.
2579
2580         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2581         interfaces too. Fixes #77398.
2582
2583         * reflection.c (encode_cattr_value): Add support for 
2584         parameter type=object, argument type=array.
2585         (load_cattr_value): Ditto. Fixes #77916.
2586
2587         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2588         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2589
2590         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2591         a byval char array and CharSet is Ansi.
2592
2593         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2594
2595 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2596
2597         * metadata.c: Add some locking comments.
2598         
2599         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2600         mempool.
2601         (mono_metadata_free_method_signature): Don't free the signature itself.
2602
2603         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2604
2605         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2606         reference the same MonoImage.
2607         (mono_assembly_load_from_full): Add an assert.
2608
2609 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2610
2611         * image.c (mono_image_close): Don't put the image we are about to free into the
2612         loaded_images_guid_hash.
2613
2614         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2615         to reduce code duplication.
2616
2617         * marshal.c: Register the native functions called by this module as icalls, to
2618         somewhat centralize the creation of MonoMethodSignature's.
2619
2620         * loader.c (mono_method_signature): Add a cache for method signatures.
2621
2622         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2623         the parameter attributes of a method.
2624         (mono_metadata_parse_method_signature_full): Refactored the computation of
2625         parameter attributes into a separate function. Also avoid one allocation in
2626         most cases.
2627
2628         * assembly.c (mono_assembly_close): Ditto.
2629
2630         * image.c (mono_image_close): Log trace messages with INFO level.
2631
2632         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2633
2634         * image.c reflection.c: Correct reference counting of image modules.
2635         
2636         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2637         of this function from the image mempool.
2638         
2639         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2640         to allow more cached types to be used.
2641
2642         * mono-debug.c (mono_debug_add_method): Appled patch from
2643         David S. Miller  <davem@sunset.davemloft.net>: Access 
2644         minfo->lexical_blocks[] entry elements using read32().
2645
2646 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2647
2648         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2649         methods as it is allocated from the mempool.
2650
2651         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2652         image mempool.
2653
2654         * metadata-internals.h: Add comments describing the reference counting scheme
2655         used for MonoImage and MonoAssembly.
2656
2657         * image.c assembly.c reflection.c: Rework reference counting of images and 
2658         assemblies so they are freed when the runtime is shut down. Free some 
2659         additional memory structures when an image is unloaded.
2660         
2661 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2662
2663         * class.c loader.c reflection.c: Allocate more data structures in
2664         the image mempool.
2665
2666 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2667
2668         * icall.c
2669         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2670         build on pre glib 2.4 systems.
2671
2672 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2673
2674         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2675
2676         * icall.c: Fix some warnings.
2677
2678 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2679
2680         * culture-info-table.h : regenerated.
2681
2682 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2683
2684         * threads.c, object-internals.h, verify.c: changed the culture caching
2685         code to use a normal MonoArray for storage so the GC can keep track of
2686         them easily. Fixed bits of the cache logic, too and simplified the
2687         code.
2688
2689 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2690
2691         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2692         thread for non-Boehm GCs.
2693
2694 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2695
2696         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2697         needed to keep track of the data for static fields.
2698
2699 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2700
2701         Fix #75172
2702         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2703         for interface classes.  Use 'num_methods' instead.
2704         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2705         before using '->vtable_size' field.
2706
2707 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2708
2709         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2710         doesn't contain managed pointers, so use a normal hashtable.
2711
2712 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2713
2714         * reflection.c, class-internals.h, domain.c: fixed handling of types
2715         used as values for objects in custom attributes (bug #77915):
2716
2717 2006-03-24  Martin Baulig  <martin@ximian.com>
2718
2719         * class.c (mono_class_setup_fields): Added support for generic
2720         instances; fixes #77580.
2721
2722 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2723
2724         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2725
2726 2006-03-24  Dick Porter  <dick@ximian.com>
2727
2728         * file-io.c (get_file_attributes): More stat macro breakage.
2729         Fixes bug 77759.
2730
2731 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2732
2733         * profiler.c: added the file=filename option in the default profiler
2734         to output the profile data to filename.
2735
2736 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2737
2738         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2739         bug #77877.
2740
2741 2006-03-22  Martin Baulig  <martin@ximian.com>
2742
2743         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2744         allocated `MonoClassField *' in `fb->handle'.
2745
2746 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2747
2748         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2749         allocate interface ID to save memory and allow better ID reuse on
2750         appdomain unload. setup_generic_vtable () removal from Martin.
2751
2752 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2753
2754         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2755         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2756         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2757         write barriers for reference stores with managed objects accessed with
2758         C structures in the runtime and in embedding programs.
2759
2760 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2761
2762         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2763         'interface_id' and 'max_interface_id' fields of MonoClasses
2764         representing open generic types.
2765
2766 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2767
2768         * object.h, object.c, icall.c: added functions to deal with
2769         storing valuetypes that contain references in managed objects.
2770         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2771         fixes and comments around uses of mono_array_addr ().
2772
2773 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2774
2775         * object.h, icall.c, monitor.c: object.GetHashCode ()
2776         implementation that supports the moving garbage collector.
2777
2778 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2779
2780         * icall.c, threads-types.h, threads.c: implemented finalizer for
2781         LocalDataStoreSlot.
2782
2783 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2784
2785         * metadata.c (mono_type_size): Add a fixme.
2786         (mono_type_stack_size): Ditto.
2787
2788         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2789         'type_forwarders' field.
2790
2791         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2792         attribute from net 2.0.
2793
2794         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2795         from class.c.
2796
2797         * class.c (mono_class_setup_fields): Fix a warning.
2798         
2799         * class.c (mono_class_from_name): Add support for assemblyref entries
2800         in the EXPORTEDTYPE table.
2801
2802         * reflection.c: Add support for handling type forwarders under net 2.0.
2803
2804         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2805         
2806 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2807
2808         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2809         overwriting entries in ModuleBuild->types, also clean up the code
2810         a little. Fixes #77774.
2811
2812 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2813
2814         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2815         load friend assembly info when present.
2816
2817 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2818
2819         Fix crasher on gtest-158.cs.
2820         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2821         the return value if the MonoClass we want is yet in an
2822         inconsistent state.
2823         * class.c (mono_class_create_from_typedef): Add an comment
2824         explaining an order dependency between mono_class_setup_parent and
2825         mono_class_setup_mono_type.
2826
2827 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2828
2829         * class.c: documentation updates and events bug fix.
2830
2831 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2832
2833         * class.c: some cleanup, locking fixes.
2834
2835 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2836
2837         * class.c: fix the generics code to setup nested
2838         type info to the instantiated type (bug #77770).
2839
2840 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2841
2842         * marshal.c: fixed a few type correctness issues.
2843
2844 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2845
2846         * loader.c: the Set/Get/Addrtess array methods should be public.
2847
2848 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2849
2850         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2851         
2852         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2853         info->wrapper.
2854
2855 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2856
2857         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2858
2859         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2860
2861         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2862         (mono_mempool_alloc0): Ditto.
2863
2864 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2865
2866         * socket-io.c:
2867         (create_object_from_sockaddr): it was allocating 4 extra bytes
2868         for the AF_UNIX data. Fixes bug #77747.
2869
2870 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2871
2872         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2873
2874 2006-03-09  Dick Porter  <dick@ximian.com>
2875
2876         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2877         Fixes bug 76966 again.
2878
2879 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2880
2881         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2882         names from r57532
2883         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2884
2885 2006-03-07  Martin Baulig  <martin@ximian.com>
2886
2887         * object.c
2888         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2889
2890 2006-03-07  Martin Baulig  <martin@ximian.com>
2891
2892         * class.c
2893         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2894         regression introduced in r56970; see gtest-252.cs.
2895
2896         * loader.c (mono_get_method_constrained): Correctly handle generic
2897         methods; see gtest-253.cs.
2898
2899 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2900
2901         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2902
2903 2006-03-04  Martin Baulig  <martin@ximian.com>
2904
2905         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2906         compute the parent type at runtime, just like we're already doing
2907         it for interfaces.
2908
2909         * reflection.c
2910         (mono_reflection_bind_generic_parameters): Don't compute the
2911         parent type anymore.
2912
2913         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2914
2915 2006-03-04  Martin Baulig  <martin@ximian.com>
2916
2917         * mono-debug-debugger.h
2918         (mono_debugger_create_notification_function): Allocate memory at
2919         runtime and return a pointer to it.
2920
2921 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2922
2923         * assembly.c: Fix windows build.
2924         
2925         * assembly.c: Fix build.
2926
2927         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2928
2929         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2930         
2931 2006-03-03  Dick Porter  <dick@ximian.com>
2932
2933         * process.c
2934         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2935         Check parameters before dereferencing them.  Fixes Aaron's part of
2936         bug 77393.
2937
2938 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2939
2940         Fix performance regression.
2941         * loader.c (find_method_in_class): Add 'from_class' argument.
2942         Rename 'klass' argument to 'in_class'.  The signature is compared
2943         against the method in 'in_class', and the corresponding method is
2944         returned from 'from_class'.
2945         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2946         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2947         type definition and generic instantiation in parallel.
2948         (mono_get_method_constrained): Update to changes.
2949
2950 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2951
2952         * threads.c: make sure the domain is correct, too when doing
2953         mono_thread_attach ().
2954
2955 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
2956
2957         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
2958         windows. Fixes #77683.
2959
2960 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2961
2962         * object.h, *: introduced specific way to set elements of an array
2963         of references to be used as write barrier. Still need to audit the
2964         uses of mono_array_addr.
2965
2966 2006-03-01  Miguel de Icaza  <miguel@novell.com>
2967
2968         * object-internals.h: New field to cache the assmebly name, patch
2969         from Tambet Ingo (tambet@ximian.com)
2970
2971 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2972
2973         * decimal.h, class-internals.h, metadata-internals.h,
2974         file-io.h: mark a few function declarations as internal, to
2975         reduce the number of PLT entries.
2976
2977 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2978
2979         * file-io.c: fix typo in warning message.
2980
2981 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
2982
2983         * loader.c: on unix, lookup the "*A" version of a function
2984         if charset is auto as a second option before failing.
2985
2986 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2987
2988         * class.h (mono_class_inflate_generic_method): Revert to two
2989         argument version.
2990         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
2991         (mono_class_inflate_generic_method_full): Add.
2992         * class.c (mono_class_inflate_generic_method_full): Rename from
2993         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
2994         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
2995         * loader.c, reflection.c: Update to changes.
2996
2997 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
2998
2999         * icall.c: const fixes and small improvements.
3000
3001 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3002
3003         * threadpool.c: for asynchronous connect(), enable the same workaround
3004         for BSD 6 as for the Mac. Fixes bug #77637.
3005
3006 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3007
3008         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3009         formatted classes. Fixes #77524.
3010
3011 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3012
3013         * class.c (inflate_generic_type): Add a couple more
3014         micro-optimizations.
3015         (inflate_generic_context): Don't use the 'gmethod' from
3016         'inflate_with'.
3017         (mono_class_inflate_generic_method): If the method has generic
3018         parameters, but the passed-in context doesn't have a 'gmethod',
3019         create one.  Use the possibly simplified generic instantiation
3020         from the declaring class instead of the one passed in.
3021
3022 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3023
3024         Make generic method signature and method header handling lazy.
3025         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3026         (inflate_generic_header): Likewise.
3027         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3028         parameter to avoid inflating types.
3029         (mono_get_inflated_method): Empty out.
3030         * class.h (mono_class_inflate_generic_method): Update to changes.
3031         * loader.c (mono_get_method_from_token): Don't parse signature for
3032         generic methods, nor methods of generic classes.
3033         (mono_method_signature): Rename from 'mono_method_signature'.
3034         Inflate signature on demand.
3035         (mono_method_get_header): Inflate method header on demand.
3036         * reflection.c: Update to changes.
3037
3038 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3039
3040         * metadata.c (mono_metadata_inflate_generic_inst): If the
3041         instantiation is closed, don't bother expanding it in the new
3042         context.
3043         * class.c (inflate_generic_class): If the generic instantiation
3044         doesn't change after inflation, return the argument itself.
3045         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3046         Add bounds checks.
3047         (inflate_generic_context): If neither the generic class nor the
3048         generic method instantiations change, return the original context.
3049         * reflection.c (mono_method_get_object): Do
3050         'mono_get_inflated_method' before accessing the ->klass field.
3051         (inflate_mono_method): Don't create a MonoGenericMethod unless
3052         necessary.
3053         (inflate_method): Don't pass a constructed type as the declaring
3054         type of a methodbuilder.
3055
3056 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3057
3058         * object.c: fix memory overwrite.
3059
3060 2006-02-22  Dick Porter  <dick@ximian.com>
3061
3062         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3063         it doesn't work any more.
3064         (mono_threads_request_thread_dump): Fix unused variable warnings.
3065
3066 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3067
3068         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3069         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3070         the public header file.
3071
3072 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3073
3074         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3075
3076 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3077
3078         * class-internals.h, object.c: reduce the size of MonoVTable
3079         and store the interface_offsets array at negative offsets.
3080
3081 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3082
3083         * metadata.c: tweak table descriptors data structures to reduce
3084         size and runtime relocations.
3085
3086 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3087
3088         * marshal.c: fix some types and opcodes to be type-safe
3089         in marshaling wrappers.
3090
3091 2006-02-21  Ankit Jain  <jankit@novell.com>
3092
3093         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3094
3095 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3096
3097         * metadata.c (get_constraints): Relax debugging checks for monodis.
3098
3099 2006-02-21  Ankit Jain  <jankit@novell.com>
3100
3101         * metadata.c (mono_metadata_load_generic_params): Move the code
3102         checking for ambiguous generic params from here to mono/dis/get.c
3103         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3104
3105 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3106
3107         Fix assertion triggered when compiling nemerle.
3108         * class.c (mono_get_shared_generic_inst): Rename from
3109         get_shared_inst and make non-static.
3110         * loader.c (mono_get_shared_generic_method): New.  Used to create
3111         the MonoGenericContext-equivalent of a MonoGenericContainer.
3112         (mono_get_method_from_token): Initialize the 'context' field of
3113         the created MonoGenericContainer.
3114         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3115         * metadata.c (get_constraints): Add sanity check.
3116         * class-internals.h: Add new internal methods.
3117
3118         * reflection.c (verify_safe_for_managed_space): New sanity check.
3119         Currently checks that owner-less generic parameters aren't allowed
3120         in managed space.
3121         (mono_type_get_object): Use it.
3122         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3123         that are now in mono_type_get_object.
3124         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3125
3126 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3127
3128         * metadata.c (mono_type_create_from_typespec): Rename from
3129         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3130         argument and caching of types in the generic container.
3131         (unwrap_arrays, find_generic_param): Remove.
3132         * metadata-internals.h: Update.
3133         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3134
3135 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3136
3137         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3138
3139         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3140         return values. Fixes #77581.
3141
3142         * class.c (mono_fnptr_class_get): Switch name and name_space.
3143
3144         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3145         classes and add support for [In, Out] attributes.
3146         (mono_marshal_free_asany): Ditto. Fixes #77524.
3147
3148 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3149
3150         * class.c (mono_class_from_generic_parameter): Make more robust to
3151         incomplete MonoGenericContainers from monodis.
3152
3153 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3154
3155         * class-internals.h: added some more exception types.
3156         * class.c, metadata.c: added a few checks to handle missing
3157         types.
3158
3159 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3160
3161         Use owner-less generic-params some more.
3162         * class.c (my_mono_class_from_generic_parameter): Remove.
3163         (mono_class_from_generic_parameter): Handle null image,
3164         param->name and param->owner.
3165         (mono_class_from_mono_type): Update.
3166         (mono_class_create_from_typespec): Remove 'container' parameter.
3167         If that parameter is non-null, the result is always inflated by
3168         'mono_class_get_full' anyway.
3169         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3170         parameter.
3171         (mono_class_get_full): Update.
3172
3173         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3174         instance is not open, don't bother inflating.
3175         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3176         parse metadata for inflated classes.
3177         (_mono_class_get): Change GenericContext* parameter to
3178         GenericContainer*.
3179         (mono_class_create_from_typespec): Likewise.  Simplify, and
3180         implement trivially.  All the cases are handled in
3181         mono_class_from_mono_type.  Don't inflate returned class.
3182         (mono_class_get_full): Delegate GENERICINST optimization to
3183         inflate_generic_type.
3184         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3185
3186 2006-02-16  Dick Porter  <dick@ximian.com>
3187
3188         * socket-io.c (create_object_from_sockaddr): Fix typo.
3189         (create_sockaddr_from_object): Check array lengths before
3190         potentially accessing items off the end.
3191         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3192         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3193         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3194         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3195         length checks to avoid wraparound overflows.
3196         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3197         contents of the array of sockets
3198         (hostent_to_IPHostEntry2)
3199         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3200         Check return value of inet_ntop ().
3201         (addrinfo_to_IPHostEntry): Fix typo
3202
3203 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3204
3205         Type metadata parsing doesn't use generic-instantiation information.
3206         * metadata.c (mono_metadata_parse_array_full): Change
3207         MonoGenericContext* parameter to MonoGenericContainer*.
3208         (mono_metadata_parse_type_full): Likewise.
3209         (mono_type_create_from_typespec_full): Likewise.
3210         (mono_metadata_parse_mh_full): Likewise.
3211         (mono_metadata_parse_generic_inst): Likewise.
3212         (do_mono_metadata_parse_generic_class): Likewise.
3213         (do_mono_metadata_parse_type): Likewise.
3214         * metadata-internals.h: Update to changes.
3215         * class.c (mono_class_find_enum_basetype): Likewise.
3216         (mono_class_setup_fields): Likewise.
3217         (mono_class_create_from_typespec): Likewise.
3218         * loader.c (method_from_methodspec): Likewise.
3219         (mono_get_method_from_token): Likewise.
3220         (mono_method_get_header): Likewise.
3221
3222 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3223
3224         * marshal.c: handle additional GENERICINST case (patch from
3225         Thong Nguyen <tum@veridicus.com>).
3226         Fix a few cases where LDIND_I/STIND_I was used for references.
3227
3228 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3229
3230         * reflection.c (mono_reflection_get_token): Remove unused variable.
3231
3232 2006-02-16  Martin Baulig  <martin@ximian.com>
3233
3234         * reflection.c (mono_reflection_get_token): Add support for fields
3235         in instantiated generic types.
3236
3237         * icall.c
3238         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3239
3240 2006-02-15  Martin Baulig  <martin@ximian.com>
3241
3242         * icall.c
3243         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3244         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3245         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3246         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3247
3248 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3249
3250         * class.c, metadata.c, metadata.h, object.c, icall.c,
3251         marshal.c: changed mono_type_get_underlying_type () to do
3252         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3253         Fixed handling of instantiated generic valuetypes (bug #75479).
3254
3255 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3256
3257         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3258         Delegate to mono_metadata_decode_value, and work on the returned value.
3259
3260         * icall.c (ves_icall_MonoType_GetGenericArguments):
3261         Add consistency check here too.
3262         
3263 2006-02-15  Ankit Jain  <jankit@novell.com>
3264
3265         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3266         char/short etc.
3267
3268 2006-02-15  Ankit Jain  <jankit@novell.com>
3269
3270         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3271         signed values, used only for representing lower bounds of arrays.
3272         (mono_metadata_parse_array_full): Use new
3273         mono_metadata_decode_signed_value to decode lower bounds.
3274
3275 2006-02-14  Martin Baulig  <martin@ximian.com>
3276
3277         * reflection.c
3278         (mono_reflection_get_token): Support "MonoGenericMethod" and
3279         "MonoGenericCMethod" and allow generic instances / methods.
3280
3281 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3282
3283         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3284         to obtain the terminal size using an ioctl.
3285
3286         * object.c (mono_nullable_init): Revert this as nullable reference
3287         types are not valid.
3288         (mono_nullable_box): Ditto.
3289
3290 2006-02-09  Dick Porter  <dick@ximian.com>
3291
3292         * threads.c (mono_thread_detach): Drop a reference to the thread
3293         we're detaching.
3294
3295 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3296
3297         * object.c (mono_nullable_init): Handle nullable reference types.
3298         (mono_nullable_box): Ditto. Fixes #77446.
3299
3300 2006-02-07  Martin Baulig  <martin@ximian.com>
3301
3302         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3303
3304 2006-02-07  Ankit Jain  <jankit@novell.com>
3305
3306         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3307         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3308         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3309         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3310         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3311         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3312
3313 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3314
3315         * class.c (mono_class_create_generic): Set type_token as well.
3316
3317         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3318         compatible with MS.
3319
3320 2006-02-02  Martin Baulig  <martin@ximian.com>
3321
3322         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3323         has never been used so far.
3324
3325 2006-02-02  Martin Baulig  <martin@ximian.com>
3326
3327         * mono-debug-debugger.h: Changed comment at the top of this file;
3328         the header is not installed, but it's safe to #include it from
3329         within the JIT.
3330
3331         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3332         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3333
3334 2006-02-02  Martin Baulig  <martin@ximian.com>
3335
3336         * mono-debug.h
3337         (MonoSymbolTable): Removed the `metadata_info' field.
3338
3339         * mono-debug.c
3340         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3341
3342         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3343         (mono_debugger_add_builtin_types): Removed.
3344         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3345         (mono_debugger_create_notification_function): We now operate on a
3346         pre-allocated area; take a `gpointer' and return `void'.
3347
3348         * mono-debug-debugger.c
3349         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3350         (mono_debugger_add_builtin_types): Removed.
3351
3352 2006-02-02  Martin Baulig  <martin@ximian.com>
3353
3354         * threads.c (mono_debugger_create_all_threads): New public method.
3355
3356 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3357
3358         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3359         breaks on several platforms.
3360
3361 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3362
3363         * assembly.c: the VS.NET build doesn't supply default values for
3364         MONO_ASSEMBLIES and MONO_CFG_DIR.
3365
3366 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3367
3368         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3369         helper function.
3370
3371         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3372
3373         * loader.c (method_from_memberref): Fix a warning.
3374
3375         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3376
3377         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3378         with explicit layout. Fixes #77433.
3379
3380 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3381
3382         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3383         max_interface_id is initialized before using it. Fixes #77398.
3384         (ves_icall_Type_GetInterfaces): Ditto.
3385
3386 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3387
3388         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3389         allocate memory for parameter attributes when parsing memberref
3390         signatures.
3391         * loader.c (mono_loader_set_error_method_load): Don't warn.
3392         (method_from_memberref): Ensure MissingMethodException gets thrown
3393         if method is not found.  Make warning more informative.
3394
3395 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3396
3397         Fix #77397
3398         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3399         return true if is byref.
3400         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3401         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3402         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3403
3404 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3405
3406         Fix tests/find-method.2.il
3407         * loader.c (find_method, find_method_in_class): Remove is_inflated
3408         argument.  Revert 2006-01-18 change.
3409         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3410         is generic, search for method in its generic definition.
3411         * class.c (mono_class_setup_vtable_general): Print generic
3412         arguments of generic types in debugging printf.
3413
3414 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3415
3416         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3417
3418         * threads.c (mono_threads_request_thread_dump): New helper function.
3419
3420 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3421
3422         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3423
3424 2006-01-25  Ankit Jain  <jankit@novell.com>
3425
3426         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3427         move definition to ..
3428         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3429         
3430 2006-01-25  Ankit Jain  <jankit@novell.com>
3431             Raja R Harinath  <rharinath@novell.com>
3432
3433         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3434         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3435         as necessary.
3436
3437 2006-01-25  Martin Baulig  <martin@ximian.com>
3438
3439         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3440         `MonoDebuggerThread' into debug-debugger.c.
3441
3442 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3443
3444         * profiler.c: fix printing of data.
3445
3446 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3447
3448         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3449           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3450
3451 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3452
3453         * object.c: fix deadlock related to string interning.
3454
3455 2006-01-23  Martin Baulig  <martin@ximian.com>
3456
3457         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3458
3459         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3460
3461 2006-01-23  Martin Baulig  <martin@ximian.com>
3462
3463         * mono-debug.h: Moved the prototypes of some functions which are
3464         used by the JIT here from mono-debug-debugger.h.
3465
3466 2006-01-21  Martin Baulig  <martin@ximian.com>
3467
3468         * Makefile.am: Don't install mono-debug-debugger.h.
3469
3470 2006-01-21  Martin Baulig  <martin@ximian.com>
3471
3472         * mono-debug-debugger.h: Enforce the private status of this header
3473         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3474         Moved some stuff from mono-debugger-jit-wrapper.h here.
3475
3476 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3477
3478         * class.c (mono_class_from_typeref): Add a sanity test to help
3479         catch lack of assembly load/search hooks.
3480
3481 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3482
3483         * marshal.c (emit_struct_conv): Relax the fields with same offset
3484         check even more. Fixes #77230.
3485
3486 2006-01-18  Martin Baulig  <martin@ximian.com>
3487
3488         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3489         argument; if false, we compare the uninstantiated signatures.
3490         (method_from_memberref): Compare the uninstantiated signatures;
3491         fixes #76417.
3492
3493 2006-01-18  Robert Jordan  <robertj@gmx.net>
3494
3495         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3496         Clear the weak link. Fixes bug #77170.
3497
3498         * gc.c (mono_gchandle_free):
3499         Reflect *-gc.c changes (tiny optimization).
3500
3501 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3502
3503         * metadata.c (mono_metadata_signature_dup): Applied patch from
3504         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3505         Fixes #77288.
3506
3507 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3508
3509         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3510         marshalling from native to managed code. Fixes #77230.
3511
3512 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3513
3514         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3515         connect. Fixes bug #77020.
3516
3517 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3518
3519         * class.c: fixed id assignement for nested interfaces (bug #77275).
3520         Added also better info for --print-vtable debugging.
3521
3522 2006-01-12  Martin Baulig  <martin@ximian.com>
3523
3524         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3525         interfaces on-the-fly; fixes #76625.
3526
3527         * class-internals.h
3528         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3529         don't need that anymore.
3530
3531 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3532
3533         * socket-io.c
3534         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3535         To avoid initing the nested_classes when not needed I turned the
3536         PeerCredData as a toplevel internal class, as it has to be shared
3537         anyways. 
3538
3539         Fixes the CASA issue.
3540
3541 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3542
3543         * domain.c: Accessors for MonoJitInfo
3544
3545         * profiler-private.h: Add jitinfo to the end jit hook
3546
3547         * profiler.[ch]: Define new hooks, called after jitting which give
3548         the MonoJitInfo that was compiled
3549
3550 2006-01-10  Martin Baulig  <martin@ximian.com>
3551
3552         * class.c (mono_class_setup_events): Add support for generic
3553         classes; fixes #76440.
3554
3555 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3556
3557         Fix #77160.
3558         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3559         on passed-in method.
3560
3561 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3562
3563         * object.c (mono_runtime_invoke_array): Add Nullable support.
3564
3565         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3566
3567 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3568
3569         * file-io.c: Don't consider sockets as directory and avoid an endless
3570         loop. Fix bug #76966.
3571
3572 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3573
3574         * object.c (mono_nullable_init): New helper function.
3575         (mono_nullable_box): Ditto.
3576
3577         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3578
3579         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3580
3581         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3582         
3583 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3584
3585         * class.c (mono_class_is_assignable_from): Make T assignable to 
3586         Nullable<T>.
3587
3588 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3589
3590         * appdomain.c: Bump corlib version to 46.
3591         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3592         serialization purpose) and changed ves_icall_System_Reflection_
3593         Assembly_get_code_base signature to accept a boolean (to escape, or 
3594         not, the assembly code base).
3595
3596 2005-12-23  Dick Porter  <dick@ximian.com>
3597
3598         * icall.c: 
3599         * threads-types.h: 
3600         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3601         CreateEvent icall now returns "created" boolean parameter.
3602
3603 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3604
3605         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3606         #76967.
3607
3608         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3609         when attr_klass is an interface. Fixes #77045.
3610
3611 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3612
3613         * marshal.c (emit_struct_conv): Fix previous patch.
3614         
3615         * marshal.c (emit_struct_conv): Add a check for fields with the same
3616         offset.
3617
3618 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3619
3620         Fix regression in Mono.C5.
3621         * class.c (mono_class_create_generic): If 'klass' is an interface
3622         set up the interface offsets.
3623         (mono_class_is_assignable_from): Don't throw away generic arguments.
3624
3625 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3626
3627         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3628         type parameters.
3629
3630 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3631
3632         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3633         dead store.
3634         (do_mono_metadata_parse_generic_class): Don't pass the current
3635         generic context when parsing the type being instantiated: it
3636         cannot use it, anyway.
3637
3638         * loader.c (method_from_memberref): Don't inflate a signature if
3639         it doesn't contain any type parameters.
3640
3641 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3642
3643         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3644
3645 2005-12-14  Martin Baulig  <martin@ximian.com>
3646
3647         * class.c
3648         (mono_type_get_name_recurse): Don't return null for type
3649         parameters and open generic classes.
3650         (mono_class_setup_methods): Don't exclude generic instances.
3651         (mono_get_unique_iid): Use different IDs for different
3652         instantiations of the same generic type.
3653         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3654         open generic instances; create a normal vtable for closed generic
3655         instances.
3656         (mono_class_setup_vtable_general): We're now also called for
3657         closed generic instances.
3658
3659         * reflection.c
3660         (mono_reflection_bind_generic_parameters): Correctly use
3661         mono_metadata_lookup_generic_inst() everywhere.
3662
3663 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3664
3665         * object.c (mono_class_create_runtime_vtable): Call 
3666         mono_class_setup_vtable ().
3667
3668         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3669         function.
3670         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3671         #76959.
3672
3673         * loader.c (mono_loader_set_error_type_load): Print the type load
3674         warnings to the console so they are more visible to the user.
3675         (mono_loader_set_error_method_load): Ditto.
3676
3677         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3678         is still broken.
3679         
3680         * reflection.c (ensure_runtime_vtable): Fix build.
3681
3682         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3683         doesn't work in all cases.
3684
3685 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3686
3687         * object.c (mono_array_new_full): Treat a single dimensional array
3688         with 0 lower bounds as an szarray. Fixes #76973.
3689
3690         * reflection.c (custom_attr_visible): Really fix this.
3691
3692 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3693
3694         * reflection.c (custom_attr_visible): Allow nested public attributes
3695         as well.
3696
3697         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3698         interface check.
3699
3700 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3701
3702         * class.c (set_generic_param_owner): Delete.
3703         (mono_class_create_from_typedef): Don't set ->owner field of
3704         generic parameters to "param containers" of enclosing classes.
3705         * reflection.c (mono_reflection_initialize_generic_parameter):
3706         Likewise.
3707
3708 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3709
3710         * reflection.c (custom_attr_visible): Fix build.
3711
3712 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3713
3714         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3715         private attributes.
3716         
3717         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3718         handling of null parameter defaults.
3719
3720 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3721
3722         * class.c (mono_class_from_generic_parameter): Don't set
3723         klass->generic_container.
3724         (my_mono_class_from_generic_parameter): Likewise.
3725
3726 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3727
3728         * reflection.c (load_public_key): Fix a warning.
3729         (method_encode_code): Fix unaligned accesses.
3730
3731 2005-12-07  Martin Baulig  <martin@ximian.com>
3732
3733         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3734
3735         * reflection.c
3736         (write_generic_param_entry): Encode our custom attrs.
3737
3738         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3739
3740 2005-12-07  Martin Baulig  <martin@ximian.com>
3741
3742         * reflection.c (encode_new_constraint): Removed; we don't use the
3743         `NewConstraintAttribute' anymore.
3744
3745 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3746
3747         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3748         not fire a TypeResolve event when Assembly.GetType () is called.
3749
3750 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3751
3752         Beginning of support for nullable types in the runtime. Parts of
3753         this patch are from Martin.
3754
3755         * appdomain.c (MONO_CORLIB_VERSION): Bump
3756
3757         * domain.c (mono_init_internal): get the nullable type
3758
3759         * class.c (mono_class_is_nullable): New method
3760         (mono_class_get_nullable_param): New mehod
3761         (mono_class_create_generic): In types T? set cast_class to T
3762
3763         * class-internals.h (MonoDefaults): new nullable default class
3764         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3765         new methods.
3766
3767 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3768
3769         * metadata.c (select_container): New.  Refactor code to select the
3770         appropriate GenericContainer given the type of generic parameter
3771         we are looking for.
3772         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3773         not a MonoGenericContext.  Use select_container.  Update parameters.
3774         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3775         and MONO_TYPE_MVAR.
3776         (unwrap_arrays): Remove duplicate tests.
3777         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3778         generic instantiated class to find any arguments that are generic
3779         parameters.
3780         (mono_type_create_from_typespec_full): Use find_generic_param to
3781         avoid evicting some generic instantiations from the typespec
3782         cache.
3783
3784 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3785
3786         * reflection.c: fixed writing of doubles on ARM FPA.
3787
3788 2005-12-02  Robert Jordan  <robertj@gmx.net>
3789
3790         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3791
3792 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3793
3794         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3795         least on SUSE 10 they are not the same (on debian, they are just the
3796         same thing).
3797
3798 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3799
3800         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3801         DeclaringType for VARs and MVARs.
3802         * class.c (set_generic_param_owner): Fix initialization of owner
3803         fields.
3804
3805 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3806
3807         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3808
3809 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3810
3811         * threadpool.c: workaround for a bug that shows up on the Mac:
3812         select()+connect() on a blocking socket is not like it should
3813         be, so we proceed to connect() in that case, wasting the I/O
3814         threadpool thread until connect succeedes. Fixes bug #75436.
3815
3816 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3817
3818         * threadpool.c: fix typo when setting file descriptor states.
3819
3820 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3821
3822         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3823         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3824         create a temporary signature container.
3825         (mono_metadata_parse_generic_param): Update to changes.
3826         (mono_type_create_from_typespec_full): Update to changes.
3827         * loader.c (method_from_memberref): Don't use a
3828         MonoGenericContainer while parsing a memberref signature.
3829         (method_from_methodspec): Remove dead-store of the 'container'
3830         variable.  It's overwritten before use.
3831
3832         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3833         checks tighter.
3834         (mono_metadata_parse_generic_param): Likewise.
3835         * loader.c (find_method_in_class): Does not need a
3836         MonoGenericContainer.  Use 'mono_method_signature' rather than
3837         'mono_method_signature_full'.
3838         (find_method, mono_get_method_constrained, method_from_memberref):
3839         Update to changes.
3840
3841         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3842         owner-less generic-parameters are never evicted from the typespec
3843         cache.
3844
3845         * loader.c (method_from_memberref): Don't use the current context
3846         when parsing signatures.
3847         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3848
3849         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3850         side-effects in g_assert.
3851         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3852         that we don't potentially lose information.
3853
3854 2005-11-26  Dick Porter  <dick@ximian.com>
3855
3856         * icall.c:
3857         * threads.c: icalls to implement basic (ie, not named)
3858         System.Threading.Semaphore.
3859
3860 2005-11-24  Dick Porter  <dick@ximian.com>
3861
3862         * process.c
3863         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3864         Use GetProcessId() if it's available.
3865
3866 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3867
3868         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3869
3870 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3871             Ankit Jain  <jankit@novell.com>
3872
3873         * loader.c (mono_get_method_from_token): Initialize 'method' field
3874         of all generic parameters before parsing the signature.  Remove
3875         code that "fixed"-up MVAR references.
3876
3877 2005-11-23  Ankit Jain  <jankit@novell.com>
3878
3879         * metadata.c (mono_metadata_has_generic_params):
3880         (mono_metadata_load_generic_param_constraints):
3881         (mono_metadata_load_generic_params): Move duplicate code ...
3882         (mono_metadata_get_generic_param_row): ... here. Returns the
3883         first row-id in GenericParam table for a given owner (token).
3884         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3885         prototype.
3886
3887 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3888             Ankit Jain  <jankit@novell.com>
3889
3890         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3891         comparing VARs too.
3892         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3893         type->data.generic_param only if the type is an MVAR.
3894         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3895         leak owner-less VARs and MVARs into managed space.
3896
3897 2005-11-21  Martin Baulig  <martin@ximian.com>
3898
3899         * class-internals.h
3900         (MonoMethod): Moved the `generic_container' here from
3901         `MonoMethodNormal' since we now also need it for
3902         `MonoMethodPInvoke';
3903         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3904         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3905         an union containing both `MonoMethodNormal' and
3906         `MonoMethodPInvoke'.
3907
3908         * loader.c
3909         (mono_get_method_from_token): Allow implementing generic methods
3910         as interncalls.
3911
3912         * threads.c
3913         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3914         icall.
3915
3916 2005-11-17  Dick Porter  <dick@ximian.com>
3917
3918         * icall.c: 
3919         * process.h: 
3920         * process.c: Split the Process Start_internal icall into
3921         ShellExecuteEx_internal and CreateProcess_internal, which are
3922         called depending on whether UseShellExecute is true.  Fixes bug
3923         76670.
3924
3925         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3926
3927 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3928
3929         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3930         'msize' parameters, use the information in 'mspec' instead.
3931         (emit_object_to_ptr_conv): Ditto.
3932
3933         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3934         fields out of order. Fixes #76733.
3935
3936 2005-11-17  Ankit Jain  <jankit@novell.com>
3937
3938         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3939
3940 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3941
3942         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3943           bug #76575.
3944
3945 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3946
3947         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3948         for types with non-auto layout. Fixes #76717.
3949
3950 2005-11-16  Ankit Jain  <jankit@novell.com>
3951
3952         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
3953         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
3954         if generic_context is null.
3955           (mono_metadata_generic_param_equal): param->owner can be null.
3956           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
3957         null.
3958
3959 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3960
3961         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
3962         the correct value.
3963
3964 2005-11-15  Martin Baulig  <martin@ximian.com>
3965
3966         * object.c (set_value): Use mono_class_from_mono_type() instead of
3967         the hack for generic instances; fixes #76136.
3968
3969 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
3970
3971         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
3972         fields.
3973
3974         * image.c (load_metadata_ptrs): Initialize the new fields.
3975
3976         * reflection.c (create_dynamic_mono_image): Ditto.
3977
3978         * reflection.c (build_compressed_metadata): Use the new fields.
3979
3980         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
3981         icall.
3982
3983         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
3984         icall.
3985         
3986 2005-11-15  Ankit Jain  <jankit@novell.com>
3987             Raja R Harinath  <harinath@gmail.com>
3988
3989         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
3990         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
3991         new per-generic_container cache if the cached MonoType's context matches
3992         the current context.
3993           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
3994         to the expected context.
3995           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
3996
3997 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3998
3999         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4000         we changed the signature of an icall.
4001         * icall.c: Modify to mono_double_ParseImpl return true/false 
4002         depending on the success, instead of throwing the exception. This will
4003         help us in Double.TryParse methods.
4004         
4005 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4006
4007         * marshal.c (emit_marshal_object): Throw an exception when
4008         marshalling 'object' instead of crashing. Fixes #76696.
4009
4010 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4011
4012         * class-internals.h: Add prototype for mono_type_get_full_name ().
4013
4014 2005-11-11  Dick Porter  <dick@ximian.com>
4015
4016         * threads.c (mono_thread_manage): Make sure the main thread has
4017         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4018
4019 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4020
4021         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4022         console about the missing type.
4023         (mono_loader_set_error_method_load): Ditto.
4024
4025 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4026
4027         * mono-config.c (mono_get_config_dir): Set the system defaults if
4028         none is specified.
4029
4030         * assembly.c (mono_set_dirs): New API entry point to set the
4031         assembly and the config directory in one call
4032
4033 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4034
4035         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4036         the ftnptr was created from a delegate in a domain other than the
4037         current domain. Fixes #75377.
4038
4039         * exception.h exception.c: Add mono_get_exception_not_supported ().
4040
4041 2005-11-08  Martin Baulig  <martin@ximian.com>
4042
4043         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4044
4045 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4046
4047         * security-manager.h: Added definitions to deal with strongname key 
4048         pairs bigger (and smaller) than 1024 bits.
4049         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4050         adjust wrt the public key length being used.
4051
4052 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4053
4054         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4055           Windows build (r51396-51397).
4056
4057 2005-11-03  Martin Baulig  <martin@ximian.com>
4058
4059         * class.c (mono_class_setup_vtable_general): Also add generic
4060         methods to the vtable; fixes #76581.
4061
4062 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4063
4064         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4065         sure that we lookup GetString method from the System.Text.Encoding
4066         class, not the derived class or we get an empty method.
4067
4068         Fixed class #76612.
4069
4070 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4071
4072         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4073         if it has been previously set (embedders). 
4074
4075         Make mono_set_rootdir available also on Unix.
4076
4077 005-10-24  Robert Jordan  <robertj@gmx.net>
4078
4079         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4080
4081 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4082
4083         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4084         only calls which are made to native code use this flag.
4085
4086         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4087
4088 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4089
4090         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4091         Add support for FieldBuilders.
4092
4093 2005-10-29  Martin Baulig  <martin@ximian.com>
4094
4095         * mono-debug.c
4096         (mono_debug_using_mono_debugger): New public method; returns
4097         whether we're running inside the debugger.
4098
4099 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4100
4101         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4102         for Method/Constructor/FieldBuilders.
4103
4104 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4105
4106         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4107         and fields as well.
4108
4109 2005-10-26  Martin Baulig  <martin@ximian.com>
4110
4111         * mono-debug-debugger.c
4112         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4113
4114 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4115
4116         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4117         integer to isspace.
4118
4119 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4120
4121         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4122         when passing valuetypes byref. Fixes #76502.
4123
4124 2005-10-19  Jackson Harper  <jackson@ximian.com>
4125
4126         * profiler.c: Don't put a . in front of types that are not in a
4127         namespace.
4128
4129 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4130
4131         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4132
4133 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4134
4135         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4136         #76436.
4137         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4138
4139 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4140
4141         * assembly.c metadata-internals.h icall.c: Define an additional
4142         parameter for mono_assembly_name_parse_full, so we can avoid creating
4143         S.R.AssemblyName.Version when no version info wasn't passed.
4144         
4145 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4146
4147         * class.c (mono_type_get_full_name): Reimplement method that was
4148         removed. 
4149
4150         * image.c: Some docs
4151
4152 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4153
4154         * profiler.c (output_newobj_profile): Fix printing of Total memory
4155         on x86.
4156
4157 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4158
4159         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4160
4161 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4162
4163         * threads.c: remove debug output.
4164
4165 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4166
4167         * threads.c (mono_thread_manage): Fix crashes if more than 64
4168         threads need to be aborted. Hopefully fixes #75899.
4169
4170         * assembly.c (mono_stringify_assembly_name): New helper function.
4171
4172         * class.c: Use mono_stringify_assembly_name instead of the similar
4173         static function.
4174
4175         * assembly.h assembly.c: Add support for calling a postload search 
4176         hook if an assembly cannot be loaded.
4177
4178         * appdomain.c: Register new search hooks which call the AssemblyResolve
4179         events in AppDomain. Fixes #75231
4180
4181 2005-10-07  Martin Baulig  <martin@ximian.com>
4182
4183         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4184         methods without debug info.
4185
4186 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4187
4188         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4189         wrappers.
4190
4191 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4192
4193         * file-io.c: now that we return symlinks, use lstat and, when the file
4194         is a symbolic link, stat, to get the file attributes. Also avoid the
4195         conversion to/from utf16/external.
4196
4197 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4198
4199         * class.c (mono_class_layout_fields): Compute klass->has_references
4200         correctly if an embedded valuetype is not yet initialized. Fixes
4201         #76331.
4202
4203 2005-10-04  Martin Baulig  <martin@ximian.com>
4204
4205         * metadata.c
4206         (mono_metadata_load_generic_param_constraints): New public
4207         function; splitted the constraints loading out from
4208         mono_metadata_load_generic_params().
4209
4210         * class.c (mono_class_create_from_typedef): Call
4211         mono_metadata_load_generic_param_constraints() after setting up
4212         the type and creating our parent; fixes #75329.
4213
4214 2005-10-04  Martin Baulig  <martin@ximian.com>
4215
4216         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4217         non-dynamic parent classes.
4218
4219 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4220
4221         * file-io.c : win32 build fix (ETXTBSY seems not found).
4222
4223 2005-10-04  Martin Baulig  <martin@ximian.com>
4224
4225         * reflection.c
4226         (mono_image_get_methodspec_token): Make the cache actually work;
4227         fixes #75974.
4228
4229 2005-10-04  Martin Baulig  <martin@ximian.com>
4230
4231         * class.c (mono_class_name_from_token): Removed the unneccessary
4232         `MonoGenericContext *' argument.
4233
4234 2005-10-04  Martin Baulig  <martin@ximian.com>
4235
4236         * loader.c
4237         (method_from_methodspec): Make the caching work again; fixes the
4238         performance regression from #76262.
4239
4240 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4241
4242         * file-io.c:
4243         * file-io.h:
4244         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4245         GetFileSystemEntries that performs the same work but without going
4246         into io-layer, locking, etc.
4247
4248 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4249
4250         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4251         ThreadState_Stopped as well. Fixes #76047.
4252
4253 2005-09-29  Martin Baulig  <martin@ximian.com>
4254
4255         * class.c
4256         (inflate_generic_context): If the new context has a `gmethod', set
4257         its `container' that that gmethod's `container'.
4258
4259         * metadata.c
4260         (mono_metadata_parse_generic_param): Simplify things;
4261         `generic_container = generic_context->container;' is just fine.
4262
4263         * loader.c (method_from_methodspec): Code cleanups.
4264
4265 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4266
4267         * decimal.c: fix warning (and let gcc generate correct
4268         code on ARM with optimizations).
4269
4270 2005-09-28  Martin Baulig  <martin@ximian.com>
4271
4272         * loader.c
4273         (method_from_memberref): Added `MonoGenericContext *class_context'
4274         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4275         (method_from_methodspec): If we're a memberref, use the enclosing
4276         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4277
4278 2005-09-28  Martin Baulig  <martin@ximian.com>
4279
4280         * object.c (mono_runtime_invoke_array): Added support for
4281         MONO_TYPE_GENERICINST; fixes #75917.
4282
4283 2005-09-27  Martin Baulig  <martin@ximian.com>
4284
4285         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4286         `k->byval_arg.type' to determine the actual type.
4287
4288         * loader.c (method_from_methodspec): Removed some hacks.
4289
4290 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4291
4292         * class-internals.h (mono_field_is_deleted): Do the test for
4293         rtspecialname before we check the actual name of the field. This
4294         prevents us from dereferencing a pointer into the string table,
4295         saving us from accessing a few pages
4296
4297         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4298         macros. This will allow a deadlock debugger to easily be plugged
4299         in.
4300
4301 2005-09-27  Martin Baulig  <martin@ximian.com>
4302
4303         * loader.c (method_from_methodspec): Create a "signature"
4304         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4305
4306 2005-09-27  Martin Baulig  <martin@ximian.com>
4307
4308         * class.c
4309         (inflate_generic_class): Correctly set the new context's
4310         container.
4311
4312         * loader.c
4313         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4314         instead of a `MonoGenericContext *'.
4315         (mono_method_signature_full): Take a `MonoGenericContainer *'
4316         instead of a `MonoGenericContext *'.
4317
4318         * metadata.c
4319         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4320         instead of a `MonoGenericContext *'.
4321         (mono_metadata_parse_method_signature_full): Likewise.
4322
4323 2005-09-26  Martin Baulig  <martin@ximian.com>
4324
4325         * class.c
4326         (mono_class_from_generic_parameter): Set `klass->generic_container'
4327         (mono_class_from_generic_parameter): Likewise.
4328         (mono_bounded_array_class_get): We inherit the generic container
4329         from the element class.
4330
4331         * loader.c
4332         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4333         argument rather than computing it here.
4334         (method_from_memberref): Correctly set the generic context before
4335         parsing the signature.  Fixes #75681.
4336
4337 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4338
4339         * object.c (mono_class_has_special_static_fields): Fix warnings.
4340
4341 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4342
4343         * assembly.c: Add parse_public_key function, to
4344         par the public keys. Also added mono_assembly_name_parse_full,
4345         to define it the parsed key should be freed or not.
4346         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4347         to parse a long format assembly name.
4348         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4349         private, since calling it to preserve the key requires
4350         freeing it manually.
4351         
4352 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4353
4354         * locales.c : removed HAVE_ICU part.
4355
4356 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4357
4358         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4359         field_is_special_static if the klass has no special static fields.
4360
4361         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4362         (MonoCachedClassInfo): Likewise.
4363
4364         * object.c (mono_class_has_special_static_fields): New helper function.
4365
4366 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4367
4368         * class.c (mono_class_create_from_typedef): Don't call 
4369         interfaces_from_typedef_full for enums.
4370         (mono_class_create_from_typedef): Compute the base types of enums directly
4371         without calling mono_class_setup_fields ().
4372         (mono_class_find_enum_basetype): New helper function.
4373
4374         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4375         one place inside the string heap.
4376         
4377 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4378
4379         * class.c: locking fixes, code cleanups, some docs added.
4380         Allocate some data structures in the image mempool.
4381
4382 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4383
4384         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4385         the example code.
4386         
4387 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4388
4389         * class-internals.h, class.c, reflection.c: reduce memory taken by
4390         MonoClass.
4391
4392 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4393
4394         * metadata.c, metadata.h, loader.h: documentation updates, code and
4395         API cleanups.
4396
4397 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4398
4399         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4400         the example code.
4401
4402         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4403         page faults caused by the runtime while reading metadata.
4404
4405 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4406
4407         * socket-io.c: the field names were changed 3 months ago and no one
4408         realized until bug #76077 got filed!
4409
4410 2005-09-20  Martin Baulig  <martin@ximian.com>
4411
4412         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4413
4414 2005-09-20  Martin Baulig  <martin@ximian.com>
4415
4416         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4417         write the rank into the class entry.
4418
4419 2005-09-20  Martin Baulig  <martin@ximian.com>
4420
4421         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4422
4423 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4424
4425         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4426
4427         * icall.c (custom_attrs_defined_internal): New icall.
4428
4429         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4430         function.
4431         (mono_custom_attrs_construct_by_type): New helper function.
4432
4433 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4434
4435         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4436         terminate the resulting string. Fixes #76123.
4437
4438 2005-09-16  Martin Baulig  <martin@ximian.com>
4439
4440         * mono-debug.c
4441         (mono_debug_add_method): Ignore inflated methods for the moment.
4442
4443 2005-09-14  Martin Baulig  <martin@ximian.com>
4444
4445         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4446
4447 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4448
4449         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4450         return a success/failure indication.
4451         (mono_metadata_interfaces_from_typedef_full): Ditto.
4452         (get_constraints): Ditto.
4453
4454 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4455
4456         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4457         
4458         * marshal.c (emit_marshal_array): Add support for returning string
4459         arrays from delegates. Fixes #76063.
4460
4461         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4462
4463 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4464
4465         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4466         icall.
4467
4468 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4469
4470         * reflection.c icall.c: Fix after mono_get_exception_type_load
4471         signature change.
4472
4473         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4474         (mono_assembly_load_reference): Use the new helper.
4475
4476         * class-internals.h (MonoLoaderError): New structure containing 
4477         information about type loading errors.
4478
4479         * class-internals.h loader.c: Add APIs to store per-thread loader
4480         error information.
4481
4482         * loader.c class.c: Set the loader error if needed.
4483
4484         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4485
4486 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4487
4488         * decimal.c: fixed to handle the broken ARM fp format.
4489
4490 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4491
4492         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4493         broken.
4494
4495 2005-09-06  Martin Baulig  <martin@ximian.com>
4496
4497         * domain.c (supported_runtimes): Added v2.0.50727.
4498
4499 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4500
4501         * culture-info.h: reduce the size of some structures.
4502
4503 2005-09-05  Martin Baulig  <martin@ximian.com>
4504
4505         Reflect latest API changes in the August CTP.
4506
4507         * icall.c
4508         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4509         ("MonoType.HasGenericArguments"): Removed.
4510         ("MonoMethod.BindGenericParameters"): Renamed to
4511         "MakeGenericMethod".
4512         ("MethodBuilder.BindGenericParameters"): Renamed to
4513         "MakeGenericMethod".    
4514
4515 2005-09-05  Martin Baulig  <martin@ximian.com>
4516
4517         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4518
4519 2005-09-05  Martin Baulig  <martin@ximian.com>
4520
4521         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4522
4523         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4524         generic_container is non-NULL.
4525
4526 2005-09-05  Martin Baulig  <martin@ximian.com>
4527
4528         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4529
4530         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4531
4532 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4533
4534         * reflection.c (encode_locals,
4535         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4536         for large generic types.
4537
4538 2005-09-05  Martin Baulig  <martin@ximian.com>
4539
4540         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4541
4542         * class.c (mono_dup_array_type): New public method.
4543         (mono_metadata_signature_deep_dup): New public method.
4544         (dup_type): Correctly duplicate array and function types.
4545
4546 2005-09-05  Martin Baulig  <martin@ximian.com>
4547
4548         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4549
4550         * reflection.c (get_default_param_value_blobs): Handle generic types
4551         and generic methods.
4552
4553 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4554
4555         * class.c: Fixed error reporting (method/class were inversed) for 
4556         inheritance demands.
4557         * security-manager.c|h: Added the AppDomain when calling the managed
4558         System.Security.SecurityManager.InheritanceDemand method.
4559
4560 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4561
4562         * reflection.c (encode_marshal_blob): 'marshaltype' and
4563         'marshaltyperef' are alternate sources for the custom marshaler
4564         name.
4565
4566 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4567
4568         * class.c: fix creation of array classes with rank == 1
4569         (patch by Ankit Jain <jankit@novell.com>).
4570
4571 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4572
4573         * object.c: fix check for creating the bound data for arrays vs
4574         szarrays.
4575
4576 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4577
4578         * object.c: configuration file name is now based on the executable name,
4579         not the image name. Fixes bug #75931.
4580
4581 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4582
4583         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4584         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4585
4586 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4587
4588         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4589
4590 2005-08-24  Ankit Jain  <jankit@novell.com>
4591             Raja R Harinath  <rharinath@novell.com>
4592
4593         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4594           called by it recursively.
4595           (mono_class_init): Remove special case in pending_init handling, since it's
4596           superseded by the fix to mono_class_from_typeref.
4597
4598 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4599
4600         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4601         BROKEN_THREAD_START stuff.
4602
4603 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4604
4605         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4606         trampoline.
4607
4608         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4609         
4610         * object.c (mono_delegate_ctor): Replace the original function address with
4611         a delegate trampoline.
4612
4613 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4614
4615         * icall.c: add boolean argument to base64_to_byte_array and 
4616         InternalFromBase64String to control whether a whitespace-only string
4617         is allowed (or should casue a FormatException to be thrown). We need
4618         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4619         to match the MS behaviour in both profiles.
4620         * appdomain.c: Bump corlib version.
4621
4622 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4623
4624         This patch implements a big portion of publisher policy
4625         support, used to bind assembly versions and redirect
4626         one assembly from version A to version B.
4627
4628         * assembly.c:
4629         New GSList loaded_assembly_bindings, for storing the cached
4630         assembly bindings.
4631         (assembly_binding_maps_name): New static function for checking if a 
4632         assembly binding information maps an assembly name.
4633         (mono_assembly_binding_info_free): New function for freeing
4634         assembly binding information resources.
4635         (get_publisher_policy_info): New static function for retrieving 
4636         assembly binding information from a MonoImage.
4637         (compare_versions): New static function for comparing an assembly
4638         binding information data and the version of an assembly name.
4639         (check_policy_versions): New static function for checking if an
4640         assembly binding info mapping an assembly name is valid for it.
4641         (mono_assembly_load_publisher_policy): New static function for
4642         loading the 'policy.major.minor.MyAssembly' image for an assembly
4643         with an assembly name 'aname'.
4644         (mono_assembly_bind_version): New static function for updating
4645         assembly redirection.
4646         (mono_assembly_apply_binding): New static function for applying
4647         assembly binding.
4648         (search_binding_loaded): New static function for searching 
4649         loaded assembly binding infos in the cache domain.
4650         (mono_assembly_load_full): Don't apply assembly binding for
4651         reflection only assemblies.
4652
4653         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4654         which contains information about assembly binding. Also
4655         declare signature for mono_config_parse_publisher_policy ()
4656         function, used to retrieve pub policy info.
4657         
4658         * mono-config.c:
4659         (publisher_policy_start): New static function used to parse publisher 
4660         policy config files.
4661         (publisher_policy_parser): New static MonoParseHandler containing 
4662         the functions used when parsing config files.
4663         (mono_config_parse_publisher_policy): New function for parsing
4664         publisher policy files.
4665         
4666 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4667
4668         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4669
4670         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4671
4672         * object.c (mono_get_addr_from_ftnptr): New helper function.
4673
4674         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4675
4676         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4677
4678 2005-08-19  Dick Porter  <dick@ximian.com>
4679
4680         * threads.c, threads.h, appdomain.c, appdomain.h,
4681         profiler-private.h, monitor.c, object.c, object-internals.h,
4682         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4683         store the thread ID, so it can hold a 64 bit value if needed.
4684
4685 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4686
4687         * reflection.c (mono_reflection_create_dynamic_method): Store the
4688         handle class into the method references as well so ldtoken works in
4689         dynamic methods.
4690
4691         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4692         types.
4693
4694 2005-08-19  Ankit Jain <jankit@novell.com>
4695
4696         Fix #75847.
4697         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4698           here rather than using the method signature of a arbitrary function
4699           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4700           two arguments.
4701           Hack done with Harinath.
4702
4703 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4704
4705         * threadpool.c: disable printing stack traces when we get a exception
4706         in a threadpool thread. I need to do more testing to figure out which
4707         cases actually print this. Fixes bug #75828.
4708
4709 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4710
4711         * icall.c: there might be ignored whitespace after the last '='. This
4712         fixes length computation and bug #75840.
4713
4714 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4715
4716         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4717         well. Fixes #75809.
4718
4719         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4720         #75784.
4721         
4722         * reflection.c (create_custom_attr_data): Ditto.
4723
4724 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4725
4726         * locales.c, culture-info.h : removed RegionLCIDMap.
4727         * culture-info-tables.h : regenerated.
4728
4729 2005-08-16  Martin Baulig  <martin@ximian.com>
4730
4731         * class.c (mono_type_get_name_recurse): Small fix.
4732
4733 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4734
4735         * locales.c : indentation fixie.
4736
4737 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4738
4739         * object-internals.h,
4740           locales.h,
4741           locales.c,
4742           culture-info.h,
4743           icall.c : added RegionInfo table support.
4744         * culture-info-table.h : regenerated for region support.
4745
4746 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4747
4748         * reflection.c (resolve_object): handle all kinds of MonoMethod
4749         including generic ones
4750
4751 2005-08-12  Ankit Jain <jankit@novell.com>
4752
4753         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4754           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4755
4756 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4757
4758         * process.c: Don't close a thread handle when it's NULL. This is a
4759         workaround for bug #75733.
4760
4761 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4762
4763         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4764
4765 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4766
4767         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4768
4769 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4770
4771         * threadpool.c: if a work item in the thread pool has a callback that
4772         catches a exception, don't propagate it after invoking the callback.
4773         Fixes bug #75336.
4774
4775 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4776
4777         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4778
4779         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4780
4781         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4782
4783         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4784
4785 2005-08-03  Ankit Jain  <jankit@novell.com>
4786
4787         Fix #75683.
4788         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4789           PInvoke calling convention is 0.
4790
4791 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4792
4793         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4794         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4795
4796 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4797
4798         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4799         to handle threads not started by the GC (patch by Michael Meeks
4800         <michael.meeks@novell.com>).
4801
4802 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4803
4804         * reflection.c: Make buffer used in emitting types larger for some
4805         big generic types (patch by Michal Moskal).
4806
4807 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4808
4809         * mono-debug.c: Fix some (not all) alignment problems.
4810
4811 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4812
4813         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4814         Invoke mono_image_load_from_data_full passing the refonly
4815         parameter.
4816
4817         * assembly.c
4818         (mono_assembly_open_from_bundle): Add the refonly argument, 
4819         in order to pass it to other methods it calls to.
4820         (do_mono_assembly_open): Add the refonly argument, in order 
4821         to pass it to other methods it calls to.
4822         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4823         the refonly parameter to it.
4824
4825         * image.c: Add loaded_images_refonly_hash and
4826         loaded_images_refonly_guid_hash to cache the reflection
4827         only loaded images.
4828         (mono_images_init): Initialize the hash tables used for
4829         caching the reflection only images.
4830         (load_modules): Invoke mono_image_open_full passing the refonly
4831         parameter to load the modules the correct way.
4832         (build_guid_table): Add the refonly argument, to re-build the 
4833         correct hash table.
4834         (do_mono_image_open): Added the refonly argument, in order to
4835         define it for the loaded image.
4836         (mono_image_loaded_full): New function, which receives an
4837         additional parameter to look for the image in the refonly or
4838         non-refonly section.
4839         (mono_image_loaded): Updated, using mono_image_loaded_full.
4840         (mono_image_loaded_by_guid_full): The same case that happens
4841         with mono_image_loaded_full.
4842         (mono_image_loaded_by_guid): Likewise.
4843         (register_image): Use the ref_only variable inside MonoImage
4844         to decide in which hash table store the current image.
4845         (mono_image_open_from_data_full): Rename
4846         mono_image_open_from_data to mono_image_open_from_data_full,
4847         adding the refonly argument, to define the ref_only variable 
4848         inside MonoImage.
4849         (mono_image_open_from_data): Return 
4850         mono_image_open_from_data_full.
4851         (mono_image_open_full): Rename mono_image_open to
4852         mono_image_open_full, receiving the new refonly argument,
4853         to pass it to inner methods.
4854         (mono_pe_file_open): Update this function, to open
4855         a MonoImage as a non-refonly image.
4856         (mono_image_close): Use the refonly variable inside
4857         MonoImage to remove the image from the correct caches.
4858
4859         * image.h: Add the signatures of mono_image_open_full,
4860         mono_image_open_from_data_full, mono_image_loaded_full,
4861         mono_image_loaded_by_guid_full.
4862
4863         * metadata-internals.h: Add the ref_only field to 
4864         MonoImage.
4865         
4866 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4867
4868         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4869         Fix the last behavior, which used to load the assemblies and
4870         extract MonoReflectionAssemblyName information, instead of
4871         extract it from the metadata tables. Needed for Reflection
4872         Only assemblies.
4873         
4874 2005-07-29  Martin Baulig  <martin@ximian.com>
4875
4876         * mono-debug-debugger.c
4877         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4878         not initialized.
4879
4880         * mono-debug.c
4881         (mono_debug_address_from_il_offset): Check whether we have
4882         debugging support before attempting to take the lock.
4883         (mono_debug_source_location_from_address): Likewise.
4884         (mono_debug_source_location_from_il_offset): Likewise.
4885         (mono_debug_il_offset_from_address): Likewise.
4886         (mono_debug_address_from_il_offset): Likewise.
4887
4888 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4889
4890         * class.c (mono_class_from_name_case): Add support for dynamic images.
4891         Fixes #75650.
4892
4893         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4894         for #75479.
4895
4896 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4897         
4898         * reflection.c (mono_method_get_object): Fix warning.
4899
4900 2005-07-28  Martin Baulig  <martin@ximian.com>
4901
4902         * mono-debug.c
4903         (mono_debug_add_wrapper): Also write the wrapper type.
4904
4905 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4906
4907         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4908         
4909         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4910         data indicates the class has none.
4911
4912 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4913
4914         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4915         loader lock with the debugger lock. Prevents deadlocks for beagle.
4916
4917         Beagle can now run on an smp box for a weekend without any
4918         issues. Woohoo!
4919
4920 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4921
4922         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4923         in a module. Fixes #75629.
4924
4925 2005-07-26  Martin Baulig  <martin@ximian.com>
4926
4927         * mono-debug.c (mono_debug_add_wrapper): New static method.
4928         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4929         interncall or a wrapper.
4930
4931         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4932         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4933         (MONO_DEBUGGER_VERSION): Bump to 51.
4934
4935         * mono-debug-debugger.c
4936         (mono_debugger_add_type): Removed this empty function.
4937         (mono_debugger_add_method): Likewise.
4938
4939 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4940
4941         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4942         before accessing method->slot.
4943
4944 2005-07-21  Jb Evain  <jbevain@gmail.com>
4945
4946         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4947         Fixes #75010.
4948
4949 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4950
4951         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
4952         #75587.
4953
4954 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
4955
4956         * image.h image.c: Add mono_image_get_guid () API function.
4957
4958 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
4959
4960         There were issues when multiple threads tried to load
4961         assemblies. A deadlock was created between assemblies_mutex and
4962         mono_domain_assemblies_lock. This fixes the issue by making the
4963         assembly ref counting be lock free. See bug 75586.
4964         
4965         * image.c (mono_image_close): The add ref function here was using
4966         Interlocked operations while the unref was using a mutex and a
4967         --. I don't think this was ever a bug that would be exposed in a
4968         non-pendantic way (ie, by an embedder doing a ref on one thread
4969         and an unref on another), but for the sake of correctness, this is
4970         now Interlocked.
4971
4972         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
4973         (mono_assembly_load_reference): Call mono_assembly_addref rather
4974         than touching the refcount ourselves.
4975         (mono_assembly_close): Use InterlockedDecrement to unref the
4976         assembly. Don't acquire the lock unless it is actually needed.
4977
4978 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4979
4980         * class.c (mono_class_layout_fields): Fix calculation of has_references
4981         for generic types.
4982
4983 2005-07-12  Martin Baulig  <martin@ximian.com>
4984
4985         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4986
4987         * metadata.c
4988         (mono_type_hash): Provide better hashing for generic instances.
4989         (mono_generic_inst_hash): Improve hashing.
4990         (mono_generic_class_hash): Likewise.
4991
4992         * reflection.c (mymono_metadata_type_hash): Improve hashing for
4993         generic instances.
4994
4995 2005-07-12  Martin Baulig  <martin@ximian.com>
4996
4997         * reflection.c (mono_reflection_create_runtime_class): Remove the
4998         hack for generic type definitions and non-`Run' assemblies.
4999         (mono_reflection_bind_generic_parameters): Also use
5000         `klass->wastypebuilder' to check for TypeBuilders.
5001
5002 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5003
5004         * class.c (mono_class_layout_fields): Fix calculation of has_references
5005         for generic types.
5006
5007         * class.c (inflate_generic_class): Fix a leak.
5008         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5009         for generic types.
5010
5011 2005-07-11  Martin Baulig  <martin@ximian.com>
5012
5013         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5014         on error.
5015
5016 2005-07-11  Martin Baulig  <martin@ximian.com>
5017
5018         * loader.c (find_method): Also lookup in
5019         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5020
5021 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5022
5023         * appdomain.c (mono_domain_unload): Don't free the error message
5024         before passing it to mono_get_exception_...
5025
5026         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5027         
5028 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5029
5030         * threads.c: try to better guess an available RT signal (bug #75387).
5031
5032 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5033
5034         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5035         and CACHE_OBJECT.
5036
5037 2005-07-07  Martin Baulig  <martin@ximian.com>
5038
5039         * class.c (mono_type_get_name_full): Return NULL for
5040         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5041         fixes #75408.
5042
5043 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5044
5045         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5046         exit the appdomain as well being aborted.
5047
5048         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5049         change back to the root domain after calling managed code. This enables
5050         appdomains using threadpools to be unloaded.
5051
5052 2005-07-07  Martin Baulig  <martin@ximian.com>
5053
5054         * class-internals.h
5055         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5056         into `MonoDynamicGenericClass' since we only need it for dynamic
5057         types.
5058
5059         * reflection.c (mono_class_bind_generic_parameters): We don't need
5060         to compute the `parent' here.
5061
5062 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5063
5064         * culture-info-table.h : regenerated.
5065
5066 2005-07-06  Martin Baulig  <martin@ximian.com>
5067
5068         * icall.c
5069         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5070
5071         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5072
5073 2005-07-06  Martin Baulig  <martin@ximian.com>
5074
5075         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5076         we're doing a signature-only comparision; fixes #74945.
5077
5078 2005-07-06  Martin Baulig  <martin@ximian.com>
5079
5080         * class-internals.h (MonoGenericClass): Moved some things out into
5081         a new `MonoInflatedGenericClass' type.  
5082         (MonoInflatedGenericClass): New type; the `klass' of a
5083         `MonoGenericClass' is now computed lazyly in
5084         mono_get_inflated_generic_class().      
5085
5086         * class.c (mono_get_inflated_generic_class): New public function.
5087         (mono_class_inflate_generic_method): Removed the unused
5088         `MonoClass *' argument.
5089         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5090         all the methods.
5091         (mono_class_create_generic): Make this static and merge it with
5092         mono_class_create_generic_2(); we're now called automatically from
5093         mono_get_inflated_generic_class().
5094
5095         * loader.c (mono_method_signature): Call
5096         mono_get_inflated_method() here.
5097
5098 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5099
5100         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5101         type of fields with RVA.
5102
5103         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5104         for this pseudo class.
5105         (my_mono_class_from_generic_parameter): Likewise.
5106         (mono_class_init): Allow interfaces to have cctors.
5107
5108 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5109
5110         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5111         lazily for AOT methods.
5112
5113 2005-07-05  Martin Baulig  <martin@ximian.com>
5114
5115         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5116         returns FALSE for a successful match, not TRUE.
5117
5118 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5119
5120         * loader.c (mono_method_get_index): Optimize this a bit.
5121
5122 2005-07-04  Martin Baulig  <martin@ximian.com>
5123
5124         * class.c
5125         (class_compute_field_layout): Move the check for generic type
5126         definitions into mono_class_layout_fields().  Fixes #74684.
5127         (mono_class_from_generic_parameter): Correctly compute
5128         `klass->parent'; fixes #75457.
5129
5130         * reflection.c (register_assembly, register_module): Make sure
5131         `domain->rejobject_hash' is already created.
5132
5133 2005-07-02  Martin Baulig  <martin@ximian.com>
5134
5135         * class-internals.h
5136         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5137         `MonoDynamicGenericClass'.      
5138
5139 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5140
5141         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5142         returned by a field getter is null, since null is a valid value.
5143
5144 2005-07-01  Martin Baulig  <martin@ximian.com>
5145
5146         * reflection.c (mono_reflection_generic_class_initialize): Update
5147         the `dgclass->fields [i].parent' to the correct class.
5148         (mono_image_get_fieldref_token): Use the declaring type, not the
5149         reflected type.
5150
5151 2005-07-01  Martin Baulig  <martin@ximian.com>
5152
5153         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5154
5155 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5156
5157         * threads.c (thread_cleanup): assert that thread != NULL
5158         (wait_for_tids_or_state_change): We were using the wrong variable
5159         when accessing wait->threads. `i' was always out of the bounds of
5160         the array.
5161
5162 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5163
5164         * loader.c: map user32 and kernel32 to libMonoSupportW
5165
5166 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5167
5168         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5169
5170 2005-06-28  Martin Baulig  <martin@ximian.com>
5171
5172         * loader.c (method_from_methodspec): Fix #75334.
5173
5174 2005-06-28  Martin Baulig  <martin@ximian.com>
5175
5176         Fix #74953 - Arrays now implement the generic IList<T> interface
5177         on the 2.0 platform.
5178
5179         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5180
5181         * reflection.c (mono_class_bind_generic_parameters): New public
5182         function; similar to mono_reflection_bind_generic_parameters(),
5183         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5184
5185         * domain.c (mono_init_internal): Try to initialize.
5186         `mono_defaults.generic_array_class' here; this'll only succeed if
5187         we're using the 2.0 corlib.
5188
5189         * icall.c
5190         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5191         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5192         (mono_lookup_internal_call): Added support for nested classes.
5193
5194         * loader.c
5195         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5196         we're an interncall and have generic arguments.
5197
5198         * class.c
5199         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5200         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5201         instance of System.Array.InternalArray<T> for arrays, so they
5202         implement the generic IList<T> interface.
5203
5204 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5205
5206         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5207         (chastamar@yahoo.com). Fixes #75374.    
5208
5209 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5210
5211         * culture-info-table.h: regenerated.
5212
5213 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5214
5215         * icall.c: handle spaces correctly for base64 strings.
5216
5217 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5218
5219         * *.c: Kill some warnings.
5220
5221 2005-06-23  Duncan Mak  <duncan@novell.com>
5222
5223         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5224         that this builds on Solaris 10 (x86).
5225
5226 2005-06-23  Martin Baulig  <martin@ximian.com>
5227
5228         * class.c
5229         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5230         generic type definitions.
5231
5232 2005-06-23  Martin Baulig  <martin@ximian.com>
5233
5234         Fix #75331.
5235
5236         * metadata.c (mono_class_get_overrides): Renamed to
5237         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5238         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5239         pass it to mono_get_method_full().
5240
5241 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5242
5243         * reflection.c (mono_reflection_create_runtime_class): take the
5244         mono_domain_lock in this method. Prevents deadlocks
5245
5246 2005-06-22  Martin Baulig  <martin@ximian.com>
5247
5248         * loader.c (method_from_methodspec): Fix #75330.
5249
5250 2005-06-22  Martin Baulig  <martin@ximian.com>
5251
5252         * reflection.c (type_get_qualified_name): Use
5253         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5254         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5255         argument; use it if we don't have an assembly name.
5256
5257 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5258
5259         * object.c: In mono_message_init, set "copy out" flag for in
5260         parameters with the [Out] flag.
5261
5262 2005-06-21  Martin Baulig  <martin@ximian.com>
5263
5264         * class.c
5265         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5266         and MONO_TYPE_PTR.
5267
5268 2005-06-21  Martin Baulig  <martin@ximian.com>
5269
5270         * class.c (mono_class_init): Don't initialize `class->fields' for
5271         generic instances since they're initialized again in
5272         compute_field_layout(). 
5273         (compute_field_layout): Set the field's `generic_info' here; fix
5274         #75320. 
5275
5276 2005-06-21  Martin Baulig  <martin@ximian.com>
5277
5278         * class-internals.h
5279         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5280
5281         * metadata.c (mono_metadata_generic_method_equal): Also
5282         distinguish the `generic_class'; fixes #75334.
5283
5284 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5285
5286         * domain.c:
5287         * appdomain.c:
5288         * domain-internals.h:
5289         * reflection.c: 'domain_assemblies' field is now protected by its own
5290         lock. Don't call into managed code to run the AssemblyLoad event if we
5291         now there are no registered delegates for it.
5292
5293 2005-06-20  Martin Baulig  <martin@ximian.com>
5294
5295         * class.c (mono_class_is_assignable_from): Use a custom version of
5296         mono_class_has_parent() to make things work for generic instances;
5297         fix #75300.
5298
5299 2005-06-20  Martin Baulig  <martin@ximian.com>
5300
5301         * loader.c (method_from_methodspec): Apply a patch from
5302         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5303
5304 2005-06-20  Martin Baulig  <martin@ximian.com>
5305
5306         * class.c (mono_class_init): Reverted Zoltan's last change; it
5307         breaks generics.
5308
5309 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5310
5311         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5312
5313 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5314
5315         * socket-io.c: fix the index in the socket array for writable/error
5316         sockets. Fixes bug #75306.
5317
5318 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5319
5320         * class.c (mono_class_init): Allow interfaces to have static ctors.
5321
5322 2005-06-17  Martin Baulig  <martin@ximian.com>
5323
5324         * loader.c (method_from_methodspec): Use `context->container' when
5325         parsing the `gmethod->inst'.
5326
5327 2005-06-17  Martin Baulig  <martin@ximian.com>
5328
5329         * class.c (mono_type_get_name_recurse): Don't add the assembly
5330         name for type arguments.
5331
5332 2005-06-15  Martin Baulig  <martin@ximian.com>
5333
5334         * reflection.c (mono_image_get_inflated_method_token): Encode
5335         correct klass; fixes #75260.
5336
5337 2005-06-13 Michal Moskal <malekith@nemerle.org>
5338
5339         * icall.c: Make GetCorrespondingMethod/Constructor take
5340         MonoReflectionMethod method not MonoMethod. Removed
5341         MonoType.GetCorrespondingField, and make
5342         MonoGenericType.GetCorrespondingField take name not
5343         MonoClassField.
5344
5345 2005-06-13  Michal Moskal <malekith@nemerle.org>
5346
5347         * reflection.c (field_encode_signature, encode_locals):
5348          Make sizes of buffers for types larger (for big generic types).
5349          (create_generic_typespec,
5350          mono_reflection_sighelper_get_signature_local,
5351          mono_reflection_sighelper_get_signature_field):
5352          Add asserts for too small buffers.
5353
5354 2005-06-15  Martin Baulig  <martin@ximian.com>
5355
5356         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5357         if our parent is not a dynamic type.
5358
5359 2005-06-15  Martin Baulig  <martin@ximian.com>
5360
5361         * class-internals.h (MonoTypeNameFormat): New enum.
5362
5363         * class.c
5364         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5365         (mono_type_get_full_name): Removed.
5366         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5367         argument instead of the boolean's.
5368
5369         * icall.c (ves_icall_System_MonoType_getFullName):
5370         Added `gboolean assembly_qualified'.    
5371
5372         * reflection.h
5373         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5374
5375         * reflection.c (mono_reflection_parse_type): Parse the new type
5376         name format.
5377
5378 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5379
5380         * icall.c: no need to convert from utf16 to utf8 and then back again
5381         after the call to GetLogicalDrives.
5382
5383 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5384
5385         * icall.c: frombase64. Fix problems exposed by new tests.
5386
5387 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5388
5389         * icall.c: added internal calls for converting char [] and strings in
5390         base64 into byte [].
5391
5392 2005-06-10  Martin Baulig  <martin@ximian.com>
5393
5394         * class.c (mono_class_create_generic_2): Read the nested classes
5395         from the metadata rather than from `gklass->nested_classes' since
5396         `gklass' might not be initialized yet.
5397
5398 2005-06-09  Duncan Mak  <duncan@novell.com>
5399
5400         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5401         all public headers. Fixes #74919.
5402
5403 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5404
5405         * domain.c: The key for proxy_vtable_hash is now a pointer
5406         array. Added new GHashFunc and GCompareFunc functions for this.
5407
5408         * class.h: The list of interfaces in MonoRemoteClass is known in
5409         advance and can't grow (we create a new MonoRemoteClass if needed),
5410         so now the interface array can be allocated together with
5411         MonoRemoteClass.
5412         
5413         * object.c: Added a new method create_remote_class_key.
5414         Fixed mono_remote_class so it does not depend on
5415         mono_upgrade_remote_class.
5416         Removed extend_interface_array.
5417         Added new method clone_remote_class(), which makes a copy of a remote
5418         class and adds a new interface or class to it.
5419         mono_upgrade_remote_class() now creates a new remote class (or gets
5420         it from the cache) if an vtable upgrade is needed. In this way
5421         we make sure that other objects sharing the same remote class
5422         don't get the new vtable with unwanted interfaces.
5423         
5424         * object-internals.h:
5425         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5426         
5427         * marshal.c: Track changes in mono_upgrade_remote_class().
5428
5429 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5430         * icall.c: Add runtime methods for obtaining members of inflated
5431         class, which were created from supplied non-inflated members. It
5432         is used in internal Get{Method,Constructor,Field} methods in
5433         System.Type
5434
5435 2005-06-09  Martin Baulig  <martin@ximian.com>
5436
5437         * reflection.c
5438         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5439
5440 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5441         * reflection.c (mono_image_basic_init): Define
5442         Version in MonoDynamicAssembly. 
5443         
5444 2005-06-08  Martin Baulig  <martin@ximian.com>
5445
5446         Fix #75136.
5447
5448         * loader.c
5449         (mono_method_signature_full): New public method; takes a
5450         `MonoGenericContext *'.
5451         (find_method): Use mono_method_signature_full() and pass the
5452         klass'es context to it.
5453
5454         * class.c (mono_class_is_inflated_method): Use
5455         mono_method_signature_full() and pass the context to it.
5456
5457 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5458
5459         * object.c: add proper locking in mono_remote_class_vtable(),
5460         fixes possible memory corruption.
5461
5462 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5463
5464         * marshal.c (mono_remoting_marshal_init): set
5465         initialized after initialization.
5466
5467 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5468
5469         * locales.c : hush.
5470
5471 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5472
5473         * object.c (extend_interface_array): fix really silly
5474         memory corrupting / comparison bug.
5475
5476 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5477
5478         * reflection.c: Functions added to support the creation
5479         of CustomAttributeData, which includes Attribute data
5480         used by ReflectionOnly methods.
5481
5482         * reflection.h:  mono_reflection_get_custom_attrs_data and
5483          mono_custom_attrs_data_construct added (functions exposed).
5484
5485          * icall.c: Added mono_reflection_get_custom_attrs_data
5486          as icall.
5487         
5488 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5489
5490         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5491         lupus's request.
5492
5493 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5494
5495         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5496
5497         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5498         dynamic DllImportAttribute.
5499
5500         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5501         dynamic DllImportAttribute.
5502
5503         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5504         Fixes #75162.
5505
5506 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5507
5508         * threads.c: avoid segfault when an unstarted thread is aborted.
5509
5510 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5511
5512         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5513         Returns the name and version of the runtime for reporting.
5514
5515 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5516
5517         * appdomain.c: bump corlib version.
5518         * object-internals.h: new field in MonoReflectionAssembly.
5519
5520 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5521
5522         * object-internals.h: Carlos forgot to add this field.
5523
5524 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5525
5526         * icall.c: Added create_version to create instances
5527         of Version of MonoReflectionAssemblyName. This change helps
5528         the AssemblyName tests to keep running fine.
5529         
5530 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5531   
5532         * object.c (mono_method_return_message_restore): A somehow less
5533         intrusive fix for #75138.
5534
5535 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5536
5537         * object.c (mono_method_return_message_restore): Fix computation
5538         of expected number of out args.
5539
5540 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5541
5542         * reflection.c (mono_image_get_method_info): Fix the case when the
5543         charset is empty.
5544
5545 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5546
5547         * object.c: Added missing null check in
5548           mono_method_return_message_restore.
5549
5550 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5551
5552         * reflection.c (mono_image_get_method_info): Handle the case when
5553         dllentry is empty.
5554
5555 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5556
5557         * object.c: When creating the vtable for a proxy, take into account
5558         all inherited interfaces, not only the ones registered in
5559         iclass->interfaces. This fixs bug #74996.
5560         Also, in mono_method_return_message_restore, verify that the array
5561         of out args has the expected lengh.
5562
5563 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5564
5565         * socket-io.c: update the timeout in Poll when the call is interrupte.
5566
5567 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5568
5569         * socket-io.c: support abort/suspend in Select_internal after last
5570         change.
5571
5572 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5573
5574         * threadpool.c: remove warning.
5575
5576 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5577
5578         * icall.c:
5579         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5580         removing the 1024 limit from select(). Runtime part of the fix for
5581         bug #71203.
5582
5583 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5584
5585         * socket-io.c: when resolving the addresses for the same
5586         host returned by gethostname(), get the local IPs from the interface
5587         list. Loopback addresses are discarded if the are interfaces up with
5588         non-loopback ones. Fixes bug #63265.
5589
5590 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5591
5592         * appdomain.c, verify.c, object-internals.h, reflection.c:
5593         bumped corlib number to 36, and added new extra_flags field
5594         to ReflectionMethodBuilder and friends.  Fixes #75060.
5595
5596 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5597
5598         * gc.c: register a new weak link only if the object is non-null
5599         (fixes bug#75047).
5600
5601 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5602
5603         * culture-info.h : short time pattern too.
5604
5605 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5606
5607         * culture-info.h : expand long time pattern string length.
5608
5609 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5610
5611         * culture-info-table.h : update (more French date format; #72788).
5612
5613 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5614
5615         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5616         the method is static. Fixes #75029.
5617
5618 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5619
5620         * reflection.c: Update the table_idx field of method builders after
5621         saving the module, since it can change. This is a workaround for
5622         bug #74914. 
5623
5624 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5625
5626         * culture-info-table.h : update (additional French date format).
5627
5628 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5629
5630         * icall.c (ves_icall_type_Equals): Revert last change.
5631         
5632         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5633
5634         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5635
5636 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5637
5638         * class-internals.h: Added executioncontext_class field to 
5639         MonoDefaults structure.
5640         * domain.c: Cache System.Threading.ExecutionContext class in 
5641         mono_defaults.
5642         * object.c: Capture the ExecutionContext for asynchroneous calls in
5643          mono_async_result_new.
5644         * object-internals.h: Added execution_context and original_context 
5645         fields to MonoAsyncResult. Added execution_context to MonoThread.
5646         * security-manager.c|.h: Added mono_get_context_capture_method to 
5647         return the capture method (if required by the security manager or by
5648         the framework version used).
5649         * threadpool.c: Apply capture (if present) ExecutionContext in 
5650         mono_async_invoke and revert to original context after it completes.
5651
5652 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5653
5654         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5655
5656 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5657
5658         * culture-info-table.h : zh-CHT related workaround.
5659
5660 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5661
5662         * marshal.c (emit_marshal_custom): Add some error checking and call the
5663         methods in the ICustomMarshaler interface. Fixes #74875.
5664         
5665         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5666         native->managed wrappers.
5667
5668 2005-05-12  Martin Baulig  <martin@ximian.com>
5669
5670         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5671         here and use the loader lock.
5672
5673         * mono-debug.c: Properly lock when the debugger is not attached.
5674         (mono_debug_init): Release the initial lock if we're not running
5675         in the debugger.
5676
5677 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5678
5679         * marshal.c (emit_marshal_custom): Pass through NULL values without
5680         calling the custom marshalling routines.
5681
5682         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5683         conversion in structures. Fixes #74882.
5684
5685 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5686
5687         * culture-info-table.h : zh-* cultures were missing.
5688
5689 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5690
5691         * threads.c: Added a new event background_change_event which is signaled
5692         when a thread changes its background mode.
5693         Moved here several checks previously done in managed code. The checks
5694         require the thread lock, and using the thread lock in managed code
5695         can result in deadlocks.
5696         Merged Start_internal and Thread_internal into a single method. Now 
5697         Thread_internal does all work of creating and starting a thread.
5698         Added icalls for setting and getting the state of the object. Moved from
5699         managed code to avoid locking there.
5700         Added wait_for_tids_or_state_change() which is called instad of
5701         wait_for_tids when waiting for non-backround threads to end. This method
5702         will return if one of the threads ends or the background_change_event
5703         is signaled.
5704         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5705         the background mode. This method signals the background_change_event
5706         event.
5707         * icall.c:
5708         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5709         removed Start_internal.
5710         
5711 2005-05-11  Martin Baulig  <martin@ximian.com>
5712
5713         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5714         to order of some fields to get proper alignment on 64-bit machines.
5715
5716 2005-05-11  Martin Baulig  <martin@ximian.com>
5717
5718         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5719         changes as they're broken and completely fuck up the debugger.
5720
5721         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5722
5723 2005-05-10  Martin Baulig  <martin@ximian.com>
5724
5725         * reflection.c (mono_reflection_generic_class_initialize): Don't
5726         call mono_class_setup_parent() here.
5727
5728 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5729
5730         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5731         send/receive timeout use an integer in milliseconds. We were using a
5732         struct timeval.
5733
5734 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5735
5736         * locales.c:
5737         (internal_get_cultures): reserve the first slot of the array for the
5738         InvariantCulture, which will be filled in managed code.
5739
5740 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5741
5742         * reflection.c (mono_image_fill_module_table): Initialize the
5743         GENERATION field as well.
5744
5745 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5746
5747         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5748         Monitor.Enter on the object.
5749
5750 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5751
5752         * threads.c: Enable the wait for running threads when exiting.
5753         * icall.c: Suspend all threads before exiting.
5754
5755 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5756
5757         * assembly.c (mono_assembly_load_reference): Fix warning.
5758
5759 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5760
5761         * threadpool.c: changed the default number of threads per cpu. From now
5762         on, the default will be 20 + (5 * number of cpus) instead of 50.
5763
5764 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5765
5766         * loader.c (mono_method_get_signature_full): Add locking here.
5767
5768 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5769
5770         * appdomain.c: Moved methods for parsing and freeing assembly
5771         names to assembly.c.
5772         * assembly.c, domain-internals.h: Created public methods for parsing
5773         assembly names. Fixed mono_assembly_load_with_partial_name:
5774         it now finds the best match, taking into account the version,
5775         token and culture specified in the partial name. Also return
5776         the latest version if no version information is specified.
5777
5778 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5779
5780         * threadpool.c: replace check for SocketAsyncCall class.
5781
5782 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5783
5784         * threadpool-internals.h:
5785         * Makefile.am: added threadpool-internals.h
5786
5787         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5788         that happen in threadpool threads (tested on MS).
5789         (mono_thread_pool_remove_socket): new function that dispatch any pending
5790         AIO call on a socket that is closing. By now only epoll really needs it,
5791         as select/poll wake up when the socket closes.
5792
5793
5794         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5795
5796 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5797
5798         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5799
5800 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5801
5802         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5803
5804 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5805
5806         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5807         has an abort request, convert it into a suspend request.
5808
5809 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5810
5811         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5812         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5813         is not supported yet.
5814
5815 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5816
5817         * image.c: register assemblies loaded from data (bundles) in the loaded
5818         assemblies hash. Fixes bug #74772.
5819
5820 2005-04-29  Martin Baulig  <martin@ximian.com>
5821
5822         * class.c (mono_type_get_name_recurse): Update to the new naming
5823         schema from the latest .NET 2.x beta2.
5824         (mono_class_setup_vtable_general): If we're a generic instance,
5825         copy the vtable from our generic type definition and inflate all
5826         the methods in it.
5827
5828         * loader.c (find_method): Update to the new naming schema from the
5829         latest .NET 2.x beta2.
5830
5831 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5832
5833         * class.c (mono_class_init): Add a mono_loader_unlock to the
5834         #74734 fix.
5835
5836 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5837
5838         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5839         suspend_all_other_threads () call for the time being, since it can hang.
5840
5841         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5842         the background threads to exit, since it can also hang.
5843
5844         * class.c (mono_class_init): Applied patch from Ankit Jain 
5845         (radical@gmail.com). Avoid pending init errors when a field refers
5846         to a nested class using a typeref. Fixes #74734.
5847
5848         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5849         this for dynamic modules.
5850
5851 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5852
5853         * threads.c: don't wait for threads that are in the process of aborting
5854         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5855         and waiting for background threads to finish. This makes xsp and
5856         mod-mono-server exit without random length delays and/or hangs.
5857
5858 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5859
5860         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5861
5862 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5863
5864         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5865         dynamic types to prevent infinite loops. Fixes #74727.
5866
5867         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5868         ..._is_assignable_to.
5869
5870 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5871
5872         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5873
5874 2005-04-25  Martin Baulig  <martin@ximian.com>
5875
5876         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5877
5878         * domain.c
5879         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5880
5881         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5882
5883         * reflection.c (build_compressed_metadata): Set metadata header
5884         version to 2.0.
5885
5886 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5887
5888         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5889         number into an integral and a decimal part. Fixes #70473.
5890
5891         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5892
5893 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5894
5895         * culture-info-table.h : reflected the latest locale-builder output.
5896
5897 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5898
5899         * threadpool.c: check for SuspendRequested too when deciding if
5900         mono_thread_interruption_checkpoint should be called.
5901
5902 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5903
5904         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5905         * threads.c: remove interruption_mutex and use Interlocked instead. When
5906         suspending all the threads, wait for all the suspended events at once.
5907         If we're shutting down and get an APC that is going to be queued,
5908         call mono_thread_execute_interruption immediately, as the thread might
5909         be sleeping on a pthread condition or mutex.
5910
5911         * icall.c: call mono_runtime_set_shutting_down before suspending the
5912         threads.
5913
5914         Fixes bug #74693. And now xsp is happier when exiting.
5915
5916 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5917
5918         * loader.c (mono_stack_walk): Fix #74690.
5919
5920 2005-04-22  Martin Baulig  <martin@ximian.com>
5921
5922         * mono-debug.h (MonoDebugMethodJitInfo): Added
5923         `MonoDebugMethodJitInfo *jit'.
5924
5925         * mono-debug.c (mono_debug_read_method): Cache the
5926         MonoDebugMethodJitInfo in `address->jit'.
5927         (mono_debug_free_method_jit_info): New public method.
5928
5929 2005-04-22  Martin Baulig  <martin@ximian.com>
5930
5931         * class.c (mono_class_is_assignable_from): Disallow
5932         type parameter -> interface.
5933
5934 2005-04-21  Dick Porter  <dick@ximian.com>
5935
5936         * threads.c (mono_thread_create): Turn an assertion into an error.
5937
5938 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5939
5940         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5941         
5942         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5943         Fix some gcc 4.0 warnings.
5944
5945 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5946
5947         * file-io.c: fix alt dir separator char on unix systems
5948         and cleanup (fixes bug #71214).
5949
5950 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
5951
5952         * marshal.c: Use CALLVIRT instead of CALL when dispatching
5953         a call to a remote domain, since the method may be an
5954         interface method in the client domain. This fixes bug #74192.
5955
5956 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5957
5958         * threadpool.c: recv/send are now performed before going back to managed
5959         code to save one transition.
5960
5961 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5962
5963         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
5964
5965         * metadata/threadpool.c: removed hack to workaround the bug above.
5966
5967         Fixes bug #74618.
5968
5969 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
5970
5971         * reflection.c reflection.h: Fix handling of parameter defaults in
5972         dynamic methods. Also fixes handling of parameter attributes.
5973         Fixes #74609.
5974
5975         * mono-debug.c (mono_debug_close_image): Fix warning.
5976
5977 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5978
5979         * socket-io.h: replaced old unused field with new 'blocking'.
5980         * threadpool.c: restore socket blocking state on windows(tm).
5981
5982 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
5983
5984         * icall.c: don't return the codebase in the AssemblyName[] returned by
5985         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
5986         * object-internals.h: Removed FIXME (fields were presents) and fixed
5987         versioncompat declaration.
5988
5989 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5990
5991         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
5992         not closed, so don't cleanup when it happens.
5993
5994 2005-04-13  Chris Toshok  <toshok@ximian.com>
5995
5996         * mono-debug-debugger.h: change prototype for
5997         mono_debugger_lookup_type.
5998
5999         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6000         this function, although it should probably be named
6001         mono_debugger_init_type.
6002
6003 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6004
6005         * threadpool.c: fix non-AIO case.
6006
6007 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6008
6009         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6010         the built-in profiler to measure just JIT compilation times.
6011
6012 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6013
6014         * threadpool.c: the epollfd might be closed by another thread at
6015         any time, so ignore EBADF at treat it as a "we're closing" sign.
6016
6017 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6018
6019         * threadpool.c: release the semaphores with a count equals to the number
6020         of working threads in both IO and regular pools. Fixed typo that messed
6021         up the count of IO pool threads. Don't initialize the pipe handles if
6022         we're using epoll.
6023
6024 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6025
6026         * threadpool.c: some systems don't like a NULL when deleting the socket
6027         from epoll.
6028
6029 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6030
6031         * threadpool.c: fix semaphore allocation.
6032
6033 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6034
6035         * threadpool.c: added epoll() based implementation for asynchronous IO
6036         that is used instead of the default poll() when available.
6037         It can be disabled by setting MONO_DISABLE_AIO.
6038
6039 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6040
6041         * threadpool.c: windows needs 'closesocket' and instead of returning
6042         0 when the stream is closed while in select, it returns -1. Fixes bug
6043         #74573.
6044
6045 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6046
6047         * class.c (class_compute_field_layout): Fix the regression caused by
6048         the previous try.
6049
6050 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6051
6052         * threadpool.c: separate pool for socket async. IO.
6053         * threadpool.h: mono_max_worker_threads is not a global any more.
6054
6055 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6056
6057         * class.c (class_compute_field_layout): Fix #74549.
6058
6059 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6060
6061         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6062         use 2 connected sockets instead.
6063
6064 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6065
6066         * mono-config.c: Add new entry point for mkbundle
6067         mono_config_parse_memory. 
6068
6069 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6070
6071         * threadpool.c: removed another unused function.
6072
6073 2005-04-08  Ankit Jain  <radical@corewars.org>
6074
6075         * reflection.c (get_default_param_value_blobs): Add 'types'
6076         parameter to get the types encoded in the constant table.
6077         (mono_param_get_objects): Use the type from the constant table,
6078         not the type of the parameter, when creating default values.
6079         Handle null default values correctly.
6080
6081 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6082
6083         * file-io.c:
6084         * file-io.h:
6085         * threadpool.c:
6086         * threadpool.h:
6087         * icall.c:
6088         * socket-io.c: removed dead code for async IO.
6089
6090 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6091
6092         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6093
6094         * threadpool.c: intercept socket async. calls and pass them to a thread
6095         that is polling and dispatching the job items to the threadpool as
6096         socket become ready. Fixes bugs #71217, #71933.
6097
6098         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6099         between char and short/ushort arrays.
6100
6101         * socket-io.c: remove dead code.
6102
6103 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6104
6105         * locales.c,
6106           icall.c : removed InternalToUpper_Comp() and
6107           InternalToLower_Comp().
6108
6109 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6110
6111         * char-conversions.h : The tables were incorrectly generated. Should
6112           be generated against invariant culture.
6113
6114 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6115
6116         * object.c (mono_runtime_invoke_array): Fix return value when 
6117         passing pre-created valuetype objects to ctors.
6118
6119         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6120         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6121         Fixes #74338.
6122
6123 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6124
6125         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6126         only used with --security and hides the wrong corlib version error.
6127
6128 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6129
6130         * class.c: Changed mono_class_name_from_token so that types
6131         outside of a namespace don't have an initial period.  Improved
6132         the g_warning message used in _mono_class_get when loading
6133         fails.
6134         * assembly.c: In mono_assembly_load_reference, when an assembly
6135         can't be found, "No such file or directory" is misleading and
6136         unhelpful because a few paths were checked for the presence of
6137         the assembly.  When that happens (ENOENT), display a nicer
6138         message indicating the directories that were searched.  In all
6139         cases, the warning is made easier to read for non-hackers.
6140
6141 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6142
6143         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6144         project/solution.
6145         * appdomain.h|domain.c: Removed inline from functions.
6146         * appdomain.c: Reduced warnings when compiling on windows.
6147         * icall.c: Fixed output_debug declaration to gunichar2*.
6148         * mono-config.c: Reduced warnings when compiling on windows.
6149         * rand.c: Added missing "windows.h". Added missing return value.
6150         * rawbuffer.c: Added missing winsock2.h for windows.
6151         * sysmath.h: Added mono-compiler.h header to allow/ease 
6152         compilation with non-GCC compilers.
6153         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6154         Removed cast warnings.
6155
6156         Adapted from the work of J Lothian (for VC6).
6157
6158 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6159
6160         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6161         from default_path.
6162
6163 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6164
6165         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6166         the 2.0 profile.
6167
6168 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6169
6170         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6171         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6172         stuff, and it would probably use $(prefix)/share rather than
6173         $(prefix)/lib.
6174
6175 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6176
6177         * console-io.c: added 2 includes that might be missing.
6178
6179 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6180
6181         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6182         profile.
6183
6184         * reflection.c (create_custom_attr): Allocate the params array using
6185         alloca so it gets GC tracking.
6186
6187 2005-03-23  Chris Toshok  <toshok@ximian.com>
6188
6189         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6190         out some spew.
6191
6192 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6193
6194         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6195         changes to pick up any changes in prefix, etc.
6196
6197 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6198
6199         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6200         
6201         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6202         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6203
6204 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6205
6206         * class-internals.h object-internals.h class.c reflection.c: Extend the
6207         mono_lookup_dynamic_token () function to return the class of the
6208         token as well. 
6209
6210         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6211         well. Fixes #73848.
6212
6213 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6214
6215         * security-manager.c: Skip inheritance checks for intra-corlib
6216         class inheritance and method overrides. This skips a lot of checks
6217         and (anyway) permissions cannot work until corlib is loaded.
6218
6219 2005-03-23  Martin Baulig  <martin@ximian.com>
6220
6221         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6222         MONO_TYPE_GENERICINST.  
6223
6224 2005-03-23  Martin Baulig  <martin@ximian.com>
6225
6226         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6227
6228 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6229
6230         * class.c: added locking comments to some functions.
6231         Cache the interface offsets arrays (saves about 20 KB
6232         of runtime memory in a typical app).
6233         Reduce the time overhead in mono_class_setup_supertypes ().
6234
6235 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6236
6237         * icall.c: speedup and fix leaks in GetMethodsByName and
6238         GetPropertiesByName.
6239
6240 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6241
6242         * reflection.c: some locking fixes.
6243
6244 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6245
6246         * metadata.c: added missing break in case statement.
6247
6248 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6249
6250         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6251         typedbyref return values. Fixes #73941.
6252
6253 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6254
6255         * security-manager.c|h: Added demandunmanaged method and 
6256         suppressunmanagedcodesecurity class to MonoSecurityManager.
6257         Renamed aptc class to allowpartiallytrustedcallers.
6258
6259 2005-03-17  Martin Baulig  <martin@ximian.com>
6260
6261         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6262
6263 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6264
6265         * file-io.c: disabled file async. IO using aio_*. It uses the
6266         threadpool now. Workaround for bug #73718.
6267
6268 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6269
6270         * assembly.h, mono-config.c: added code to deal with bundled configs
6271         for bundled assemblies.
6272
6273 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6274
6275         * *.c, private.h: cleanup, removing old private.h header file.
6276
6277 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6278
6279         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6280         and throw_on_unmappable_char attributes.
6281
6282 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6283
6284         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6285         _ProcessName_internal.
6286
6287 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6288
6289         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6290         #73631.
6291
6292         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6293         are no longer used.
6294
6295 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6296
6297         * object.c (compute_class_bitmap): Add support for generics. Fixes
6298         #73527.
6299
6300 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6301
6302         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6303
6304 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6305
6306         * filewatcher.c: commented out the code for windows watcher, as we don't
6307         use it (we use the managed implementation instead).
6308
6309 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6310
6311         * object-internals.h (MonoThread): Remove 'unused1' field.
6312
6313         * appdomain.c: Bump corlib version.
6314
6315         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6316
6317         * reflection.c (mono_reflection_create_runtime_class): Remove the
6318         AssemblyBuilder.Save optimization since it causes too many problems.
6319
6320 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6321
6322         * exception.c|h: Added mono_get_exception_reflection_type_load to
6323         create a ReflectionTypeLoadException object.
6324         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6325         to return NULL is a InheritanceDemand fails during reflection. Updated
6326         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6327         ReflectionTypeLoadException if an InheritanceDemand fails during 
6328         reflection. Added icall mapping for GetLinkDemandSecurity.
6329         * security-manager.c|h: Added ves_icall_System_Security_
6330         SecurityManager_GetLinkDemandSecurity internal call to return the
6331         class and methods permissions set for a LinkDemand. Removed unused
6332         fields in MonoSecurityManager.
6333
6334 2005-03-10  Martin Baulig  <martin@ximian.com>
6335
6336         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6337         it's a generic instance.
6338
6339 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6340
6341         * reflection.c (mono_get_object_from_blob): Applied patch from
6342         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6343
6344         * class.c (mono_class_is_assignable_from): Another try at fixing 
6345         #73469 without breaking anything.
6346
6347 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6348
6349         * class.c: (mono_class_is_assignable_from): Revert the last changes
6350         since they don't work with generics.
6351         
6352         * class.c (mono_class_is_assignable_from): Fix build bustage.
6353
6354         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6355         the managed IsAssignableFrom method. Fixes #73469.
6356
6357         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6358         function.
6359
6360 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6361
6362         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6363         memory when the remoting callback does not sets the out arguments.
6364         Fixes #73007.
6365
6366         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6367         by mistake.
6368
6369         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6370
6371         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6372
6373         * appdomain.c: Bump corlib version.
6374
6375 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6376
6377         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6378         function.
6379
6380         * threads.c (mono_thread_attach): Detect threads which are not started
6381         by the GC pthread wrappers.
6382
6383 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6384
6385         * icall.c: Added new icall for RNG.
6386         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6387         single handle on Linux to access /dev/urandom and fix #73183.
6388
6389 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6390
6391         * object.c: setting the new vtable in a transparent proxy object must
6392         not change the GC descriptor.
6393
6394 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6395
6396         * object.c: fixed compilation without GCJ support.
6397         * reflection.c: for runtime-created types ensure klass->has_references
6398         is correct (bug #73215).
6399
6400 2005-03-02  Martin Baulig  <martin@ximian.com>
6401
6402         * class.c (mono_class_is_assignable_from): Make this work if
6403         `oklass' is a generic instance; fixes #72831.
6404
6405 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6406
6407         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6408         with hasthis set.
6409         
6410         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6411
6412         * marshal.c: Reorganize native->managed marshalling code to also use
6413         the emit_marshal_... functions.
6414
6415 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6416
6417         * object.c: typed allocs have issues with bitmap sizes > 30,
6418         so check for max_set >= 30.
6419
6420 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6421
6422         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6423         managed code. Fixes #73012.
6424
6425         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6426
6427         * metadata.c reflection.c: Load/Emit elem_mult as well.
6428         
6429         * metadata.h (MonoMarshalSpec): Add comment.
6430
6431         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6432
6433         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6434         num_elem to -1 if not given.
6435
6436         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6437
6438         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6439         given values.
6440
6441 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6442
6443         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6444
6445 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6446
6447         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6448
6449         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6450
6451 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6452
6453         * object.c: generalized the reference bitmap creation
6454         and added hooks for the new GC.
6455         * class-internals.c: removed the gc_bitmap field from MonoClass.
6456
6457 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6458
6459         * domain.c: help the compiler to produce better code
6460         in mono_jit_info_table_find ().
6461
6462 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6463
6464         * object.c: make all allocations look typed.
6465
6466 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6467
6468         * socket-io.c: load Mono.Posix if it's not loaded already
6469         (fixes bug#73033).
6470
6471 2005-02-24  Martin Baulig  <martin@ximian.com>
6472
6473         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6474         * reflection.c (dup_type): Likewise.
6475
6476 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6477
6478         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6479         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6480
6481 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6482
6483         * domain.c, threads.c, object-internals.h: make the critical thread
6484         local vars use the fast access mode (even when we're compiled in
6485         a lib). Provide accessors to be used by the jit during codegen.
6486
6487 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6488
6489         * appdomain.c: Changed hook functios behavior to include
6490         support for the reflection only assemblies. Some icalls were changed
6491         to support the mentioned assemblies too. Signatures of static methods
6492         try_assembly_resolve and real_load now have an additional parameter:
6493         refonly.
6494
6495         * assembly.c: General changes to mono_assembly_ methods to support
6496         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6497         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6498         suffix, to support an additional gbool parameter to specify whether
6499         the assembli is reflection only or not. Created some new hook functions 
6500         to add support for reflection only assemblies. Signatures of static 
6501         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6502         have now an additional parameter: refonly.
6503
6504         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6505         indicating whether the assembly is reflection only or not.
6506
6507         * exception.c: Add mono_get_exception_invalid_operation.
6508
6509         * icall.c: Throw an InvalidOperationException when trying to invoke
6510         a property/method/event, or trying to set/get the value of a field.
6511         Also add an icall to retrieve the ref_only flag to the
6512         MonoReflectionAssembly.
6513
6514 2005-02-23  Chris Toshok  <toshok@ximian.com>
6515
6516         Part of fix for #72827.
6517         * mono-debug.c (mono_debug_add_method): add lexical block data to
6518         the info we write.  Kind of a hack at the moment - we copy the
6519         lexical block info from the MonoDebugMethodInfo to the
6520         MonoDebugMethodJitInfo here, before writing it.
6521         (mono_debug_read_method): read the lexical block info.
6522
6523         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6524
6525         * debug-mono-symfile.h: add lexical block support.
6526
6527         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6528         support.
6529
6530 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6531
6532         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6533
6534         * object.c (mono_runtime_free_method): Call mono_free_method () and
6535         put the TODOs there.
6536
6537         * loader.c (mono_free_method): Free up most memory allocated for 
6538         dynamic methods.
6539
6540 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6541
6542         * reflection.c: properly flag a Type argument to a
6543         named custom attr value (bug #72248).
6544
6545 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6546
6547         * reflection.c: reduce code duplication in named custom
6548         attribute encoding.
6549
6550 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6551
6552         * reflection.c: properly encode custom attrs of type object
6553         (bug #72649).
6554
6555 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6556
6557         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6558
6559 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6560
6561         * socket-io.c: load System.dll if it's not loaded already
6562         (bug #72850 and #70477).
6563
6564 2005-02-21  Martin Baulig  <martin@ximian.com>
6565
6566         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6567         generic instances.
6568
6569 2005-02-21  Martin Baulig  <martin@ximian.com>
6570
6571         * reflection.c (mono_image_build_metadata): We also need to
6572         "fixup" the MethodImpl table after we computed the final method
6573         indices.  Call fixup_methodimpl() to do that.
6574         (fixup_methodimpl): New private method.
6575
6576 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6577
6578         * assembly.c: special case mscorlib.dll (bug#72536),
6579         patch from Carlos Alberto Cortez.
6580
6581 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6582
6583         * threads-types.h threads.c: Fix build bustage.
6584
6585         * threads.c: Use a union for long<->double conversions.
6586
6587         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6588         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6589
6590         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6591         containing the checkpoint call with NOT_TAKEN.
6592         
6593         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6594         checkpoint before pushing the arguments, so they won't have to be
6595         spilled to stack.
6596
6597 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6598
6599         * domain.c, assembly.c, domain-internals.h: make some data
6600         const and relocation-free.
6601
6602 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6603
6604         * object.c, appdomain.c, class-internals.h: introduce the
6605         MonoClassRuntimeInfo structure to hold the info needed to
6606         use a class at runtime. Made mono_class_vtable() lock-free
6607         for all the appdomains.
6608
6609 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6610
6611         * metadata-internals.h, image.c: introduce a per-image mempool to
6612         be used for memory that has the same lifetime as the image.
6613
6614 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6615
6616         * domain.c: In mono_init_internal(), instead of selecting the first
6617         runtime version supported by an executable, get a list of all
6618         supported versions and select the one for which an mscorlib exists
6619         (since even if the runtime supports a given version, it doesn't mean
6620         that the framework for that version is installed).
6621         Modified get_runtimes_from_exe to support this behavior.
6622         In supported_runtimes, added information about additional system
6623         assembly versions.
6624         
6625         * assembly.c: Added support for more than one system assembly version
6626         per runtime version. Updated the assembly list.
6627         In mono_assembly_remap_version, removed the initial version check,
6628         since we don't know to which version we need to compare until we
6629         get the version set on which the assembly is based.
6630         Moved the code for loading corlib into the new method
6631         mono_assembly_load_corlib(), so it can be used by the initialization
6632         code.
6633         
6634         * domain-internals.h: Updated data structures and added declaration
6635         for mono_assembly_load_corlib.
6636
6637 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6638
6639         * reflection.c (resolve_object): Fix the creation of the signature in 
6640         the SignatureHelper case.
6641
6642         * assembly.c (mono_assembly_remap_version): Fix binary search.
6643         
6644 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6645  
6646         * class.c: Added inheritance check when a method is overloaded (from a
6647         virtual method or when implementing an interface) and when a class is
6648         inherited. Added functions to set a failure for a class and to 
6649         retreive the exception from a failure.
6650         * class-internals.h: Added fields to MonoClass to keep the exception
6651         information status for inheritance (or other exceptions) to be thrown
6652         later (i.e. not at load time).
6653         * object.c: Throw the inheritance SecurityException when a type is to 
6654         be created with either class or method inheritance violations.
6655         * reflection.c|h: Fix when getting declsec from a class. Removed 
6656         unrequired code for class. Improved sanity in parameter naming.
6657         * security-manager.c|h: Added functions to check for class and method
6658         inheritance.
6659
6660 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6661
6662         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6663         and has_finalize in dynamic types as well.
6664
6665 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6666
6667         * culture-info-table.h : fixed currency format for en-GB (and so on).
6668
6669 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6670
6671         * gc.c: ensure the GC handles never have 0 as a value.
6672
6673 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6674
6675         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6676         a pointer to a struct to unmanaged code. Fixes #72625.
6677
6678 2005-02-16  Martin Baulig  <martin@ximian.com>
6679
6680         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6681
6682 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6683
6684         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6685
6686 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6687
6688         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6689
6690         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6691         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6692         etc. Fixes #71471.
6693
6694         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6695
6696         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6697
6698 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6699
6700         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6701         changes to make the current context a field in MonoThread.
6702
6703 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6704
6705         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6706         the last change.
6707         
6708         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6709         extracted from mono_marshal_get_native_wrapper.
6710
6711         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6712         to create wrappers around native functions.
6713
6714         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6715         delegates for arbitrary function pointers. Fixes #71472.
6716
6717 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6718
6719         * threads.c: cleaned up the code a little.
6720
6721 2005-02-15  Martin Baulig  <martin@ximian.com>
6722
6723         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6724         the data table.
6725
6726         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6727         allocate larger chunks if needed.
6728
6729 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6730
6731         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6732         in by mistake.
6733
6734 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6735
6736         * domain.c: keep the domains in an array and ensure the domain ids
6737         are kept small, so they can be used as indexes to domain-specific data
6738         with a small memory overhead.
6739
6740 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6741
6742         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6743
6744 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6745
6746         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6747
6748 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6749
6750         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6751
6752         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6753         values.
6754
6755         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6756         
6757 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6758
6759         * domain-internals.h: add the hashtable here.
6760
6761         * class-internals.h: Remove `info' from MonoMethod
6762
6763         * domain.c: Add a new hashtable, jit_trampoline_hash
6764
6765 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6766
6767         * object.c: don't set the value of static fields
6768         (fixes bug#72494).
6769
6770 2005-02-11  Martin Baulig  <martin@ximian.com>
6771
6772         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6773         (mono_debug_add_method): Silently ignore the method if it's too big.
6774         (mono_debug_add_type): Likewise.
6775
6776 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6777
6778         * threads.c, appdomain.c: remove #ifdefs from the code.
6779
6780 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6781
6782         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6783         common security informations. This allows us to stay in unmanaged code
6784         when doing LinkDemand and it's special cases (except for the first 
6785         time for initialization). The flags a very much used with --security.
6786         * reflection.c|h: Added code to get declarative security attributes 
6787         for LinkDemand and InheritanceDemand. This required to refactor the
6788         existing code for Demand.
6789         * security-manager.c|h: Added new method fields for the special cases
6790         of LinkDemand.
6791
6792 2005-02-10  Martin Baulig  <martin@ximian.com>
6793
6794         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6795         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6796
6797 2005-02-10  Martin Baulig  <martin@ximian.com>
6798
6799         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6800         debugging code; this is almost a complete rewrite.
6801
6802         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6803
6804 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6805
6806         * domain.c, object.h: expose mono_string_equal () and 
6807         mono_string_hash ().
6808         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6809         it's implemented in managed code.
6810
6811 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6812
6813         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6814         lo leak objects between appdomains.
6815
6816 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6817
6818         * assembly.c: old compilers compilation fix from 
6819         robertj@gmx.net (Robert Jordan).
6820
6821 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6822
6823         * class-internals.h: Little reminder for the future.
6824
6825         * debug-helpers.c: Fix up wrapper_type_names
6826
6827 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6828
6829         * image.c, metadata-internals.h: when loading an image from a file,
6830         mmap all of it and use the same codepaths as when using a
6831         in-memory image: the code is simpler and we use less memory
6832         (both writable and readonly).
6833
6834 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6835
6836         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6837         API to alloc runtime data structures that need to be tracked by the
6838         GC and contain pointers.
6839         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6840         make the code more readable and eventually use a different GC.
6841
6842 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6843
6844         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6845         for out arguments.
6846         
6847 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6848
6849         * object.c: In release_type_locks(), don't release the cctor lock
6850         if it has already been released. This fixes a crash in the
6851         thread5 test.
6852
6853 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6854
6855         * gc.c, marshal.c, icall.c: register a delegate for finalization
6856         only when the native function pointer has been allocated for it.
6857
6858 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6859
6860         * object.c: cleaned up some code, allocate objects that are
6861         pointer free with the atomic malloc variant. Allocate memory
6862         for static data from the mempool if it's pointer-free.
6863         Allocate the bounds array at the end of the array data, when needed.
6864         * object-internals.h, object.h: move a private function in a private
6865         header.
6866         * class.c: handle missing case in tracking references in fields.
6867
6868 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6869
6870         * class.c, class-internals.h: keep track if a type has
6871         reference fields in either the instance or static fields.
6872
6873 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6874
6875         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6876         and renamed to MonoRuntimeInfo. Added fields to store the expected
6877         framework assembly version. Changed mono_get_framework_version and
6878         mono_get_runtime_version for a single mono_get_runtime_info method.
6879         
6880         * assembly.c: Added method to remap system assembly versions to the
6881         current executing runtime version. Removed old mapping code.
6882         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6883         
6884         * icall.c, reflection.c: Track api changes.
6885
6886 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6887
6888         * loader.c (method_from_memberref): Improve error reporting,
6889         produce the class name instead of the typeref/typedef index. 
6890
6891 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6892
6893         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6894
6895 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6896
6897         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6898         stdcall and charset name mangling.  Reorganize the code and add
6899         some tracing stuff.
6900
6901 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6902
6903         * monodiet.c: More iters!
6904
6905         * marshal.c: Iter usage.
6906
6907         * icall.c: Iter usage.
6908
6909         * object.c: Use iters.
6910
6911         * debug-helpers.c: More iters
6912
6913 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6914
6915         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6916         under win32.
6917
6918 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6919
6920         * mono-debug-debugger.c: use iters
6921
6922         * class.c, class-internals.h: mono_class_setup_events is static
6923         now
6924
6925         * All callers: use iters
6926
6927 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6928
6929         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6930         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6931
6932 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6933
6934         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6935
6936         * marshal.h: Add prototypes for ldfld/stfld_remote.
6937
6938         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6939         this is called during startup.
6940         
6941 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6942
6943         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6944         MonoThreadsSync struct private in monitor.c. Changed the way
6945         MonoThreadsSync is allocated so it's faster and there is no
6946         need to keep track of it with a finalizer and it uses less memory.
6947         This also finally allows us to allocate mono objects as ptrfree when
6948         there are no reference fields.
6949
6950 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
6951
6952         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
6953         disappearing link to the GC interface and use them to simplify
6954         the gchandles code.
6955
6956 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6957
6958         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
6959         stfld_remote which call mono_load/store_field_new. This allows methods
6960         calling ldfld/stfld wrappers to be AOTed.
6961
6962         * console-io.c: Include sys/filio.h under solaris.
6963         
6964         * console-io.c: Include curses.h if needed correctly.
6965
6966 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6967         
6968         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
6969         method->klass as well.
6970
6971         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
6972
6973         * class.c (mono_class_init): Switch on lazy initialization of 
6974         methods.
6975
6976         * class.c (mono_class_get_finalizer): Handle the case when the 
6977         finalizer is inherited.
6978
6979 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6980
6981         * console-io.c: <curses.h> is needed by term.h on solaris.
6982
6983 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
6984
6985         * icall.c, class-internals.h, monodiet.c, class.c: Remove
6986         mono_class_setup_properties where possible. Remove this ftn from
6987         the header file, and make it static.
6988
6989 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6990
6991         * loader.c: Add missing setup_... call.
6992
6993         * class.c: Add missing setup_... calls.
6994
6995         * class.c (mono_class_init): Switch on lazy initialization of 
6996         the generic vtable.
6997         
6998         * class.c (mono_class_init): Fix generics broken by the recent changes.
6999
7000         * monodiet.c (handle_type): Add missing setup_... calls.
7001
7002         * class.c: Back out garbage in previous patch.
7003         
7004         * class.c: Add missing setup_... calls.
7005
7006         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7007         mono_class_setup_methods () if possible.
7008
7009         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7010
7011         * class-internals.h (MonoCachedClassInfo): New structure.
7012
7013         * class.c: Initialize properties and events fields of MonoClass lazily.
7014
7015         * class.c: Add infrastructure for lazily initializing the methods and
7016         vtable fields of MonoClass. Not yet used.
7017
7018         * class.c (mono_class_get_finalizer): New helper function.
7019
7020         * class.c: Add infrastructure for loading some class related data from
7021         an AOT file.
7022
7023         * object.c: Add infrastructure for initializing the vtable from data
7024         in the AOT file.
7025
7026         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7027
7028         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7029         appropriate initialization function before accessing parts of the
7030         MonoClass structure.
7031
7032         * marshal.c: Fix warnings.
7033         
7034         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7035
7036         * mono-debug-debugger.c (get_exception_message): Use 
7037         mono_class_get_method_from_name_flags ().
7038
7039 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7040
7041         * reflection.c, appdomain.c: Replace a few manual searches that
7042         Zoltan missed. (Paolo approved this part of my initial patch).
7043
7044 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7045
7046         * profiler.c: disable recording statistical events at report time.
7047
7048 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7049
7050         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7051         to byteswap arrays of enum values, too (bug #72080).
7052
7053 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7054
7055         * appdomain.c (set_domain_search_path): Allow this to be called if
7056         domain->setup is not yet set.
7057
7058         * loader.c (mono_method_get_index): New helper function.
7059
7060         * loader.c reflection.c: Use mono_method_get_index ().
7061
7062         * class.c (mono_class_get_method_from_name_flags): New helper method.
7063
7064         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7065         this.
7066
7067         * class.c (mono_class_get_cctor): New helper method.
7068
7069         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7070         mono_class_get_method () to look up methods.
7071
7072 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7073
7074         * console-io.c: Fix the build, this should work on Windows.
7075
7076 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7077
7078         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7079         be set to null to keep things valid
7080
7081 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7082
7083         * icall.c: added Console 2.0 icalls.
7084         * Makefile.am: added console-io.[ch]
7085         * console-io.[ch]: internal calls for Console 2.0 API.
7086
7087 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7088
7089         * class.c: make sure we consider all the interfaces
7090         when calculating max_interface_id (bug found by
7091         Jeroen Frijters running ikvm).
7092
7093 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7094
7095         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7096         valuetype fields to null.
7097
7098         * object.c (set_value): Ditto. Fixes #71669.    
7099
7100 2005-01-31  Martin Baulig  <martin@ximian.com>
7101
7102         * metadata.c (mono_metadata_has_generic_params): New public
7103         function; checks whether something is a generic method.
7104
7105 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7106
7107         * appdomain.c: fix infinite recursion when adding assemblies.
7108
7109 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7110
7111         * object.c: Fix small typo to return all items for Environment.
7112         GetCommandLineArgs.
7113
7114 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7115
7116         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7117         reflection.c: more domain and assembly-unload related fixes
7118         and memory leaks plugs.
7119
7120 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7121
7122         * 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.
7123
7124 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7125
7126         * loader.c (mono_method_signature): Make this method lazy
7127         (mono_get_method_from_token): Don't computate the signature here.
7128
7129         Doing this saves quite a bit of memory. I got 90 kb on starting up
7130         monodoc. It should also save some disk reads on startup.
7131
7132         * *: MonoMethod->signature might be NULL now. You *MUST* use
7133         mono_method_signature.
7134
7135 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7136
7137         * object.c (mono_runtime_get_main_args): Return an array from the
7138         current domain here. Fixes #71938.
7139
7140 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7141
7142         * monitor.c: formatting changes to comply with the
7143         mono coding style and remove #ifdefs from the code.
7144
7145 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7146
7147         * metadata.c, private.h: remove some unneeded data
7148         and use a more compact representation for table schemas.
7149
7150 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7151
7152         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7153         to get a better distribution in hash tables.
7154         * *.c: use mono_aligned_addr_hash() where appropriate.
7155         * assembly.c: make var static.
7156
7157 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7158
7159         * domain-internals.h: Put MonoJitInfo on a diet.
7160
7161         * domain.c: Fix a warning.
7162
7163 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7164
7165         * gc.c: rework the gc handles code to reuse handles
7166         when freed.
7167
7168 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7169
7170         * domain.c: fixed long standing bug in mono_string_equal() which
7171         was brought to light with the ldstr changes.
7172
7173 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7174
7175         * reflection.c: Remove warning by adding missing include for marshal.h
7176
7177 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7178
7179         * domain.c, object.c: change the ldstr_table to hold
7180         MonoString* as keys: makes the runtime isinterned lookup
7181         faster and simplifies memory management.
7182
7183 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7184  
7185         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7186         possible to add imperative security checks before calling the icall.
7187         * reflection.c: Return security attributes on the original MonoMethod
7188         (and not the wrapped one). This fix permissions on icalls.
7189
7190 2005-01-25  Dick Porter  <dick@ximian.com>
7191
7192         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7193         the check for mktime() support actually test the mktime() return
7194         value.  "Fixes" bug 71682, though the output is still different to
7195         MS.
7196
7197 2005-01-25  Martin Baulig  <martin@ximian.com>
7198
7199         * class.c (mono_class_is_assignable_from): Make this work for
7200         generic instances.
7201
7202 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7203
7204         * marshal.c (mono_string_utf8_to_builder)
7205         (mono_string_builder_to_utf16): We might not have ownership of the
7206         string. In thise case, we need to create a new buffer.
7207
7208         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7209         be null, in which case, use the default capacity.
7210
7211 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7212
7213         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7214         GC events to the profiler.
7215
7216 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7217
7218         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7219         if you don't want the GC to run.
7220
7221 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7222
7223         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7224         start providing a GC API and keeping different implementations in
7225         their own file.
7226         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7227
7228 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7229
7230         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7231         mmap rather than allocating a huge buffer.
7232         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7233         above.
7234
7235 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7236
7237         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7238         and CheckExecutionRights.
7239         * reflection.c|h: Keep the index of the declarative security to be 
7240         used, instead of the pointer, when AOT compiler is used. Also add 
7241         class initialization when requesting demands.
7242         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7243         CheckExecutionRights. Both properties are now FALSE by default, and
7244         unmodifiable, unless the --security option is used.
7245
7246 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7247
7248         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7249         reflection.c: properly refcount images and assemblies, many leaks fixed.
7250
7251 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7252
7253         * threadpool.c: increase the timeout for threads in the thread pool to
7254         10s.  Fixes bug #67159.
7255
7256 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7257
7258         * class-internals.h: Sun's compiler insists on explicit
7259         signed on bit fields to handle then correctly.
7260
7261 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7262
7263         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7264         Make the size of the array fit only the number of invalid path
7265         chars that we have.
7266
7267         * class.c (_mono_class_get): Improve the error reporting when a
7268         class referenced is not found, to assist debugging. 
7269
7270 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7271
7272         * threads.c: fix off-by-one error.
7273         * domain.c: free data allocated in the domain.
7274
7275 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7276
7277         * reflection.c (mono_method_body_get_object): Fill out exception info
7278         as well.
7279
7280         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7281         structure.
7282         
7283 2005-01-19  Martin Baulig  <martin@ximian.com>
7284
7285         * loader.c (mono_get_method_constrained): Make this work again.
7286
7287 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7288
7289         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7290         guint16 to match the managed side.
7291
7292         * reflection.c (mono_reflection_body_get_object): Fill out local
7293         variables array.
7294
7295         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7296         as well.
7297
7298         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7299         'local_var_sig_token'.
7300
7301 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7302
7303         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7304         System.Drawing.
7305
7306         * reflection.c (mono_method_body_get_object): Handle abstract and
7307         runtime methods.
7308
7309 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7310
7311         * marshal.c, loader.c, class-internals.h, reflection.c:
7312         store the emthod data for a wrapper in an array instead of a list.
7313
7314 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7315
7316         * marshal.c: change the code to allocate memory more
7317         conservatively for method wrappers.
7318
7319 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7320
7321         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7322         fields from MonoClass to the marshal info structure where they belong.
7323
7324 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7325
7326         * class.c, object.c, class-internals.h, marshal.c: rearrange
7327         some fields and tweak some types to lower memory usage.
7328
7329 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7330
7331         * threads.c (signal_thread_state_change): Handle the case when the
7332         target thread is the current thread.
7333
7334         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7335
7336         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7337         emit_ptr_to_object_conv. 
7338
7339         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7340         marshalling. Fixes #71352.
7341
7342 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7343
7344         * metadata.h, blob.h: move table enum to blob.h so it can be included
7345         in any header.
7346         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7347         cut the size of MonoImage/MonoDynamicImage.
7348
7349 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7350
7351         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7352
7353 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7354
7355         * reflection.c, reflection.h, icall.c: add a function to check
7356         if an attribute type is defined for a metadata object.
7357
7358 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7359
7360         * object-internals.h: Added some needed fields from StringBuilder class.
7361         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7362
7363 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7364
7365         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7366         threads before shutting down the runtime.
7367
7368         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7369
7370 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7371
7372         * object-internal.h, threads.c: implement stacksize and 
7373         parameterized thread start functionality (requires
7374         matching corlib). Marked broken code for later removal.
7375
7376 2005-01-12  Martin Baulig  <martin@ximian.com>
7377
7378         * class-internals.h (MonoGenericClass): Moved the `initialized'
7379         flag to MonoDynamicGenericClass, removed `init_pending'.
7380         (MonoGenericInst): Added `is_reference' flag.
7381
7382 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7383
7384         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7385         inside the MSDOS header. Fixes #71201.
7386
7387         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7388         gc thread.
7389         (mono_domain_finalize): Ditto.
7390
7391 2005-01-12  Martin Baulig  <martin@ximian.com>
7392
7393         * class.c (mono_get_shared_generic_class): Use the cache for
7394         non-dynamic generic classes.
7395
7396         * class-internals.h (mono_class_create_generic_2): Removed
7397         function prototype, this function is now static inside class.c.
7398
7399         * class.c (mono_class_create_generic_2): Made this static, only
7400         call it from mono_class_init() and mono_class_setup_parent().
7401         (collect_implemented_interfaces_aux): Call mono_class_init() on
7402         the interfaces we collect.
7403         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7404
7405 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7406
7407         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7408         it a real thread handle.
7409
7410         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7411         MonoJitExceptionInfo, since each catch clause needs its own variable.
7412         
7413 2005-01-11  Dick Porter  <dick@ximian.com>
7414
7415         * image.c (mono_pe_file_open): New variant on mono_image_open()
7416         that does not set up the CLI metadata; used for FileVersionInfo so
7417         it can get the data for windows binaries too.
7418         
7419         * process.c (process_read_string_block): Don't read off the end of
7420         the StringTable block.
7421
7422         These both fix bug 70766.
7423
7424 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7425
7426         * gc.c: set some fields to NULL at GC cleanup time.
7427         * threads.c: if we quit the main thread, call exit ().
7428
7429 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7430
7431         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7432
7433 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7434
7435         * threads.h, threads.c, object.c: added accessor and settor for
7436         main_thread. Handle it specially when exiting from it: wait
7437         for other foreground threads to exit.
7438
7439 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7440
7441         * process.c, verify.c: remove some bloat.
7442
7443 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7444
7445         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7446         the calling convention to cdecl under win32.
7447
7448 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7449
7450         * object.c (mono_object_get_size): New function to get the size of
7451         an object instance.
7452
7453         * profiler.c (simple_allocation): Use above.
7454
7455 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7456
7457         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7458         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7459         get an appdomain by it's id and we can't assume the root's id is 0).
7460         * domain-internals.h: Change the function prototype to match.
7461         * icall.c: Change the icall table for AppDomain.
7462
7463 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7464
7465         * locales.c (string_invariant_compare_char): Only compute
7466         GUnicodeTypes in the case where we need them.  Test for ordinality
7467         first and return if so.
7468
7469         From the commit:
7470
7471                 /*
7472                  * FIXME: here we must use the information from c1type and c2type
7473                  * to find out the proper collation, even on the InvariantCulture, the
7474                  * sorting is not done by computing the unicode values, but their
7475                  * actual sort order.
7476                  */
7477
7478 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7479
7480         * loader.c: for P/Invoke methods, allow the "Internal" shared
7481         library name to refer to the calling process symbol namespace.
7482
7483 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7484
7485         * Makefile.am: Add the security manager to the build.
7486         * security-manager.c|h: New. Initialization of the security manager.
7487
7488 2005-01-07  Dick Porter  <dick@ximian.com>
7489
7490         * threads.c: 
7491         * monitor.c: Update thread state during Monitor and WaitHandle
7492         waits.  Fixes bug 71031.
7493
7494 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7495
7496         * reflection.c (property_encode_signature): Correctly handle when the
7497         property has no methods.
7498
7499 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7500
7501         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7502         
7503         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7504         fields from mb, not rmb. Fixes #71017.
7505
7506         * marshal.c (emit_ptr_to_str_conv): Add support for 
7507         ByValTStr -> string conversion. Fixes #71015.
7508
7509         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7510
7511         * mempool.c (mono_mempool_contains_addr): New helper function.
7512
7513 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7514
7515         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7516         HasSematics encoded fields.
7517         
7518         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7519         invalid string marshalling.
7520
7521         * metadata.c: Fix warnings.
7522         
7523 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7524
7525         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7526         profiler support.
7527
7528 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7529
7530         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7531         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7532         tests.
7533
7534 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7535
7536         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7537         so methods containing these can be AOTed.
7538
7539 2005-01-03  Martin Baulig  <martin@ximian.com>
7540
7541         * loader.c (find_method): Removed the hack for generic instances.
7542         (method_from_memberref): If our parent is a generic instance, pass
7543         its generic type definition to find_method() and then inflate the
7544         method.
7545         (mono_get_method_constrained): Pass the generic type definition to
7546         find_method() and inflate the method later.
7547
7548         * class-internals.h (MonoStats): Added `generic_class_count'.
7549
7550         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7551         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7552
7553         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7554         generic type definitions.
7555
7556 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7557
7558         * loader.c icall.c: Fix warnings.
7559
7560 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7561
7562         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7563         blittable types. Fixes #70864.
7564
7565 2004-12-29  Martin Baulig  <martin@ximian.com>
7566
7567         * icall.c
7568         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7569
7570         * reflection.c (mono_method_get_object): Create a
7571         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7572         call mono_get_inflated_method().
7573
7574         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7575
7576 2004-12-27  Martin Baulig  <martin@ximian.com>
7577
7578         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7579         (MonoMethodInflated): Added `inflated' field.
7580
7581         * class.c (mono_class_inflate_generic_method): Don't really
7582         inflate the method here; just set the `is_inflated' flag in the
7583         MonoMethod.
7584         (mono_class_get_inflated_method): Actually inflate the method here
7585         if it's not already inflated; we use the MonoMethodInflated's new
7586         `inflated' field as a cache.
7587
7588 2004-12-26  Martin Baulig  <martin@ximian.com>
7589
7590         * class.c
7591         (inflate_generic_class): Moved some code out of inflate_generic_type().
7592         (mono_class_inflate_generic_method): If we're already inflated,
7593         inflate the context and use the declaring method; ie. make sure
7594         the declaring method of an inflated method is always the generic
7595         method definition.
7596         (mono_class_create_from_typedef): Create
7597         `class->generic_container->context->gclass'.
7598
7599 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7600
7601         * metadata-internals.h, marshal.c, reflection.c: More
7602         MonoGHashTable->GHashTable.
7603
7604         * domain-internals.h, class.c: Change MonoGHashTable's into
7605         GHashTables for some cases where no gc stuff is used
7606
7607         All users: update apis
7608
7609 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7610
7611         * metadata.c (builtin_types): Make this `const'. Makes this get
7612         put into the shareable section.
7613         (mono_metadata_init): Casts to make gcc happy.
7614
7615 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7616
7617         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7618
7619 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7620
7621         * icall.c: Added an internal call to retrieve the position and length
7622         of assembly-level declarative security attributes (RequestMinimum, 
7623         RequestOptional and RequestRefuse). This is used by the Assembly class
7624         to re-create the corresponding permission sets.
7625
7626 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7627
7628         * marshal.c: fix the stelemref wrapper to be type correct
7629         (and faster).
7630
7631 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7632
7633         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7634         to do key & 0x7fffffff. Hashtable already does this. It just
7635         results in longer code.
7636
7637 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7638
7639         * appdomain.c: Bump corlib version.
7640         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7641         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7642         * reflection.c|h: Add functions to get declarative security infos
7643         (blob position and length) for assemblies, classes and methods.
7644
7645 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7646
7647         * reflection.c: sort the constant table (bug #70693).
7648
7649 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7650
7651         * object-internals.h, threads.c, domain.c: add accessors for
7652         the MonoThread and MonoDomain tls keys.
7653
7654 2004-12-18  Martin Baulig  <martin@ximian.com>
7655
7656         * class.c (inflate_generic_type): If we're inflating a generic
7657         instance, set `ngclass->context->container = context->container';
7658         ie. the container we inflated into.
7659
7660         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7661         inflate_generic_type() changes.
7662
7663 2004-12-17  Martin Baulig  <martin@ximian.com>
7664
7665         * class-internals.h
7666         (MonoGenericClass): Replaced `MonoType *generic_type' with
7667         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7668         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7669         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7670
7671 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7672
7673         * exception.c (mono_exception_from_token): New helper function.
7674
7675 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7676
7677         * assembly.c (mono_assembly_load_with_partial_name): Call 
7678         mono_assembly_loaded before invoking the preload hooks. Fixes
7679         #70564.
7680
7681         * object-internals.h (MonoThread): Change culture_info and 
7682         ui_culture_info into an array.
7683
7684         * threads.c: Cache culture info objects from more than one appdomain.
7685
7686         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7687         current UI culture.
7688
7689 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7690
7691         * threads.h threads.c appdomain.c: Clear the culture_info field of
7692         all threads during unloading if they point to an object in the dying
7693         appdomain.
7694
7695 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7696
7697         * culture-info.h (TextInfoEntry): New struct
7698         * object-internals.h: sync with managed
7699         * locales.c: fill the `text_info_data' field
7700         * culture-info-tables.h: update
7701
7702 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7703
7704         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7705         collector.
7706
7707 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7708
7709         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7710         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7711
7712 2004-12-12  Martin Baulig  <martin@ximian.com>
7713
7714         * mono-debug-debugger.c (write_type): If we're an enum and the
7715         builtin types have already been initialized, call mono_class_init().
7716
7717 2004-12-11  Martin Baulig  <martin@ximian.com>
7718
7719         * metadata.c (mono_metadata_load_generic_params): Added
7720         `MonoGenericContainer *parent_container' argument; automatically
7721         compute `container->is_method'; pass the correct owner to
7722         get_constraints().      
7723
7724         * reflection.c (compare_genericparam): Sort the GenericParam table
7725         according to increasing owners. 
7726
7727 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7728
7729         * profiler.c: allow disabling the default profiler.
7730
7731 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7732
7733         * decimal.c, icall.c: allow disabling System.Decimal support.
7734
7735 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7736
7737         * reflection.c: Add support for null attribute arguments.
7738
7739 2004-12-09  Martin Baulig  <martin@ximian.com>
7740
7741         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7742         names to get rid of compiler warnings.
7743
7744 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7745
7746         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7747         mono_marshal_load_type_info (). Fixes #69625.
7748         (mono_marshal_get_ptr_to_struct): Likewise.
7749
7750 2004-12-08  Martin Baulig  <martin@ximian.com>
7751
7752         * mono-debug.h: Bumped version number to 47.
7753
7754         * mono-debug-debugger.c
7755         (mono_debugger_event_handler, mono_debugger_event): Take two
7756         guint64 arguments insteed of a gpointer and a guint32.  
7757
7758 2004-12-08  Martin Baulig  <martin@ximian.com>
7759
7760         * debug-mono-symfile.h
7761         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7762         `address' to `native_offset'.
7763
7764 2004-12-08  Martin Baulig  <martin@ximian.com>
7765
7766         * class.c (mono_class_create_from_typespec): Only inflate if we
7767         either have `context->gclass' or `context->gmethod'.
7768
7769 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7770
7771         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7772
7773         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7774
7775         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7776
7777         * reflection.c (mono_assembly_get_object): Remove the workaround put
7778         in for the release.
7779         
7780         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7781
7782         * appdomain.c: Bump corlib version.
7783
7784         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7785         be visible in other appdomains.
7786
7787 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7788
7789         * threads.c: Interlocked inc and dec for longs were messed up,
7790         use a KISS based impl for this. Fixes 70234
7791
7792 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7793
7794         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7795
7796 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7797
7798         * icall.c: fix to follow policy not to allow struct
7799         arguments in icalls.
7800
7801 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7802
7803         * process.c: make the patch that handles spaces in file paths work
7804         on mono/windows too.
7805
7806 2004-12-06  Martin Baulig  <martin@ximian.com>
7807
7808         * class.c (mono_class_create_generic): Call
7809         mono_class_setup_supertypes() if we're dynamic.
7810         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7811
7812 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7813
7814         * object-internals.h: Add new fields to MonoThread.
7815
7816         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7817
7818         * icall.c threads-types.h threads.c: Add new icalls.
7819
7820         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7821
7822         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7823         managed side.
7824
7825         * appdomain.c: Bump corlib version.
7826
7827         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7828         internal assemblies. Fixes #69181.
7829
7830 2004-12-05  Martin Baulig  <martin@ximian.com>
7831
7832         * class.c (mono_class_inflate_generic_signature): Make this a
7833         no-op if `context' is NULL or we don't have any type parameters;
7834         also copy `sentinelpos'.        
7835
7836 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7837
7838         * image.c: Add unbox_wrapper_cache.
7839
7840         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7841
7842         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7843         function generator.
7844         
7845         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7846         Fixes #70173.
7847
7848         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7849         
7850 2004-12-04  Martin Baulig  <martin@ximian.com>
7851
7852         * loader.c (mono_method_get_signature_full): New public function;
7853         like mono_method_get_signature(), but with an additional
7854         `MonoGenericContext *' argument.
7855
7856         * class.c (mono_class_inflate_generic_signature): Formerly known
7857         as inflate_generic_signature(); make this public.
7858
7859 2004-12-04  Martin Baulig  <martin@ximian.com>
7860
7861         * metadata.c
7862         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7863         instead of a `MonoGenericContainer *'.  
7864         (mono_metadata_parse_array_full): Likewise.
7865         (mono_metadata_parse_signature_full): Likewise.
7866         (mono_metadata_parse_method_signature_full): Likewise.
7867         (mono_metadata_parse_generic_inst): Likewise.
7868         (mono_metadata_parse_generic_param): Likewise.
7869         (mono_metadata_parse_mh_full): Likewise.
7870         (mono_type_create_from_typespec_full): Likewise.
7871
7872 2004-12-03  Martin Baulig  <martin@ximian.com>
7873
7874         * class-internals.h (MonoGenericContainer): Replaced the
7875         `MonoGenericContext * pointer with a `MonoGenericContext'
7876         structure and made it the first element.
7877
7878 2004-12-03  Martin Baulig  <martin@ximian.com>
7879
7880         * class.c
7881         (inflate_generic_type): Set the `context->container' when creating
7882         a new MonoGenericContext.
7883         (mono_class_inflate_generic_method): Likewise.
7884         (mono_class_create_from_typespec): Just use `context->container'
7885         to get the container.
7886
7887         * loader.c (method_from_methodspec): Set `context->parent' from
7888         `context->container' - and if that's a method container, use its
7889         parent.  Also set the `context->container' when creating a new
7890         MonoGenericContext.
7891         (mono_get_method_from_token): Use just `context->container' to get
7892         the container.
7893
7894         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7895         `gclass->context->container'.
7896
7897         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7898         the `context->container' when creating a new MonoGenericContext.
7899
7900 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7901
7902         * reflection.c (compare_genericparam): Sort params with identical
7903         owner by their number. Fixes gen-111 on sparc.
7904
7905 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7906
7907         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7908         around the domain changes.
7909
7910         * appdomain.c (mono_domain_unload): Handle the case when the thread
7911         calling Unload is itself being aborted during unloading. Fixes #70022.
7912
7913         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7914
7915         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7916         checkpoint_func as an icall so it gets a wrapper.
7917         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7918         in the cross-appdomain wrappers too.
7919
7920         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7921
7922         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7923
7924         * reflection.c: Fix some memory leaks.
7925         
7926 2004-12-02  Martin Baulig  <martin@ximian.com>
7927
7928         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7929
7930         * metadata.c (generic_class_cache): New static hashtable.
7931         (mono_metadata_lookup_generic_class): New public method.
7932
7933 2004-12-02  Martin Baulig  <martin@ximian.com>
7934
7935         * class.c (mono_class_create_from_typedef): Call
7936         mono_class_setup_parent() and mono_class_create_mono_type() before
7937         parsing the interfaces.
7938
7939 2004-12-02  Martin Baulig  <martin@ximian.com>
7940
7941         * metadata.c (generic_inst_cache): New static hashtable.
7942         (mono_metadata_lookup_generic_inst): New public function.
7943         (mono_metadata_inflate_generic_inst): New public function.
7944         (mono_metadata_parse_generic_inst): New public function.
7945         (do_mono_metadata_parse_generic_class): Use the new
7946         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7947         since this'll also use the cache.
7948
7949         * reflection.c (mono_reflection_bind_generic_method_parameters):
7950         Use mono_metadata_lookup_generic_inst() to use the new cache.
7951
7952         * class.c (inflate_mono_type): Use
7953         mono_metadata_inflate_generic_inst() to inflate a generic
7954         instance; this'll also use the new cache.
7955
7956         * loader.c (method_from_methodspec): Use
7957         mono_metadata_parse_generic_inst() and
7958         mono_metadata_inflate_generic_inst() rather than parsing it
7959         manually, so we can use the new cache.
7960
7961 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7962
7963         * threads.c (wait_for_tids): Do not incorrectly free threads when 
7964         the wait times out.
7965
7966 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
7967
7968         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
7969         iter->args based on whether parameters are passed in registers (i.e.
7970         MONO_ARCH_REGPARMS is defined)
7971
7972 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
7973
7974         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
7975         the exception message. Fixes #70070.
7976         (method_from_methodspec): Fix warnings.
7977
7978 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7979
7980         * process.c: (complete_path) return the path quoted
7981
7982 2004-12-01  Martin Baulig  <martin@ximian.com>
7983
7984         * class-internals.h (MonoGenericInst): New structure.
7985         (MonoGenericClass): Replaced `type_argc', `type_argv' and
7986         `is_open' with `MonoGenericInst *inst'.
7987         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
7988         `is_open' with `MonoGenericInst *inst'.
7989
7990 2004-11-30  Martin Baulig  <martin@ximian.com>
7991
7992         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
7993
7994         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
7995         to `generic_class_cache'.
7996
7997         * metadata.c
7998         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
7999         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8000         (mono_generic_inst_is_valuetype): Renamed to
8001         mono_generic_class_is_valuetype().
8002
8003         * class-internals.h
8004         (MonoGenericInst): Renamed to MonoGenericClass.
8005         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8006         (MonoClass): Renamed `generic_inst' to `generic_class'.
8007         (MonoGenericContext): Renamed `ginst' to `gclass'.
8008
8009         * object-internals.h
8010         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8011
8012         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8013         mono_reflection_generic_class_initialize().
8014
8015         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8016         now known as "System.Reflection.MonoGenericClass".
8017         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8018
8019 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8020
8021         * class-internals.h: Added a flag field to MonoClass to cache the
8022         declarative security attributes actions associated with the class.
8023         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8024         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8025         applicable to the JITted method.
8026         * reflection.c|h: Added functions to extract (as flags) which security
8027         actions are available (declaratively) for a method, class or assembly.
8028         * metadata.c|h: Added functions to search the declarative security
8029         table in the metadata.
8030         
8031 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8032
8033         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8034         EXPORTEDTYPES are already in the class name cache, so there is no
8035         need to add extra code here to look at them. Just removes a bit of
8036         cruft.
8037
8038         (ves_icall_System_Environment_get_TickCount): No need for #if
8039         WINDOWS. We already have the code in io-layer.
8040
8041 2004-11-28  Martin Baulig  <martin@ximian.com>
8042
8043         * loader.c
8044         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8045         Fixes gen-112.cs.
8046
8047 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8048
8049         * assembly.c (do_mono_assembly_open): Instead of having a
8050         conditional WITH_BUNDLE, incorporate support for bundles here, by
8051         having a global `bundles' variable holding a pointer to the actual
8052         bundles. 
8053
8054         (mono_register_bundled_assemblies): New API call used by the
8055         bundle code. 
8056
8057         See mkbundle.1 for details.
8058         
8059 2004-11-27  Martin Baulig  <martin@ximian.com>
8060
8061         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8062         the vtable for generic methods.
8063
8064 2004-11-26  Martin Baulig  <martin@ximian.com>
8065
8066         * metadata.c
8067         (mono_metadata_generic_method_hash): New public function.
8068         (mono_metadata_generic_method_equal): Likewise.
8069
8070         * class-internals.h
8071         (MonoGenericContainer): Added `GHashTable *method_hash'.
8072
8073         * reflection.c (ReflectionMethodBuilder): Added
8074         `MonoGenericContainer *generic_container'.
8075         (reflection_methodbuilder_to_mono_method): Don't create a new
8076         MonoGenericContainer each time we're called.
8077         (mono_reflection_bind_generic_method_parameters): Use
8078         `container->method_hash' to cache the results so we don't create a
8079         different method if we're called several times with the same
8080         arguments.
8081
8082         * loader.c (method_from_methodspec): Use the new
8083         `container->method_hash' here, too.
8084
8085 2004-11-26  Martin Baulig  <martin@ximian.com>
8086
8087         * class.c (inflate_generic_signature): Correctly compute
8088         `res->has_type_parameters'.
8089         (mono_class_vtable): Use the `has_type_parameters' flag to
8090         determine whether we're a generic method.
8091
8092         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8093
8094 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8095
8096         * object.c (mono_runtime_run_main): Fix a small memory leak.
8097
8098 2004-11-25  Martin Baulig  <martin@ximian.com>
8099
8100         * class.c (set_generic_param_owner): Fixed the loop.
8101
8102 2004-11-25  Martin Baulig  <martin@ximian.com>
8103
8104         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8105         generic methods.
8106
8107 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8108
8109         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8110         names. Fixes #69787.
8111
8112 2004-11-24  Martin Baulig  <martin@ximian.com>
8113
8114         * class.c (mono_class_create_generic_2): If we don't have a
8115         `ginst->parent', inflate `gklass->parent' to get our parent.
8116
8117 2004-11-24  Martin Baulig  <martin@ximian.com>
8118
8119         * reflection.c (compare_genericparam): Correctly sort the
8120         GenericParam table; fixes #69779.
8121
8122 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8123
8124         * reflection.c: When writing a PE file, don't create a huge
8125         buffer in memory. Just write the arrays we have to the file.
8126         This reduces memory usage.
8127
8128         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8129         globally.
8130
8131 2004-11-17  Martin Baulig  <martin@ximian.com>
8132
8133         * class.c (mono_class_init): Don't setup `class->parent' for
8134         dynamic instances; moved this to mono_class_generic_2().
8135         (mono_class_create_generic): Also set `klass->inited' for dynamic
8136         generic instances.
8137         (mono_class_create_generic_2): Don't do anything for dynamic
8138         generic instances.  Set `klass->parent' here and also call
8139         mono_class_setup_parent() here. 
8140
8141         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8142         `MonoType *parent' argument; set `ginst->parent' before calling
8143         mono_class_create_generic_2(), so we set the correct parent.
8144
8145 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8146
8147         * reflection.c: allow getting attributes from ModuleBuilder
8148         (used by ikvm).
8149
8150 2004-11-17  Martin Baulig  <martin@ximian.com>
8151
8152         * class.c (mono_class_create_from_typedef): If a type parameter is
8153         inherited from an outer class, set its owner to that class.
8154
8155 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8156
8157         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8158           for (int*) written size. This fixes bug #69592.
8159
8160 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8161
8162         * icall.c: Added IsAuthenticodePresnet internal call.
8163         * image.c|h: New function that check a MonoImage for an Authenticode
8164         signature in the certificate PE data directory.
8165         * security.c|h: New internal call to ask the runtime if an 
8166         Authenticode signature seems referenced in the PE header.
8167
8168 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8169
8170         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8171
8172         * reflection.c (mono_image_create_pefile): Free the assembly streams
8173         after writing out the assembly file.
8174
8175         * object.c (mono_runtime_run_main): Fix small memory leak.
8176
8177         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8178         property access modifiers. Fixes #69389.
8179
8180 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8181
8182         * domain.c, object.c, object-internals.h, domain-internals.h,
8183         object.h, marshal.c: keep dynamic code info per domain.
8184
8185 2004-11-15  Martin Baulig  <martin@ximian.com>
8186
8187         * class.c (mono_type_get_name_recurse): Put type arguments in
8188         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8189         see bug #68387.
8190
8191 2004-11-15  Martin Baulig  <martin@ximian.com>
8192
8193         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8194         (mono_class_setup_vtable): When computing `the_cname' for a
8195         generic instance, don't include the namespace since we'd otherwise
8196         add it twice.
8197
8198 2004-11-15  Martin Baulig  <martin@ximian.com>
8199
8200         * class.c (mono_class_create_generic): Changed return type to void.
8201         (mono_class_create_generic_2): New public function; setup
8202         `class->method', `class->field' and `class->interfaces' here
8203         instead of in mono_class_init().
8204
8205         * class.h (mono_class_create_generic): Moved to class-internals.h.
8206
8207 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8208
8209         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8210         rather than writing to memory, write to this file. Right now,
8211         we are just writting into a buffer, and copying that. However
8212         we can avoid the buffer later.
8213
8214         (mono_dynamic_stream_reset): new function
8215
8216         * icall.c, object-internals.h: update for the above.
8217
8218 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8219
8220         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8221         have been using gc'd memory. First it is slower, unlikely
8222         the comment in the source code said, secondly, it increases
8223         our footprint to do it in the gc.
8224
8225         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8226         the method so that it does not have to copy to managed code.
8227
8228 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8229
8230         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8231
8232 2004-11-12  Martin Baulig  <martin@localhost>
8233
8234         * reflection.c (mono_image_create_token): Allow generic method
8235         definitions here, since they may appear in an `.override'; see
8236         gen-98/gen-99 for an example.
8237
8238 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8239
8240         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8241         #69365.
8242
8243         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8244         descriptive.
8245
8246 2004-11-11  Martin Baulig  <martin@ximian.com>
8247
8248         * class.c (mono_class_setup_vtable): In an explicit interface
8249         implementation, the method name now includes the arity.
8250
8251 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8252
8253         * object.c (mono_array_full_copy): Fix warning.
8254
8255 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8256
8257         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8258         mono_class_get_method_from_name() instead.
8259         
8260         * class-internals.h: Added two new types of wrappers. 
8261         Added MonoRemotingTarget enum. Added new trampoline function type, which
8262         takes an additional MonoRemotingTarget value as parameter, so it is
8263         possible to request a trampoline for a specific target.
8264         
8265         * class.c: Added new mono_class_get_method_from_name() method.
8266         
8267         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8268         general remoting sinks and one specific for cross domain calls.
8269         
8270         * debug-helpers.c: Added new wrapper names.
8271         
8272         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8273         of a remote class.
8274         
8275         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8276         
8277         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8278         with several other methods (mono_marshal_get_xappdomain_dispatch,
8279         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8280         and others) can generate a fast remoting wrapper for cross domain calls.
8281         More information can be found in docs/remoting.
8282         Other changes: Removed mono_find_method_by_name, and used
8283         mono_class_get_method_from_name instead.
8284         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8285         is stored in the remoting invoke hashtable.
8286         
8287         * marshal.h: published the new method for getting the xdomain wrapper,
8288         and also added a method for getting the adequate wrapper for a given
8289         method and target.
8290         
8291         * object-internals.h, object.c: Added a couple of methods for capying and
8292         cloning arrays.
8293         Modified mono_install_remoting_trampoline, which takes the new remoting
8294         trampoline that has a remoting target as parameter.
8295         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8296         will return the most suitable vtable for the target.
8297         Added mono_remote_class_vtable, which returns the vtable of a remote class
8298         (which can be the normal remoting vtable or the xdomain vtable).
8299         
8300         * threads.c: the xdomain invoke and dispatch wrappers must also be
8301         protected against interruptions.
8302
8303 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8304
8305         * icall.c: use memmove in BlockCopyInternal when the source and
8306         destination arrays are the same.
8307
8308 2004-11-09  Martin Baulig  <martin@ximian.com>
8309
8310         * class-internals.h (MonoGenericContainer): Removed `method' and
8311         `signature', replaced them with `is_method' and `is_signature'
8312         flags.  Added `context'.
8313
8314         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8315         instead of a `MonoGenericContainer *'.
8316
8317         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8318         for dynamic type parameters.
8319         (mono_metadata_load_generic_params): Setup `container->context'.
8320
8321         * reflection.c (mono_reflection_setup_generic_class): Setup
8322         `tb->generic_container->context'.
8323         (do_mono_reflection_bind_generic_parameters): Use
8324         mono_class_inflate_generic_type() to correctly inflate types,
8325         rather than using our own hack just for MONO_TYPE_VAR.
8326
8327 2004-11-09  Martin Baulig  <martin@ximian.com>
8328
8329         * class.c (mono_class_inflate_generic_method): Small fix; don't
8330         crash here.
8331
8332         * icall.c
8333         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8334         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8335         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8336         (ves_icall_Type_BindGenericParameters): Likewise.
8337         (ves_icall_Type_get_IsGenericInstance): Likewise.
8338         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8339         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8340         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8341         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8342
8343 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8344
8345         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8346         assembly versions and public key tokens. Fixes #69113.
8347
8348 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8349
8350         * metadata.c: fix bug introduced with the type cache changes
8351         on 2004-11-06.
8352
8353 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8354
8355         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8356         the MonoClass pointer instead of the token in exception clauses.
8357         * reflection.c: updates for the above and make the code not depend
8358         on the structure of MonoExceptionClause.
8359
8360 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8361
8362         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8363         Add support for dynamic assemblies. Fixes #69114.
8364
8365         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8366
8367 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8368
8369         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8370         since most only those methods use it. the code member of
8371         MonoMethodPInvoke was dead, so that can be removed too. Also,
8372         remove inline_count (again, not used), and move slot so that it
8373         can share bits with some other flags. This saves 8 bytes in the
8374         structure and gives us about 50 kb back for mcs helloworld.cs
8375
8376         * *.[ch]: Do naming changes for the above.
8377
8378         * loader.c (mono_method_get_header): Lazily init the header
8379         on first access.
8380         (mono_get_method_from_token): don't init the header here
8381         (mono_free_method): the header may never be allocated
8382
8383         Overall, this saves 150 kb of unmanaged allocations
8384         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8385         memory at runtime.
8386         
8387         * loader.c, loader.h (mono_method_get_header): new accessor.
8388
8389         * *.[ch]: use the above method. Prepares us to lazily load
8390         the header.
8391
8392         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8393         three warnings, which are actual bugs (see 69206).
8394
8395         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8396         unused. Saves a cool 4 bytes / method.
8397
8398 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8399
8400         * metadata.c (builtin_types): Add types for System.Object here.
8401         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8402         for a class or valuetype from klass->this_arg or klass->byval_arg.
8403
8404         On mcs for a hello world, this gets us down from 21836 MonoType's
8405         to 14560.
8406
8407         (mono_metadata_free_type): Account for the above change.
8408
8409 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8410
8411         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8412         exception instead of asserting if name is null.
8413         (ves_icall_System_AppDomain_GetData): Ditto.
8414
8415 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8416
8417         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8418         EnumBuilder.
8419
8420         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8421         Return NULL when the domain does not have entry_assembly set.
8422
8423         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8424         Add a 'resource_modules' argument.
8425         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8426
8427         * reflection.c (mono_reflection_create_runtime_class): Move setting
8428         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8429         for enums too.
8430
8431         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8432         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8433         Throw an ArgumentNullException if 'ptr' is null.
8434
8435         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8436         assemblies here. Fixes #69020.
8437
8438 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8439
8440         * reflection.c (build_compressed_metadata): Fix the previous patch for
8441         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8442         the stack.
8443
8444 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8445
8446         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8447         the cultures is false. Fixes #69090.
8448
8449         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8450         detected by valgrind.
8451         
8452         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8453         TypeResolve multiple times for the same type. Fixes #65577.
8454
8455 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8456
8457         * marshal.c: Avoid using ldftn to call managed functions. It is
8458         much slower than just a call.
8459
8460         * reflection.c (mono_module_get_object): free the basename we
8461         allocate here from glib.
8462         
8463         * reflection.c (ensure_runtime_vtable): make sure to free
8464         overrides.  Also, we were allocating an array of MonoMethod not an
8465         array of MonoMethod*.
8466
8467         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8468
8469         * image.c (mono_image_close): free image->guid here.
8470
8471 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8472
8473         * reflection.c: Fix some spec conformance issues with the PE file
8474         structures so mcs compiled apps run on the Net 2.0 beta.
8475
8476 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8477
8478         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8479         Implement this. Fixes #67264.
8480
8481         * debug-helpers.h debug-helpers.c marshal.c: Move 
8482         mono_find_method_by_name to debug-helpers.c.
8483
8484 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8485
8486         * object.c (mono_release_type_locks): type_initialization_hash is
8487         a GHashTable.
8488
8489         * reflection.c object.c object-internals.h: Fix warnings.
8490
8491         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8492         without accessors. Fixes #61561.
8493
8494         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8495         application base from the root domain if not set. Fixes #65641.
8496         (mono_runtime_init): Fix warning.
8497
8498 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8499
8500         * appdomain.c: call mono_thread_pool_init.
8501         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8502         of worker threads based on the number of CPUs and the environment
8503         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8504         for non-windows (windows) systems.
8505
8506 2004-10-27  Chris Toshok  <toshok@ximian.com>
8507
8508         * mono-debug-debugger.c (write_class): don't call mono_class_init
8509         here, as even with the check for (!klass->init_pending), we get
8510         into a situation where we're hitting cycles in class
8511         initialization.  Fixes #68816.
8512
8513 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8514
8515         * image.c: Avoid overwriting values in the loaded_images_hash when an
8516         assembly is loaded multiple times. Fixes #61152.
8517
8518         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8519         so multiple satellite assemblies for the same name can be loaded.
8520         Fixes #68259.
8521
8522         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8523         not NULL.
8524
8525         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8526         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8527
8528         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8529         pending finalizers are not invoked after the appdomain has been 
8530         unloaded. Fixes #67862.
8531
8532 2004-10-22  Martin Baulig  <martin@ximian.com>
8533
8534         * mono-debug-debugger.c
8535         (mono_debugger_runtime_invoke): Don't box valuetypes.
8536
8537 2004-10-22  Chris Toshok  <toshok@ximian.com>
8538
8539         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8540         don't hide private methods.
8541
8542 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8543
8544         * icall.c: Allows the runtime to "share" (when known) the public key
8545         token of an assembly. This avoid the need to recalculate the token 
8546         (from the public key) in managed code.
8547
8548 2004-10-21  Chris Toshok  <toshok@ximian.com>
8549
8550         * debug-helpers.c (append_class_name): argh, revert last patch.
8551         
8552 2004-10-21  Chris Toshok  <toshok@ximian.com>
8553
8554         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8555         not '/', so that it matches what the debugger uses to look up
8556         methods.
8557
8558 2004-10-21  Martin Baulig  <martin@ximian.com>
8559
8560         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8561         public method; this is called each time an exception is thrown and
8562         allows the debugger to use exception catch points.
8563
8564 2004-10-21  Martin Baulig  <martin@ximian.com>
8565
8566         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8567         the stack pointer and the exception object in some struct and pass
8568         that to the debugger.
8569
8570 2004-10-21  Chris Toshok  <toshok@ximian.com>
8571
8572         * mono-debug-debugger.c (do_write_class): add instance/static
8573         event support.  We don't expose "raise" or "other" yet.
8574         (event_is_static): new method.
8575
8576 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8577
8578         * mono-debug-debugger.c
8579         (mono_debugger_handle_exception): Remove
8580         bogus return value for fussy compilers.
8581
8582 2004-10-20  Martin Baulig  <martin@ximian.com>
8583
8584         * mono-debug-debugger.c
8585         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8586         (mono_debugger_handled_exception): Likewise.
8587
8588 2004-10-20  Martin Baulig  <martin@ximian.com>
8589
8590         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8591         MONO_DEBUGGER_EVENT_EXCEPTION.
8592
8593         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8594         public function to send the debugger a notification for an
8595         exception and inform it about a catch/finally clause.
8596
8597 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8598
8599         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8600         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8601         fix 2.95 build. 
8602
8603         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8604
8605 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8606
8607         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8608         marshalled as [In,Out]. Fixes #58325.
8609
8610 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8611
8612         * reflection.c (mono_method_body_get_object): Implement some fields.
8613
8614 2004-10-12  Martin Baulig  <martin@ximian.com>
8615
8616         * reflection.c (mono_reflection_bind_generic_parameters): Small
8617         fix, correctly retrieve our parent from a generic instance.
8618
8619 2004-10-12  Martin Baulig  <martin@ximian.com>
8620
8621         * metadata.c (mono_metadata_generic_param_equal): We always have
8622         an owner.
8623
8624         * class.c
8625         (mono_class_from_generic_parameter): We need to have an owner.
8626         (my_mono_class_from_generic_parameter): Likewise.
8627
8628         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8629         mono_reflection_create_generic_class() and added a new
8630         mono_reflection_setup_generic_class().  
8631         (mono_reflection_initialize_generic_param): If we're a nested
8632         generic type and inherited from the containing class, set our
8633         owner to the outer class.
8634
8635 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8636
8637         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8638
8639         * reflection.c (mono_method_body_get_object): New function to create
8640         a MethodBody object.
8641
8642         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8643
8644 2004-10-11  Martin Baulig  <martin@ximian.com>
8645
8646         * metadata.c (_mono_metadata_type_equal): Renamed to
8647         do_mono_metadata_type_equal() and made static.
8648
8649 2004-10-11  Martin Baulig  <martin@ximian.com>
8650
8651         * appdomain.c: Bump corlib version number to 28.
8652
8653 2004-10-10  Martin Baulig  <martin@ximian.com>
8654
8655         * class-internals.h
8656         (MonoGenericInst): Added `MonoGenericContainer *container'.
8657         (MonoGenericMethod): Likewise.
8658         (MonoGenericContext): Likewise.
8659         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8660
8661         * metadata.c
8662         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8663         (do_mono_metadata_parse_generic_inst): Likewise.
8664         (mono_metadata_parse_type_full): New public method.  This is the actual
8665         mono_metadata_parse_type() implementation - with an additional
8666         `MonoGenericContainer *' argument.
8667         (mono_metadata_parse_array_full): Likewise.
8668         (mono_metadata_parse_signature_full): Likewise.
8669         (mono_metadata_parse_method_signature_full): Likewise.
8670         (mono_metadata_parse_mh_full): Likewise.
8671         (mono_type_create_from_typespec): Likewise.
8672         (mono_metadata_interfaces_from_typedef_full): New public method;
8673         this is similar to the other _full() methods, but we take a
8674         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8675         (mono_metadata_parse_generic_param): Take an additional
8676         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8677         from that container.
8678         (mono_metadata_generic_param_equal): New static method to compare
8679         two type parameters.
8680         (_mono_metadata_type_equal): New static method; takes an
8681         additional `gboolean signature_only' argument - if true, we don't
8682         compare the owners of generic parameters.
8683         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8684         with a TRUE argument - do a signature-only comparision.
8685
8686         * loader.c: Use the new _full() methods and pass the
8687         MonoGenericContainer to them.
8688
8689         * object-internals.h (MonoReflectionTypeBuilder): Added
8690         `MonoGenericContainer *generic_container' field.
8691         (MonoReflectionMethodBuilder): Likewise.
8692
8693 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8694
8695         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8696         case initial images of dynamic assemblies.
8697
8698         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8699
8700         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8701
8702         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8703         length of event->other array.
8704         (typebuilder_setup_events): Ditto.
8705
8706         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8707         'assembly_by_name' and add an 'assemblies' list.
8708
8709         * assembly.h assembly.c: Add a new search hook for determining whenever
8710         an assembly is already loaded. Use this instead of searching in the
8711         loaded_assemblies list.
8712
8713         * domain.c appdomain.c: Implement the new search hook so loaded 
8714         assemblies are now scoped by appdomain. Fixes #67727.
8715
8716 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8717
8718         * threads.c (mono_thread_attach): Initialize synch_lock field so
8719         mono_thread_detach works again.
8720
8721         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8722         'lib' too. Fixes #63130.
8723
8724 2004-10-06  Jackson Harper  <jackson@ximian.com>
8725
8726         * culture-info-tables.h: regenerated.
8727
8728 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8729
8730         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8731         implemented by other interfaces in the result. Fixes #65764.
8732         
8733         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8734         Handle unloadable modules without crashing.
8735
8736         * image.c (load_modules): Revert the previous patch since modules must
8737         have a fixed index inside the array.
8738         
8739         * image.c (load_modules): Don't include native modules in the modules
8740         array.
8741
8742 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8743
8744         * reflection.h: Add param_defaults field.
8745
8746         * reflection.c: Add support for parameter defaults in dynamic methods.
8747         Fixes #64595.
8748
8749         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8750         an empty string when a type has no namespace. Fixes #64230.
8751
8752 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8753
8754         * tabledefs.h: Added "internal" security actions to support non-CAS
8755         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8756         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8757
8758 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8759
8760         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8761         constructor of abstract class. Fixes #61689.
8762
8763 2004-10-04  Martin Baulig  <martin@ximian.com>
8764
8765         * class-internals.h (MonoGenericContainer): New type.
8766         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8767         `MonoGenericContainer *generic_container'.
8768         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8769         `MonoGenericContainer *generic_container'.
8770
8771         * metadata.c (mono_metadata_load_generic_params): Return a
8772         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8773         removed the `num' argument.
8774
8775 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8776
8777         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8778         for dynamic images.
8779
8780         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8781         machine fields.
8782
8783         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8784
8785         * reflection.c: Save pe_kind and machine values into the generated
8786         image file.
8787
8788         * appdomain.c: Bump corlib version number.
8789
8790         * object-internals.h: Reorganize layout of LocalBuilder.
8791
8792         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8793         New helper function.
8794
8795         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8796         created MonoType for dynamic types. Fixes #66180.
8797
8798 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8799
8800         * threadpool.c: the ares hashtable needs a critical section around it.
8801         this prevents some nasty segfaults
8802
8803 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8804
8805         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8806         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8807         bug 67324).
8808         
8809 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8810
8811         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8812         
8813 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8814
8815         * image.c: Always canonicalize image file names, to avoid loading
8816         the same assembly twice when referenced using a relative path.
8817
8818 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8819
8820         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8821
8822         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8823
8824         * marshal.c: Fix warnings.
8825
8826 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8827
8828         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8829         attempting to marshal the delegate_trampoline as the method_addr.
8830         This patch has a static hashtable of marshalled delegates so that 
8831         we can map delegate_trampoline addresses back to delegates.  This
8832         allows a delegate passed to managed code to be passed back into native
8833         code.  Fixes #67039
8834
8835 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8836
8837         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8838
8839         * reflection.c (method_encode_code): Align method headers properly.
8840         Fixes #66025.
8841
8842 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8843
8844         * marshal.c: In the runtime invoke wrapper, reset the abort
8845         exception if it is cached. This avoids the automatic rethrowal of 
8846         the exception after the catch of the wrapper. Also check for pending
8847         interruptions before calling the managed method. This is done using
8848         the new method emit_thread_force_interrupt_checkpoint, since the
8849         normal checkpoint method is ignored when running the invoke wrapper.
8850         * object.c: If the abort exception is rethrown, set the abort_exc
8851         field of the thread, so it will be rethrown aftere every catch.
8852         * threadpool.c: Only run an interruption checkpoint if what has been
8853         requested is a stop of the thread (aborts will be ignored).
8854         * threads.c: By default, a thread will now never be interrumped while
8855         running the runtime invoke wrapper (this ensures that runtime_invoke
8856         will always return to the caller if an exception pointer is provided).
8857         There is a new special method mono_thread_force_interruption_checkpoint()
8858         to force an interruption checkpoint even if running a protected
8859         wrapper, which is used by the same runtime invoke wrapper to do a check
8860         at a safe point.
8861
8862 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8863
8864         * object.c, object-internals.h: Implemented mono_release_type_locks,
8865         which releases the cctor locks held by a thread.
8866         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8867         by a thread. Added mono_thread_exit() method to be used to safely stop
8868         a thread.
8869
8870 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8871
8872         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8873         Move null check before dereference.  Avoid indexing beyond the end
8874         of the 'modules' array.
8875
8876 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8877
8878         * metadata-internals.h (MonoImage): Add module_count field.
8879         * image.c (load_modules): Set image->module_count.
8880         (mono_image_load_file_for_image): Use image->module_count.
8881         * reflection.c (mono_image_load_module): Append to image->modules array 
8882         of dynamic assembly.
8883         (mono_module_get_object): Fix loop to actually increment index.
8884         Use image->module_count.
8885         * assembly.c (mono_assembly_load_references): Use image->module_count.
8886         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8887         Likewise.
8888
8889 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8890
8891         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8892         Avoid assert on generic types.
8893
8894 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8895
8896         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8897
8898         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8899
8900         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8901         function to convert a MarshalSpec structure to its managed counterpart.
8902
8903         * reflection.c: Fix warnings.
8904         
8905         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8906         field.
8907
8908         * icall.c (mono_create_icall_signature): Fix build.
8909
8910 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8911
8912         * icall.c: Add MakePointType icall.
8913
8914         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8915         warnings.
8916
8917 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8918
8919         * threadpool.c: reuse allocated slots in the queue.
8920
8921 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8922
8923         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8924
8925         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8926
8927         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8928         previous change.
8929
8930         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8931         ThrowOnUnmappableChar.
8932
8933         * icall.c (ves_icall_Type_GetPacking): New icall.
8934
8935 2004-09-24  Martin Baulig  <martin@ximian.com>
8936
8937         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8938
8939 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8940
8941         * appdomain.c:
8942         (mono_domain_set): allow setting a domain that is being unloaded.
8943         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8944         being unloaded.
8945
8946 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8947
8948         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8949         the GetCustomAttributes icall.
8950
8951 2004-09-23  Martin Baulig  <martin@ximian.com>
8952
8953         * object-internals.h (MonoReflectionGenericParam): Replaced
8954         'has_ctor_constraint', `has_reference_type' and `has_value_type'
8955         with `guint32 attrs'.
8956
8957 2004-09-23  Martin Baulig  <martin@ximian.com>
8958
8959         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
8960
8961 2004-09-23  Martin Baulig  <martin@ximian.com>
8962
8963         * object-internals.h (GenericParameterAttributes): New enum.
8964
8965 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8966
8967         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
8968         
8969         * class.c (init_events): Fill out event->other field.
8970
8971         * class.c: Fix warnings.
8972
8973         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
8974
8975 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
8976
8977         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
8978         walk which doesn't supply the IL offset.
8979
8980 2004-09-22  Martin Baulig  <martin@ximian.com>
8981
8982         * reflection.c (mono_reflection_setup_internal_class): If we're
8983         System.ValueType, System.Object or System.Enum, set
8984         `klass->instance_size' and create the vtable.
8985         (mono_reflection_create_internal_class): If we're an enum type,
8986         get the base class from our current corlib.
8987
8988 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
8989
8990         * reflection.h (MonoResolveTokenError): New type.
8991
8992         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
8993         icall.
8994
8995         * icall.c: Add an 'error' argument to the ResolveToken icalls.
8996
8997 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
8998
8999         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9000         Support also calling constructors, but only for already allocated objects.
9001
9002 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9003
9004         * reflection.c (type_get_qualified_name): If the klass is null
9005         return the typename to avoid a NullRefEx.
9006         (encode_cattr_value): Get the qualified name of the boxed type,
9007         not the underlying enumtype.  Fixes #62984.
9008
9009 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9010
9011         * marshal.c: Fix problems with previous checkin.
9012
9013 2004-09-21    <vargaz@freemail.hu>
9014
9015         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9016         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9017
9018         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9019
9020 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9021
9022         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9023         should only return a type for pointers, arrays, and passbyref types.
9024         Fixes bug #63841.
9025
9026 2004-09-21  Martin Baulig  <martin@ximian.com>
9027
9028         * domain.c (mono_debugger_check_runtime_version): New public
9029         function.
9030
9031         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9032
9033 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9034
9035         * reflection.c: Added missing sort to the declarative security 
9036         attributes table. MS implementation stops seeing the attributes if the
9037         token number regress in the table (as shown by ildasm and permview).
9038
9039 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9040
9041         * object-internals.h (MonoReflectionModule): Add 'token' field.
9042         
9043         * reflection.c (mono_reflection_get_token): Add support for Module
9044         and Assembly.
9045         (mono_module_get_object): Set 'token' field.
9046         (mono_module_file_get_object): Set 'token' field.
9047
9048         * icall.c: Add new Assembly and Module icalls.
9049
9050         * appdomain.c: Bump corlib version.
9051
9052 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9053
9054         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9055         tokens of metadata objects.
9056
9057         * reflection.h reflection.c (mono_reflection_get_token): New function
9058         to obtain the token of a metadata object.
9059
9060         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9061
9062 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9063
9064         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9065         
9066         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9067
9068 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9069
9070         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9071         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9072         AssemblyBuilder to access the permissions set in the class lib.
9073         * reflection.c: Added security attributes encoding step in 
9074         mono_image_build_metadata.
9075         * tabledefs.h: Added new security actions defined in 2.0:
9076         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9077
9078 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9079
9080         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9081         macro parameter.
9082
9083 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9084  
9085         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9086           finalized. There where random SIGSEVs at program termination, when
9087           an object being finalized was trying to do a string comparison and
9088           the current culture was already finalized.
9089  
9090 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9091
9092         * threads.c: call thread_cleanup before finishing the thread if we get
9093         there.
9094
9095 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9096
9097         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9098         assemblies from the parent. Fixes #65665.
9099
9100 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9101
9102         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9103         modifiers.
9104
9105 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9106
9107         * reflection.h: add prototype for mono_get_dbnull_object
9108         * reflection.c: add prototypes for get_default_param_value_blobs 
9109         and mono_get_object_from_blob for fussier compilers
9110
9111 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9112  
9113         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9114         false deadlock checks in class initialization.
9115  
9116 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9117
9118         * image.c (mono_image_addref): Fix comment.
9119
9120         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9121         possible.
9122
9123 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9124
9125         * reflection.c (mono_param_get_objects): Modified to return
9126         ParameterInfo.DefaultValue object.
9127
9128         (get_default_param_value_blobs):
9129         (mono_get_object_from_blob):
9130         (mono_get_dbnull_object): New helper routines. 
9131
9132         * object.c (mono_get_constant_value_from_blob): New helper routine
9133         carved out from get_default_field_value ()
9134
9135         * object-internals.h (mono_get_constant_value_from_blob): Added
9136         function declaration.
9137
9138 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9139
9140         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9141         referenced assemblies. Fixes #62135.
9142
9143         * exception.h exception.c (mono_get_exception_file_not_found2): New
9144         helper function.
9145
9146 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9147
9148         * class.h class.c: Add mono_type_get_underlying_type ().
9149
9150 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9151
9152         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9153         Fix GetTypes() to support dynamically created assemblies.
9154
9155 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9156
9157         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9158         
9159         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9160         previous patch.
9161
9162         * reflection.h reflection.c loader.c: Allow dynamic construction of
9163         pinvoke methods. Fixes #65571.
9164         
9165         * reflection.c (mono_reflection_get_type): Revert previous change since
9166         it causes regressions.
9167
9168 2004-09-08  Martin Baulig  <martin@ximian.com>
9169
9170         * class.c (class_compute_field_layout): Don't call
9171         mono_class_layout_fields() for open generic instances.
9172
9173 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9174         * threads.c appdomain.c: fix typo in GC macro
9175
9176 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9177
9178         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9179         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9180
9181 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9182
9183         * image.c (mono_image_close): Applied patch from 
9184         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9185         assembly is loaded multiple times from data.
9186         
9187         * image.c (mono_image_open): Fix warning.
9188
9189 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9190
9191         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9192         once. Fixes #58334.
9193         
9194         * reflection.c (mono_reflection_create_runtime_class): Initialize
9195         klass->nested_classes. Fixes #61224.
9196
9197 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9198
9199         * threads.c: sched_yield() on exit, to allow threads to quit.
9200
9201 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9202
9203         * object.c (mono_unhandled_exception): Remove leftover debug code.
9204
9205 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9206
9207         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9208
9209 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9210
9211         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9212         
9213         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9214
9215 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9216
9217         * marshal.c (emit_marshal_array): Null terminate string arrays.
9218         
9219         * marshal.c (raise_auto_layout_exception): Fix warning.
9220
9221         * reflection.c (mono_param_get_objects): Initialize the default value
9222         with DBNull.Value, not null. Fixes #62123.
9223
9224 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9225
9226         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9227         throw an exception with a cute explanation.
9228
9229 2004-09-06  Dick Porter  <dick@ximian.com>
9230
9231         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9232         Close the new process's thread handle, as we don't use it.  The
9233         handle stays around forever otherwise.
9234
9235 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9236
9237         * object.c (arith_overflow): Fix warning.
9238
9239         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9240         calling conventions in method refs. Fixes #65352.
9241
9242         * reflection.c: Fix warnings.
9243
9244 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9245
9246         * icall.c: Add a new icall for Array.Clear
9247
9248 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9249
9250         * object.c: When allocating an array, we have to throw
9251         an overflow exception if any of the lengths are < 0.
9252
9253 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9254
9255         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9256         properly. Also move implementation of string array marshalling to 
9257         managed code. Fixes #42316.
9258
9259 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9260
9261         * assembly.c: provide more information when loading an assembly fails.
9262
9263 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9264
9265         * filewatcher.c: don't expect the development fam package to be
9266         installed.
9267
9268 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9269
9270         * marshal.c: Make a copy of the signature cookie since it will be
9271         freed by the caller.
9272         
9273         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9274
9275         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9276
9277         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9278         marshal specs.
9279
9280         * marshal.c: More refactoring.
9281         
9282         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9283         smaller functions.
9284
9285 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9286
9287         * object.c: In mono_message_invoke, fill the output parameter array after
9288           calling the managed method (it was done before the call). This fixes
9289           bug #59299.
9290
9291 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9292
9293         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9294         as well.
9295
9296 2004-09-02  Martin Baulig  <martin@ximian.com>
9297
9298         * class.c (mono_class_instance_size): Don't allow generic type
9299         definitions or open generic instances.
9300         (mono_class_array_element_size): If we're a value type, call
9301         mono_class_instance_size() on the original class.
9302
9303         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9304         handle generic instances.
9305
9306         * mono-debug-debugger.c (write_type): Handle generic instances
9307         like classes.
9308
9309 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9310
9311         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9312         the allocation request fails. Fixes #65089.
9313
9314         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9315         
9316         * object.c (mono_runtime_free_method): New function to free a dynamic
9317         method.
9318
9319         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9320         delegate trampoline.
9321
9322         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9323         with hasthis as dynamic,
9324
9325         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9326
9327         * domain.c (mono_jit_info_table_remove): New function to remove an
9328         entry from the jit info table.
9329
9330         * class-internals.h (MonoMethod): Add 'dynamic' field.
9331
9332         * loader.c: Fix warnings.
9333
9334 2004-09-01  Martin Baulig  <martin@ximian.com>
9335
9336         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9337         instead of mono_debugger_lock() because the latter one is a no-op
9338         unless running in the debugger.
9339
9340 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9341
9342         * class.c (class_compute_field_layout): Classes with auto-layout or
9343         reference fields are not blittable.
9344         
9345 2004-09-01  Dick Porter  <dick@ximian.com>
9346
9347         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9348         mono_image_get_filename() to get the assembly location.
9349
9350         * icall.c:
9351         * metadata.h: Fix compile warnings
9352
9353 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9354
9355         * class.c (class_compute_field_layout): System.Object is blittable.
9356
9357         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9358         as in/out. Fixes #59909.
9359
9360 2004-09-01  Martin Baulig  <martin@ximian.com>
9361
9362         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9363         mono_metadata_generic_inst_is_valuetype() if we're a generic
9364         instance to check whether our underlying type is a reference type.
9365
9366 2004-09-01  Martin Baulig  <martin@ximian.com>
9367
9368         * metadata.c (mono_type_size): If we're a generic instance, call
9369         mono_class_value_size() for value types.
9370
9371 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9372
9373         * marshal.c: Implement more custom marshalling functionality. Fixes
9374         #64915.
9375
9376 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9377
9378         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9379
9380 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9381
9382         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9383
9384         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9385
9386         * icall.c: Fix some warnings.
9387
9388         * threads.c (abort_appdomain_thread): Fix unref errors.
9389         (mono_thread_current): Fix THREAD_DEBUG define.
9390
9391 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9392
9393         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9394
9395         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9396
9397 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9398
9399         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9400         string arrays.
9401
9402 2004-08-28  Martin Baulig  <martin@ximian.com>
9403
9404         * metadata.c
9405         (mono_metadata_generic_inst_is_valuetype): New public function.
9406
9407         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9408         mono_metadata_generic_inst_is_valuetype() if we're a generic
9409         instance to check whether our underlying type is a valuetype.
9410
9411 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9412
9413         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9414         #63768.
9415
9416 2004-08-25  Martin Baulig  <martin@ximian.com>
9417
9418         * loader.c (mono_get_method_from_token): Abstract methods can also
9419         be generic and thus have type parameters.
9420
9421         * metadata-internals.h
9422         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9423
9424         * reflection.c (mono_image_get_generic_param_info): Don't create a
9425         metadata row, just add an entry to the `gen_params' array.
9426         (build_compressed_metadata): Sort the `gen_params' array and then
9427         actually create the metadata.
9428
9429 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9430
9431         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9432
9433 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9434
9435         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9436
9437 2004-08-24  Martin Baulig  <martin@ximian.com>
9438
9439         * class.cs (mono_class_is_subclass_of): Like an interface, a
9440         generic instance also derives from System.Object.
9441
9442 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9443
9444         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9445         custom modifiers to be in any order. Fixes #61990.
9446
9447 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9448
9449         * object.c: Register mono_object_new_fast icall.
9450         
9451         * object.c (mono_class_get_allocation_ftn): Return to calling
9452         mono_object_new_fast, since it seems faster to compute the object 
9453         size in unmanaged code than passing it as a parameter.
9454
9455         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9456
9457         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9458         this function with Boehm as the oom handler, so we don't have to check
9459         the result of GC_malloc.
9460
9461         * object.c: Remove checks for oom.
9462
9463         * object.h object.c (mono_class_get_allocation_ftn): New function to
9464         return the icall which can be used to allocate an instance of a given
9465         class. 
9466
9467         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9468
9469         * class-internals.h: Add 'enabled' field.
9470
9471 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9472
9473         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9474
9475 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9476         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9477         value 0x0010.
9478
9479 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9480
9481         * appdomain.c: use the Tls function for appdomain too,
9482         at Zoltan's request. Actually return in mono_context_get
9483
9484         * appdomain.c, profiler.c, threads.c: use __thread
9485
9486 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9487
9488         * appdomain.c threads.c: Call GC_CreateThread on windows.
9489
9490         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9491         multiple libraries since this don't work on windows.
9492
9493 2004-08-18  Martin Baulig  <martin@ximian.com>
9494
9495         * class-internals.h
9496         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9497         MonoMethodHeader.
9498
9499         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9500         MonoMethodNormal since we also need it for abstract and interface
9501         methods.
9502
9503         * reflection.c
9504         (build_compressed_metadata): Sort the GenericParam table.
9505         (mono_image_create_token): Added `gboolean create_methodspec'
9506         argument; this is false when generating a MethodImpl token.
9507         (reflection_methodbuilder_to_mono_method): Abstract and interface
9508         methods may also have generic parameters.
9509
9510 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9511
9512         * appdomain.c: thread local alloc
9513
9514 2004-08-17  Martin Baulig  <martin@ximian.com>
9515
9516         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9517
9518         * icall.c
9519         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9520         argument.
9521
9522         * class.c (mono_type_get_full_name): New public function.
9523         (mono_type_get_name): Don't include the type arguments.
9524
9525 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9526
9527         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9528         for inclusion into the mono executable.
9529
9530 2004-08-16  Martin Baulig  <martin@ximian.com>
9531
9532         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9533         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9534
9535 2004-08-14  Martin Baulig  <martin@ximian.com>
9536
9537         * class.c (dup_type): Also copy the `byref' field.
9538
9539 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9540
9541         * reflection.c (create_dynamic_mono_image): Revert the last change 
9542         since it breaks bootstrap.
9543
9544 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9545
9546         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9547
9548         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9549         not free them with g_free.
9550
9551 2004-08-11  Martin Baulig  <martin@ximian.com>
9552
9553         * reflection.c (mono_reflection_setup_internal_class): Also call
9554         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9555
9556 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9557
9558         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9559         called during default (first) AppDomain creation. Keep track of
9560         Evidence when loading assemblies.
9561
9562 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9563
9564         * opcodes.c, opcodes.h: reduce runtime relocations.
9565
9566 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9567
9568         * culture-info.h, locales.c: fixes and chages to sue the new
9569         optimized format of the locale data.
9570         * culture-info-tables.h: regenerated.
9571
9572 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9573         
9574         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9575
9576 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9577
9578         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9579         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9580         * domain-internals.h: icall declaration.
9581         * icall.c: icall registration.
9582         * object-internals.h: New fields in MonoAssembly for CAS.
9583
9584 2004-08-05  Duncan Mak  <duncan@ximian.com>
9585
9586         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9587         CEE_LDELEM_ANY.
9588
9589 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9590
9591         * reflection.c: fix to deal with object[] arrays in custom ctors
9592         (bug #62550).
9593
9594 2004-08-05  Martin Baulig  <martin@ximian.com>
9595
9596         * class.c (mono_class_array_element_size): Added support for
9597         generic instances and correctly handle "recursive" types.
9598
9599 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9600
9601         * assembly.c: Fix warnings.
9602
9603 2004-08-04  Martin Baulig  <martin@ximian.com>
9604
9605         * class.c
9606         (mono_type_get_name_recurse): Added `gboolean include_arity'
9607         argument specifying whether or not we should include the generic
9608         arity in the type name.
9609         (_mono_type_get_name): New static function.
9610         (mono_class_setup_vtable): If we're a generic instance, don't
9611         include the generic arity in the names of explicit method
9612         implementations.        
9613
9614 2004-08-03  Martin Baulig  <martin@ximian.com>
9615
9616         * class.c (mono_type_get_name_recurse): Enclose the generic type
9617         arguments in `<', '>'.
9618
9619 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9620
9621         * gc.c: make GC warning messages use the trace API, they are just
9622         noise to most of the users.
9623
9624 2004-08-03  Martin Baulig  <martin@ximian.com>
9625
9626         * debug-mono-symfile.c (read_string): Correctly read the string.
9627
9628 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9629
9630         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9631         
9632         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9633         icalls.
9634         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9635
9636 2004-07-30  Martin Baulig  <martin@ximian.com>
9637
9638         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9639         Reflect latest symbol writer changes.   
9640
9641 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9642
9643         * object.c: always create an object if null is passed
9644         to Invoke() where a valuetype is expected.
9645
9646 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9647
9648         * marshal.c (mono_marshal_init): make managed
9649         signatures match native ones better for 64bits.
9650
9651 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9652
9653         * appdomain.c: hack to build correctly the private bin path on windows.
9654         Fixes bug #61991.
9655
9656 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9657
9658         * assembly.c: Load mscorlib from the correct framework directory
9659           (mono/<version>/mscorlib.dll).
9660         * appdomain.h: Added prototypes for new functions.
9661         * internals.h: Added some prototypes.
9662         * domain.c: When initializing the runtime, get from the executable and
9663           the configuration files the runtime version that the app supports.
9664           Added support methods for reading app.exe.config. Added list of versions
9665           supported by the JIT. Added two new methods: mono_init_from_assembly,
9666           which initializes the runtime and determines the required version from
9667           the provided exe file, and mono_init_version, which initializes
9668           the runtime using the provided version.
9669         * icall.c: Get machine.config from version-specific directory.
9670         * reflection.c: When generating an image, embed the version number
9671           of the current runtime.
9672
9673 2004-07-28  Dick Porter  <dick@ximian.com>
9674
9675         * socket-io.c
9676         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9677         returned sockaddr size before creating the remote address object.
9678         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9679         61608.
9680
9681 2004-07-28  Dick Porter  <dick@ximian.com>
9682
9683         * locales.c (string_invariant_compare_char): Fix invariant char
9684         compares between upper and lower cases.  Fixes bug 61458.
9685
9686 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9687         
9688         * marshal.c: actually cache stelem.ref wrappers.
9689         
9690 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9691
9692         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9693         sections and remove the mono_cli_rva_map () function.
9694
9695 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9696
9697         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9698         by Geoff Norton (<gnorton@customerdna.com>).
9699
9700 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9701
9702         * class.c: fix class loads for pointer types (typeof(int) !=
9703         typeof(int*)).
9704
9705 2004-07-27  Martin Baulig  <martin@ximian.com>
9706
9707         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9708         reading the debugging information from an external ".mdb" file.
9709
9710 2004-07-24  Martin Baulig  <martin@ximian.com>
9711
9712         * reflection.c (mono_image_get_type_info): Only write a class
9713         layout entry if we actually have a size or a packing size.
9714
9715 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9716
9717         * reflection.c (type_get_fully_qualified_name): 
9718         insert cast to get type checking of ?: with non-gcc compilers
9719
9720 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9721
9722         * rand.c: use g_getenv for both lookups of
9723         MONO_EGD_SOCKET
9724
9725 2004-07-17  Martin Baulig  <martin@ximian.com>
9726
9727         * reflection.c (mono_reflection_bind_generic_method_parameters):
9728         Set `gmethod->reflection_info'.
9729
9730 2004-07-17  Martin Baulig  <martin@ximian.com>
9731
9732         * class.c (mono_class_create_from_typedef): Insert the newly
9733         created class into the hash table before computing the interfaces
9734         since we could be called recursively.
9735
9736 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9737
9738         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9739         function to implement stelem.ref in managed code
9740         * class-internals.h, debug-helpers.c: a new wrapper type
9741         for the above.
9742
9743 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9744
9745         * gc.c: allow GC handles to work even when no GC is compiled in.
9746         Fix part of bug #61134 (GetAddrOfPinnedObject).
9747
9748 2004-07-13  Peter Williams  <peter@newton.cx>
9749  
9750         * process.c (complete_path): Make sure we don't attempt to execute
9751         directories.
9752  
9753 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9754
9755         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9756           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9757           and will add/subtract the hour if needed
9758
9759 2004-07-12  Martin Baulig  <martin@ximian.com>
9760
9761         * reflection.c (mono_field_get_object): If we have
9762         `field->generic_info', take the attributes from
9763         `field->generic_info->generic_type'.    
9764
9765 2004-07-12  Martin Baulig  <martin@ximian.com>
9766
9767         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9768         This function must be called before initializing the runtime.
9769         (mono_debug_init_1): New function; call this after initializing
9770         the runtime, but before loading the assembly.  It tells the
9771         debugger to load corlib and the builtin types.
9772
9773         * mono-debug-debugger.c: Did some larger changes in the debugging
9774         code; support recursive class declarations, make sure we actually
9775         add all classes.
9776
9777 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9778
9779         * debug-helpers.c: undo my previous patch and fixed the real issue in
9780         ../mini/exceptions-x86.c
9781
9782 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9783
9784         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9785         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9786         called from other .cctors.
9787
9788 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9789
9790         * loader.c: Removed the mono_loader_wine_init hack now that we are
9791         doing a managed version of Windows.Forms.
9792
9793 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9794
9795         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9796         threadpool.c, threads.c: remove static data from rootset.
9797
9798 2004-07-09  Dick Porter  <dick@ximian.com>
9799
9800         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9801         Don't do any more processing if the matched length was 0.  It was
9802         increasing the size of the string before.  Fixes bug 61167.
9803
9804 2004-07-09  Dick Porter  <dick@ximian.com>
9805
9806         * socket-io.h:
9807         * socket-io.c
9808         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9809         Add support for SO_PEERCRED if its available.
9810
9811 2004-07-09  Peter Bartok <pbartok@novell.com>
9812         * loader.c: winelib.exe.so error message is now only displayed if
9813         MONO_DEBUG is set. To help us avoid questions when people are trying
9814         out the new Managed.Windows.Forms.
9815
9816 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9817
9818         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9819         for isinst and castclass wrappers.
9820
9821         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9822         to libmetadata from the JIT, so they could be used by the marshalling
9823         code and the interpreter.
9824
9825         * marshal.c: Register marshalling related JIT icalls here instead of
9826         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9827         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9828
9829         * metadata.h: Remove unneeded marshalling conversions.
9830
9831         * opcodes.c: Update for new opcodes.
9832         
9833 2004-07-08  Martin Baulig  <martin@ximian.com>
9834
9835         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9836         (mono_debug_get_domain_data): Make this function static.
9837
9838 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9839
9840         * gc.c, object.h: add nice GC handle API for embedders.
9841
9842 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9843
9844         * reflection.c: more changes for the new api
9845
9846         * object.c: When we reflect on a field w/ a constant value, it
9847         will not have a memory location, so we must access metadata. Also,
9848         allow easier reading of strings so that we can read them from
9849         the constant data.
9850
9851         * class.c (mono_class_layout_fields): no need for literal fields here.
9852
9853         * class-internals.h: api changes for const fields
9854
9855         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9856
9857 2004-07-06  Martin Baulig  <martin@ximian.com>
9858
9859         * mono-debug.h: Increment version number to 44.
9860
9861         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9862         now a gpointer, rewrote this whole method.
9863
9864         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9865         function.  Add information about the wrapper in a new "misc table".
9866
9867         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9868         for the new misc table.
9869
9870 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9871
9872         * metadata-internals.h image.c: Add a cache for helper signatures.
9873
9874         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9875
9876 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9877
9878         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9879         delegates from a delegate. Fixes #61033.
9880         
9881         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9882         marshalling of stringbuilder arrays. Fixes #59900.
9883
9884 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9885
9886         * icall.c: Add EnumBuilder:setup_enum_type icall.
9887
9888 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9889
9890         * icall.c: Added a new icall for the property version of
9891         OffsetOfStringData.
9892
9893 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9894
9895         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9896         it has a constant size across platforms.
9897
9898         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9899         stack trace.
9900
9901 2004-06-29  Martin Baulig  <martin@ximian.com>
9902
9903         * mono-debug.c (mono_debug_add_method): Protect the whole function
9904         in mono_debugger_lock(), not just parts of it.
9905
9906 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9907
9908         * reflection.c: make sure padding bytes in heaps are zeroed.
9909
9910 2004-06-24  David Waite  <mass@akuma.org>
9911
9912         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9913         image.c, loader.c, locales.c, marshal.c, metadata.c,
9914         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9915         string-icalls.c, threads.c: change to C90-style comments from C99 /
9916         C++ -style
9917
9918 2004-06-24  Dick Porter  <dick@ximian.com>
9919
9920         * threads.c
9921         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9922         return createdNew.  Fixes bug 60412.
9923
9924         * threads-types.h: 
9925         * icall.c: Add createdNew parameter to CreateMutex icall
9926
9927 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9928
9929         * reflection.c, object-internals.h: save default value in params.
9930
9931 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9932
9933         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9934         no need to build a new path combining that with the application base.
9935         Fixes bug #60442.
9936
9937 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9938
9939         * reflection.c: fixed minor standard compliance issues.
9940
9941 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9942
9943         * reflection.c: fixed issue with encoding some custom attributes
9944         (arrays in properties and fields, bug #60411).
9945
9946 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9947
9948         * reflection.c: fix start address when copying the public key token.
9949
9950 2004-06-23  Martin Baulig  <martin@ximian.com>
9951
9952         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
9953         the `exc' object in a static object to put it into the GC's root set.
9954
9955 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
9956
9957         * reflection.c: make mono_reflection_setup_internal_class ()
9958         callable a second time to setup a new parent class.
9959
9960 2004-06-23  Dick Porter  <dick@ximian.com>
9961
9962         * threads.c: Check for WAIT_IO_COMPLETION return values.
9963
9964 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
9965
9966         * appdomain.c: Removed the g_free on the public key token. Now copy 
9967         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
9968         * assembly.c: Added public key token string value when loading 
9969         assemblies. Fix bug #60439.
9970         * icall.c: Added missing informations (like public key) in 
9971         GetReferencedAssemblies. Fix #60519.
9972         * image.h: Changed definition for public key token from const char*
9973         public_tok_value to guchar public_key_token [17];
9974         * reflection.c: Updated for changes to public key token.
9975
9976 2004-06-22  Lluis Sanchez Gual
9977
9978         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
9979         for the field in base classes.
9980
9981 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9982
9983         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
9984         mark headers as not supported, they are installed only for use by the
9985         debugger.
9986
9987 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
9988
9989         * *.c, *.h: avoid namespace pollution in public headers.
9990
9991 2004-06-21  Martin Baulig  <martin@ximian.com>
9992
9993         * exception.c (mono_get_exception_security): It's in
9994         "System.Security", not in "System".
9995
9996         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
9997         the exception classes.
9998
9999 2004-06-21  Martin Baulig  <martin@ximian.com>
10000
10001         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10002         Protect the exception object from being finalized.
10003
10004 2004-06-21  Martin Baulig  <martin@ximian.com>
10005
10006         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10007         public function.
10008
10009 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10010
10011         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10012         if it was not loaded before. Fix parts of #60439.
10013
10014 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10015
10016         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10017         code that was broken since Ben's change: wrappers are now
10018         dependent on the method signature only again.
10019
10020 2004-06-21  Martin Baulig  <martin@ximian.com>
10021
10022         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10023         added interface support.
10024
10025 2004-06-21  Martin Baulig  <martin@ximian.com>
10026
10027         * class.c (mono_vtable_get_static_field_data): New public method.
10028
10029 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10030
10031         * filewatcher.c : Windows build fix to be compliant with API changes.
10032
10033 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10034
10035         * class.h, class.c: more accessors.
10036         * metadata.h, metadata.c: prepare for hiding MonoType and
10037         MonoMethodSignature: people should use the accessors from now on
10038         outside of the tree.
10039
10040 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10041
10042         * *.c, *.h: more API cleanups.
10043
10044 2004-06-18  Jackson Harper  <jackson@ximian.com>
10045
10046         * assembly.c: Trace loading assemblies.
10047         * loader.c: Trace loading native libraries.
10048         * mono-config.c: Trace loading config files.
10049         
10050 2004-06-18  Dick Porter  <dick@ximian.com>
10051
10052         * locales.c: Tell ICU the lengths of strings, it can cope with
10053         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10054
10055 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10056
10057         * image.c: swapped name/filename;
10058
10059 2004-06-18  Martin Baulig  <martin@ximian.com>
10060
10061         * mono-debug-debugger.c (write_class): Write the parent class at
10062         the end of the header.
10063
10064 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10065
10066         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10067
10068 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10069
10070         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10071         (bundle_obj): New conditional define.
10072         (BUILT_SOURCES): Remove.
10073         ($(bundle_srcs)): Make parallel-make safe.
10074         (libmonoruntime_la_LIBADD): Make unconditional.
10075         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10076         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10077
10078 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10079
10080         * culture-info-tables.h: It was inconsistent with the latest
10081           supp info files.
10082
10083 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10084
10085         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10086         be loaded.
10087
10088         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10089         with gcc 2.95.
10090
10091 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10092
10093         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10094         cleaned up public header threads.h.
10095
10096 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10097
10098         * Makefile.am, *.c, *.h: more API cleanups.
10099
10100 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10101
10102         * Makefile.am: removed monosn from compilation.
10103         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10104         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10105         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10106         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10107         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10108         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10109
10110 2004-06-15  Jackson Harper  <jackson@ximian.com>
10111
10112         * assembly.c: Make locales lower case when searching the GAC for
10113         assemblies. gacutil will always make locales lowercase when
10114         installing so this effectively makes them case insensitive.
10115         
10116 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10117
10118         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10119         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10120           parameter which allows to choose whether the wait can be interrupted or 
10121           not. Also added the method mono_monitor_enter(), which locks the monitor
10122           using an infinite wait and without allowing interruption.
10123           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10124           interrupted.
10125         * object.h: Added new fields in MonoThread. suspend_event holds the event
10126           used to susped/resume the thread. synch_lock is the lock object to use for
10127           modifying the thread state.
10128         * threads.c: Use the new synch_lock object for locking, instead of "this",
10129           which can generate deadlocks.
10130           Moved thread state change in Thread.Sleep and Thread.Join from managed
10131           to unmanaged code. This avoids a deadlock when the thread was suspended
10132           just after acquiring the thread lock.
10133           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10134           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10135           which is not fully implemented in the io-layer.
10136         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10137
10138 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10139
10140         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10141         threads-types.h: more API cleanups.
10142
10143 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10144
10145         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10146         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10147         threadpool.c, threads.c: first pass at the exported API cleanup.
10148
10149 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10150
10151         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10152
10153 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10154
10155         * icall.c: added internalGetHome.
10156
10157 2004-06-14  Dick Porter  <dick@ximian.com>
10158
10159         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10160         possible to return successfully when '.' or '..' were the only
10161         entries in a directory, but were skipped.  The MonoIOStat was not
10162         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10163         Fixes bug 59574.
10164
10165 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10166
10167         * reflection.c: make binaries run on .Net 1.1 by default.
10168
10169 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10170
10171         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10172
10173 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10174
10175         * marshal.c: keep track of struct size with explicit layout
10176         (bug #59979).
10177
10178 2004-06-12  Martin Baulig  <martin@ximian.com>
10179
10180         * mono-debug-debugger.c: Comment out a debugging g_message().
10181
10182 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10183
10184         * reflection.c, reflection.h: do not free custom attrs that are cached.
10185         * icall.c: use braces to make code clearer.
10186
10187 2004-06-11  Martin Baulig  <martin@ximian.com>
10188
10189         * class.h (MonoInflatedField): New type.
10190         (MonoClassField): Replaced `MonoType *generic_type' with
10191         `MonoInflatedField *generic_info'.
10192
10193         * icall.c
10194         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10195
10196 2004-06-11  Martin Baulig  <martin@ximian.com>
10197
10198         * reflection.c (mono_image_create_method_token): Correctly encode
10199         varargs methods.
10200
10201 2004-06-11  Martin Baulig  <martin@ximian.com>
10202
10203         * metadata.c (mono_metadata_parse_method_signature): When parsing
10204         a MethodDef which has VarArgs, also set sentinelpos if we don't
10205         have any parameters.
10206
10207 2004-06-11  Martin Baulig  <martin@ximian.com>
10208
10209         * verify.c (mono_method_verify): In CEE_CALL, use
10210         mono_method_get_signature() to get the method's signature, unless
10211         we're a PInvoke method.
10212
10213 2004-06-10  Jackson Harper  <jackson@ximian.com>
10214
10215         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10216         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10217         logical name as the supplied path is just a prefix to the gac not
10218         the direct path to it.
10219         
10220 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10221
10222         * reflection.c: make the token for a created method match
10223         the token of the MethodBuilder it was created from
10224         (IKVM requires this behaviour now).
10225
10226 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10227
10228         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10229         reflection.c, socket-io.c: leak fixes.
10230
10231 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10232
10233         * icall.c: handle sentinel pos in vararg methods in position different
10234         from 0.
10235
10236 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10237
10238         * culture-info-tables.h: freshly generated.
10239
10240 2004-06-09  Martin Baulig  <martin@ximian.com>
10241
10242         * loader.c (mono_get_method_constrained): Call `mono_class_init
10243         (constrained_class)'.   
10244
10245 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10246
10247         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10248         any methods. Fixes #59629.
10249
10250 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10251
10252         * culture-info-tables.h: reflecting locale-builder updates.
10253
10254 2004-06-08  Dick Porter  <dick@ximian.com>
10255
10256         * object.h:
10257         * locales.c: Fixed compile warnings, including a real bug in
10258         CompareInfo_internal_compare.
10259         
10260 2004-06-08  Dick Porter  <dick@ximian.com>
10261
10262         * locales.c
10263         (ves_icall_System_Globalization_CompareInfo_internal_index):
10264         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10265         Double-check the resuls of usearches, because ICU currently
10266         ignores most of the collator settings here.  Fixes bug 59720.
10267         
10268 2004-06-08  Dick Porter  <dick@ximian.com>
10269
10270         * locales.c
10271         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10272         Fix memory leak and segfault-causing typo.  No idea how this one
10273         lasted so long without being noticed.
10274
10275 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10276
10277         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10278         any methods. Fixes #59629.
10279
10280 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10281
10282         * assembly.c:
10283         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10284         own the critical section before). Removed dead code (that's done
10285         in the preload hook).
10286
10287         (mono_assembly_load_with_partial_name): call the preload hook.
10288
10289 2004-06-08  Martin Baulig  <martin@ximian.com>
10290
10291         * metadata.c (mono_metadata_signature_alloc): Default
10292         `sentinelpos' to -1.
10293
10294         * reflection.c (mono_image_get_array_token): Likewise.
10295
10296 2004-06-08  Martin Baulig  <martin@ximian.com>
10297
10298         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10299
10300         * metadata.c (mono_metadata_parse_method_signature): When parsing
10301         a MethodDef which has VarArgs, set sentinelpos.
10302
10303         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10304         `gint16' since we're using -1 for non-varargs methods.
10305
10306         * reflection.c
10307         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10308         (method_encode_signature): Added varargs support.
10309         (method_builder_encode_signature): Likewise.
10310         (mono_image_get_varargs_method_token): New static method.
10311         (mono_image_create_method_token): New public method; this is
10312         called via an icall instead of mono_image_create_token() when
10313         calling a varargs method.       
10314
10315 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10316
10317         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10318
10319 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10320
10321         * culture-info-tables.h : Reflecting the latest locale-builder that
10322           fixed empty array representation ({} to {0}).
10323
10324 2004-06-07  Jackson Harper  <jackson@ximian.com>
10325
10326         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10327         looking up extra gac paths. This allows MONO_GAC_PATH to act
10328         exactly like a prefix.
10329         
10330 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10331
10332         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10333         type name before modifying it. Fixes #59405.
10334
10335 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10336
10337         * culture-info.h: added fields for "all datetime patterns".
10338         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10339           _construct_datetime_format ()): fill xxx_patterns fields.
10340         * object.h: added fields for "all datetime patterns" to
10341           MonoDateTimeFormatInfo.
10342         * culture-info-tables.h: reflecting locale-builder updates.
10343
10344 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10345
10346         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10347         the event has no add and remove methods. Fixes #59629.
10348
10349 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10350
10351         * object.c: Fixed possible integer overflow when allocating large
10352         strings.
10353
10354 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10355
10356         * culture-info-tables.h: reflecting locale-builder updates.
10357
10358 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10359
10360         * culture-info-tables.h: reflecting locale-builder updates.
10361
10362 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10363
10364         * culture-info-tables.h: reflecting locale-builder updates.
10365
10366 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10367
10368         * threads.c: Made Thread.Sleep abortable.
10369
10370 2004-06-02  Martin Baulig  <martin@ximian.com>
10371
10372         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10373
10374         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10375
10376 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10377
10378         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10379
10380 2004-05-30  Jackson Harper  <jackson@ximian.com>
10381
10382         * reflection.c: Do not hardcode assembly versions or public key
10383         tokens anymore. All of this except the corlib section was dead
10384         code anyways.
10385         
10386 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10387
10388         * object.c (mono_runtime_invoke_array): Automatically create boxed
10389         objects for byref valuetypes if needed. Fixes #59300.
10390         
10391         * object.c (mono_method_return_message_restore): Handle 
10392         MONO_TYPE_OBJECT as well.
10393
10394 2004-05-28  Jackson Harper  <jackson@ximian.com>
10395
10396         * reflection.c: The modified type encoding was causing build
10397         problems. Reverted for now.
10398         
10399 2004-05-28  Jackson Harper  <jackson@ximian.com>
10400
10401         * reflection.c/h: Take an assembly ref so that we dont create
10402         fully qualified names when encoding types in the same assembly as
10403         the custom attribute being emitted.
10404         * appdomain.c: Increment version number.
10405         
10406 2004-05-26  Duncan Mak  <duncan@ximian.com>
10407
10408         * icall.c
10409         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10410         Set the full version number (major, minor, build, revision).
10411
10412 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10413
10414         * marshal.c (emit_struct_conv): increment src/dst after blit
10415         (mono_marshal_get_managed_wrapper,
10416         mono_marshal_get_native_wrapper): make sure we have marshalling
10417         info before marshalling params (info computation affects
10418         blittable)
10419
10420         * class.c (class_compute_field_layout): correctly deal with
10421         blittable
10422         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10423         value types (as per what windows dows by default)
10424         (mono_class_setup_mono_type): System.ValueType is blittable
10425         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10426         blittable
10427
10428         * marshal.c (mono_marshal_load_type_info): flag types  as
10429         non-blittable if the native layout doesn't match the managed
10430         layout
10431
10432 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10433
10434         * appdomain.c: don't add stuff in the private search path that is
10435         above the application base. If application base is not set, there's
10436         no private search path.
10437
10438 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10439
10440         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10441         byref struct arguments in native->managed marshalling.
10442
10443 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10444
10445         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10446         cache methods using signature (special case for methods
10447         that are value type or string class)
10448         
10449         * image.c (mono_image_close): clean up allocated GSList's
10450         in runtime_invoke_cache.
10451
10452 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10453
10454         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10455         there's no MONO_CFG_DIR environment variable defined.
10456
10457 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10458
10459         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10460
10461 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10462
10463         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10464           is interrumped.
10465         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10466           before waiting for it, and call CloseHandle after the wait to unref it.
10467           This will make sure that handles are not disposed too early.
10468
10469 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10470
10471         * appdomain.c:
10472         * appdomain.h:
10473         * icall.c: removed
10474         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10475         needed now.
10476
10477         * object.c: se the application_base only for the domain that runs
10478         Main. Fixes bug #59216,
10479
10480 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10481
10482         * appdomain.c:
10483         * object.c: only the domain in which Main is run have
10484         SetupInformation.ConfigurationFile set, so moved a few lines from
10485         appdomain.c to object.c.
10486
10487 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10488
10489         * appdomain.c: we tried to load [name].(dll|exe), but according
10490         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10491         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10492         There's a test case attached to bug #58922.
10493
10494 2004-05-27  Dick Porter  <dick@ximian.com>
10495
10496         * icall.c:
10497         * file-io.c: Implemented icalls for locking and unlocking regions
10498         in a file.
10499         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10500         FALSE on error (fixes both compiler warning and real bug.)
10501
10502 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10503
10504         * culture-info-tables.h: reflecting locale-builder updates.
10505
10506           (Added missing ChangeLog entry for 05/26)
10507
10508 2004-05-27  Jackson Harper  <jackson@ximian.com>
10509
10510         * locales.c: Fix some cut and paste errors.
10511         
10512 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10513
10514         * mono-config.c: set the correct path for config. directory on windows.
10515
10516 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10517
10518         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10519           on win32.
10520
10521 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10522
10523         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10524         from pinvoke functions.
10525         
10526         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10527
10528 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10529
10530         * culture-info-tables.h: reflecting locale-builder updates.
10531
10532 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10533
10534         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10535         #59086.
10536
10537 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10538
10539         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10540         * icall.c: Modified icalls for RNG.
10541         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10542         Windows (CryptoAPI).
10543
10544 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10545
10546         * locales.c: Fix build.
10547
10548 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10549
10550         * culture-info-tables.h: reflecting locale-builder updates.
10551
10552 2004-05-25  Jackson Harper  <jackson@ximian.com>
10553
10554         * locales.c: When creating the current culture use the $LANGs
10555         specific culture. So DateTimeFormat and NumberFormat entries are created.
10556         
10557 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10558
10559         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10560         a char array as parameter.
10561
10562 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10563
10564         * image.c: In mono_image_open(), always use an absolute path name to
10565           look for already loaded images.
10566
10567 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10568
10569         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10570         missing in the windows build (like older cygwin include files).
10571
10572 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10573
10574         * icall.c: Fixed check for possible integer overflow in Buffer_
10575         BlockCopy icall. Replaced comments style // by /* */.
10576
10577 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10578
10579         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10580         
10581         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10582         check after MONO_VTADDR. Fixes pinvoke2.exe.
10583
10584         * marshal.h marshal.c metadata.h: Add beginnings of support for
10585         ftnptr -> delegate marshalling.
10586
10587 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10588
10589         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10590         * threads.c: Fix warnings.
10591
10592 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10593
10594         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10595         * icall.c: Registered icalls for Suspend and Resume.
10596         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10597           Thread.Abort.
10598         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10599         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10600         * process.c: Use WaitForSingleObjectEx.
10601         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10602           checkpoints.
10603         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10604           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10605           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10606           background threads. Added basic support for Abort in Windows.
10607           Start new threads using a managed delegate invoke wrapper. This wrapper
10608           has an interruption checkpoint that is needed since an interruption
10609           can be requested before the thread leaves the unmanaged code that starts 
10610           the thread.
10611         * marshal.c: Added interruption checkpoint after every native call, and
10612           also before managed calls for wrappers called from unmanaged code to
10613           go into managed code.
10614         * object.h: Added new field in MonoThread to keep track of interruption
10615           requests.
10616
10617 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10618
10619         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10620         calls.
10621
10622 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10623
10624         * appdomain.c:
10625         * assembly.c:
10626         * gc.c:
10627         * locales.c:
10628         * mono-config.c:
10629         * rand.c: getenv -> g_getenv (windows!)
10630
10631         * process.c: complete_path is also used on non-windows platforms.
10632
10633 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10634
10635         * icall.c: new signature for Process_Start.
10636
10637         * process.[ch]: new signature for Process_Start. If we're on windows
10638         and UseShellExecute is false, we have to search for the program by
10639         ourselves if we don't get a full path.
10640
10641 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10642
10643         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10644         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10645
10646 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10647
10648         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10649         Fixes bug #58373.
10650
10651 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10652
10653         * process.c: use double quotes to quote program name and arguments on
10654         windows. Fixes bug #58575.
10655
10656 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10657
10658         * file-io.c: don't return "." and ".." when using windows Find*File.
10659
10660 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10661
10662         * marshal.c: Don't pass wrappers to message init because method 
10663         addressed used to lookup metadata. part of remoting[2|3] fix.
10664
10665 2004-05-15  Jackson Harper  <jackson@ximian.com>
10666
10667         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10668         path is essentially the same as MONO_PATH except that it points to
10669         GACs instead of lib directories.
10670         * loader.h: The user gac is gone so we dont need function to
10671         enable/disable it.
10672         * mono-config.c: user gac option is now gone.
10673         
10674 2004-05-15  Jackson Harper  <jackson@ximian.com>
10675
10676         * culture-info.h: Make defines more consistent, add calendar data
10677         to the culture info table.
10678         * culture-info-tables.h: Add basic calendar data. Basically
10679         everyone gets default gregorian until all the data is
10680         updated.
10681         * locales.c: Use the new consistent defines. Set calendar data for
10682         culture info objects.
10683         * object.h: add a field for calendar data to CultureInfo
10684         
10685 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10686
10687         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10688         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10689         a signature.
10690         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10691         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10692         an extra param that is the pointer of the method to invoke. The IL for
10693         the invoke method is no longer specific to the method, but to the
10694         signature of the method. Thus, we can share the same code for multiple
10695         methods. This reduces the number of methods that have to be compiled.
10696
10697 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10698
10699         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10700
10701         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10702
10703         * icall.c: Optimize Buffer.BlockCopy.
10704
10705 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10706
10707         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10708         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10709         quote). Changed them to "MMMM yyyy".
10710
10711 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10712
10713         * rand.c
10714         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10715
10716 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10717
10718         * reflection.h: Updated after changes to managed structures.
10719
10720         * appdomain.c: Bump corlib version.
10721
10722 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10723
10724         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10725         windows.
10726
10727 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10728
10729         * Makefile.am: link to ../os/libmonoos.la on windows.
10730
10731         * assembly.c:
10732                 -If MONO_DEBUG, warn about non-existing directories in
10733                 MONO_PATH.
10734                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10735                 compile time variable.
10736                 -Removed init_default_path and call mono_set_rootdir from
10737                 libmonoos.a instead (windows only).
10738
10739         * assembly.h: declare mono_assembly_getrootdir().
10740
10741         * domain.c:
10742         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10743
10744         * loader.c: s/getenv/g_getenv/
10745
10746 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10747
10748         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10749
10750         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10751
10752         * metadata.h: Add new marshalling conversions.
10753
10754         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10755         function.
10756
10757         * reflection.c (mono_reflection_get_type): Lookup the type in all
10758         modules of a multi-module assembly. Fixes #58291.
10759
10760 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10761
10762         * threads.c: Before aborting a background, set the StopRequested
10763         state.  This avoids throwing the Abort exception.
10764         In mono_thread_manage, don't continue with the shutdown until all
10765         aborted threads have actually stopped.
10766
10767 2004-05-10  Jackson Harper  <jackson@ximian.com>
10768
10769         * locales.c: Remove the modifier from culture names.
10770         
10771 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10772
10773         * Makefile.am: monosn is not installed any more. It has been deprecated
10774         in favor of sn.
10775
10776 2004-05-07  Jackson Harper  <jackson@ximian.com>
10777
10778         * locales.c
10779         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10780         Fix array construction, add bailout if the length is 0.
10781
10782 2004-05-07  Dick Porter  <dick@ximian.com>
10783
10784         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10785         machine doesn't have a DNS entry.  Patch by Urs Muff
10786         (umuff@quark.com), fixes bug 57928.
10787
10788 2004-05-06  Jackson Harper  <jackson@ximian.com>
10789
10790         * reflection.c: Handle null PublicTokens properly. alloc mem for
10791         assembly names culture so we dont crash when freeing it.
10792         
10793 2004-05-06  Jackson Harper  <jackson@ximian.com>
10794
10795         * assembly.c: Check the usergac when loading with partial names.
10796         
10797 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10798
10799         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10800         does nothing for now (not required for Linux/Windows) but the class
10801         library can call it (and a newer or modified runtime could need it).
10802         * icall.c: Registred icall.
10803
10804 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10805
10806         * loader.c: prints a message on module loading error we set MONO_DEBUG
10807         environment variable.
10808
10809 2004-05-05  Jackson Harper  <jackson@ximian.com>
10810
10811         * appdomain.c: Handle PublicKeyToken=null properly.
10812         
10813 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10814
10815         * environment.c|h: Added icall ves_icall_System_Environment_
10816         GetOSVersionString to get the current OS version as a string.
10817         * icall.c: Registred icall.
10818
10819 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10820
10821         * object.c: in mono_object_get_virtual_method(), take into account that
10822         non-virtual methods don't have a slot in the vtable. Check needed when
10823         the object is a proxy.
10824
10825 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10826
10827         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10828         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10829
10830         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10831
10832         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10833         passed when a valuetype is expected.
10834
10835         * object.c (mono_unhandled_exception): Only set the exit code if the
10836         exception happens in the main thread. Fixes thread5.exe.
10837
10838         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10839         invalid names. Fixes #58047.
10840
10841 2004-05-03  Jackson Harper  <jackson@ximian.com>
10842
10843         * assembly.c: This line was committed accidently and is unneeded.
10844         
10845 2004-05-03  Jackson Harper  <jackson@ximian.com>
10846
10847         * icall.c: Add new icall for Assembly::LoadWithPartialName
10848         * assembly.c/.h: new function that probes the GAC to load partial
10849         assembly names by Paolo Molaro.
10850         
10851 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10852
10853         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10854         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10855         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10856         full type name.
10857
10858 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10859
10860         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10861         * reflection.c: fix bug when parsing a full type name and Version is not
10862         the last thing in the string.
10863
10864 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10865
10866         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10867         crashes when it is freed.
10868
10869 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10870
10871         * assembly.c: print the compat warning to stderr.
10872
10873 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10874
10875         * assembly.c (mono_assembly_load_references): Add a compatibility
10876         hack to run old applications that might be still referencing the
10877         3300-based assemblies, only do this for System.xxx.
10878
10879 2004-05-01  Jackson Harper  <jackson@ximian.com>
10880
10881         * appdomain.c: If the culture is neutral we set it to "".
10882         
10883 2004-04-29  Jackson Harper  <jackson@ximian.com>
10884
10885         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10886
10887 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10888  
10889         * string-icalls.c: added low overhead function for copying chars
10890         * icall.c: added needed icall for the above function
10891  
10892 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10893
10894         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10895         Environment.GetLogicalDrives.
10896
10897 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10898
10899         * rand.c: try and talk to egd or prngd
10900         for random bytes if opening devices fail.
10901
10902 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10903
10904         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10905         alignment for the type using the native alignment of its members 
10906         instead of using klass->min_align.
10907
10908         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10909
10910 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10911
10912         * file-io.c:
10913         * socket-io.c: added check for sys/aio.h.
10914
10915 2004-04-28  Dick Porter  <dick@ximian.com>
10916
10917         * threads.c: Don't abort a thread thats already aborting, when
10918         terminating everything.
10919
10920 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10921
10922         * icall.c: added 2 new async calls for Socket.
10923
10924         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10925         IO on *nix systems.
10926
10927         * threadpool.c: removed unused variable.
10928
10929 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10930
10931         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10932
10933 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10934
10935         * locales.c: put back string_invariant_tolower () and
10936         string_invariant_toupper ().
10937
10938 2004-04-26 David Waite <mass@akuma.org>
10939
10940         * file-io.h:
10941         * socket-io.h:
10942         * threads.h:
10943         * unicode.h: remove comma from end of enumeration declarations
10944
10945 2004-04-26 David Waite <mass@akuma.org>
10946
10947         * debug-mono-symfile.h:
10948         * decimal.c:
10949         * mono_debug.h:
10950         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
10951
10952
10953 2004-04-26  Jackson Harper  <jackson@ximian.com>
10954
10955         * appdomain.c: Increment version number.
10956         
10957 2004-04-26  Jackson Harper  <jackson@ximian.com>
10958
10959         * appdomain.c: Set assembly references public token value when
10960         PublicKeyToken is specified, not the hash_value. Free public token
10961         values when free assembly name data. Previously the public key
10962         token was hex decoded, however we are using hex encoded public key
10963         tokens, so this is not neccasary.
10964         * assembly.c: Lookup assemblies in the gac if their public token
10965         value is set. Add function to allow enabling user gac
10966         lookups. Specify whether or not the assembly was loaded from the
10967         GAC. Compare full assembly names when checking the cache for
10968         assemblies (Temporarily disabled see comment in code). Remove
10969         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
10970         specifies trace-loader they get extra info to stdout on the
10971         loading of assemblies.
10972         * image.h: Add a field for an assembly references public token
10973         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
10974         whether an assembly has been loaded from the GAC.
10975         * image.c: Remove a corlib -> mscorlib name mapping.
10976         * loader.h: Add function to enable/disable the user gac.
10977         * mono-config.c: Check if the usergac is enabled in the config
10978         file.
10979         * icall.c: New icall to determine whether or not an assembly has
10980         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
10981         * tabldefs.h: Add constant for assemblyref flag that specifies a
10982         full public key is used instead of a public token.
10983         * reflection.c: Remove mscorlib -> corlib mappings. Set
10984         PublicTokenValue instead of hash value. This value is a hex
10985         string so it does not need to be expanded.
10986
10987 2004-04-26  Martin Baulig  <martin@ximian.com>
10988
10989         * mono-debug-debugger.c (mono_debugger_initialize): Set
10990         `mono_debugger_initialized' before calling mono_debug_lock().
10991
10992 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
10993
10994         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
10995           InternalToUpper/InternalToLower.
10996         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
10997           removed invariant culture shortcut.  This is now done in managed code.
10998         * locales.c: (string_invariant_toupper/tolower) removed.
10999
11000 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11001
11002         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11003         Added Poll internal call.
11004
11005         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11006         call for Poll. Select was too heavy for polling a single socket.
11007
11008         * threadpool.[ch]: added mono_threadpool_cleanup.
11009         * threads.c: use it. Don't use Thread_Abort on windows.
11010
11011 2004-04-23  Martin Baulig  <martin@ximian.com>
11012
11013         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11014
11015 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11016
11017         * icall.c: Registred new icalls for key pair protection and added an
11018         icall for Environment.GetFolderPath on Windows.
11019         * security.c|h: Added new icalls for key pair protection.
11020
11021 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11022
11023         * socket-io.c: don't display the non-supported family warning for known
11024         families. Now this is not displayed on windows when checking support
11025         for IPv4/IPv6.
11026
11027 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11028
11029         * class.c: don't display the layout warning for static fields.
11030
11031 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11032
11033         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11034         * locales.c, locales.h: Added new icalls for culture-specific
11035         Char.ToLower and Char.ToUpper.
11036
11037 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11038
11039         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11040         by David Waite.
11041
11042 2004-04-20  Martin Baulig  <martin@ximian.com>
11043
11044         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11045         of the type name before passing it to mono_reflection_type_from_name().
11046
11047 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11048
11049         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11050         encodings here. Fixes #56965.
11051
11052 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11053
11054         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11055         fix test on strstr result not that I can see anything that
11056         relies on the result.
11057
11058 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11059
11060         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11061         Fixes #57081.
11062
11063         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11064
11065         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11066         function to determine which marshalling to use for strings. Fixes
11067         #56965.
11068
11069         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11070
11071         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11072
11073 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11074
11075         * icall.c: #include mono-config.h
11076
11077 2004-04-15  Jackson Harper  <jackson@ximian.com>
11078
11079         * culture-info-tables.h: Fix date formats for en-US culture.
11080         
11081 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11082
11083         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11084         ThreadPool.SetMinThreads.
11085         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11086         ThreadPool.SetMinThreads.
11087
11088 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11089
11090         * mono-config.c: also load the .config file in the directory
11091         where the assembly was found.
11092
11093 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11094
11095         * assembly.c: load per-assembly config files.
11096         * icall.c: decrapified code to get the config dir and moved to
11097         mono-config.c.
11098         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11099         per-assembly config files. When doing a dll map lookup give precedence
11100         to the per-assembly data.
11101
11102 2004-04-14  Martin Baulig  <martin@ximian.com>
11103
11104         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11105         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11106         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11107
11108         * mono-debugger-debugger.c: While the debugger is locked, remember
11109         whether the symbol tables have changes and send one single
11110         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11111
11112 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11113
11114         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11115
11116         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11117         function.
11118
11119         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11120         account when marshalling string arrays. Fixes #56965.
11121
11122 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11123
11124         * icall.c: Add new icalls mapping for security.
11125         * security.c|h: Add internal calls for WindowsIdentity,
11126         WindowsImpersonationContext and WindowsPrincipal.
11127
11128 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11129
11130         * class.c: Added comment to ensure the System.MonoDummy class
11131         is removed when no longer necessary
11132
11133 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11134
11135         * appdomain.c: Pass arguments to the bootstraping exceptions to
11136         minimize JITed methods at boot
11137
11138         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11139         second string to be null.
11140
11141         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11142         Change the protocol to minimize the JIT methods at startup.  Now
11143         it Returns the internal codepage, if the value of "int_code_page"
11144         is 1 at entry, and we can not compute a suitable code page
11145         number, returns the code page as a string.
11146
11147 2004-04-13  Jackson Harper  <jackson@ximian.com>
11148
11149         * culture-info-tables.h: Fix number of decimal digits for all
11150         english locales.
11151
11152 2004-04-13  Jackson Harper  <jackson@ximian.com>
11153
11154         * icall.c: Clairfy out of sync error message. It is not always
11155         your corlib that is out of sync.
11156
11157 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11158
11159         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11160         properties when only the set accessor is overriden. Fixes #55874.
11161
11162 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11163
11164         * assembly.c (mono_assembly_load_references): Make this thread safe.
11165         Fixes #56327.
11166
11167 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11168
11169         * monosn.c: Add missing initialization calls.
11170
11171 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11172
11173         * locales.c:
11174         ves_icall_System_Globalization_CultureInfo_construct_number_format
11175         Fix g_assert so it compiles on fussier compilers re int/ptr
11176         mismatch
11177
11178 2004-04-08  Dick Porter  <dick@ximian.com>
11179
11180         * socket-io.h:
11181         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11182         53992.  Also rearrange the code so that the internal calls return
11183         an error value and exceptions are thrown from managed code.
11184
11185         * icall.c: Add type info to the socket icalls.
11186
11187 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11188
11189         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11190         owes me a beer.
11191
11192 2004-04-07  Martin Baulig  <martin@ximian.com>
11193
11194         * class.c (mono_class_from_generic_parameter): Don't default
11195         `klass->parent' to `mono_defaults.object_type'.
11196
11197 2004-04-07  Martin Baulig  <martin@ximian.com>
11198
11199         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11200         `param->pklass->reflection_info'.       
11201
11202 2004-04-07  Jackson Harper  <jackson@ximian.com>
11203
11204         * culture-info-tables.h: Fix date separator symbol.
11205         
11206 2004-04-07  Martin Baulig  <martin@ximian.com>
11207
11208         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11209         from System.Type to System.MonoType.
11210
11211 2004-04-07  Martin Baulig  <martin@ximian.com>
11212
11213         * reflection.h
11214         (MonoReflectionGenericParam): Added `has_reference_type' and
11215         `has_value_type' fields.
11216
11217         * reflection.c (mono_image_get_generic_param_info): Encode the
11218         correct flags if we have the `class' or `struct' constraint.
11219
11220 2004-04-07  Martin Baulig  <martin@ximian.com>
11221
11222         * reflection.h
11223         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11224
11225 2004-04-07  Jackson Harper  <jackson@ximian.com>
11226
11227         * appdomain.c: Revert extra patches, just wanted to bump the
11228         version number.
11229         
11230 2004-04-07  Jackson Harper  <jackson@ximian.com>
11231
11232         * Makefile.am: Add culture-info private headers.
11233         * icall.c: Add new icalls for contructing locales.
11234         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11235         * locales.h: Declare new culture info construction methods.
11236         * object.h: Add new fields used to avoid the CultureMap to
11237         MonoCultureInfo.
11238         * culture-info.h: Definition of structs used in the culture info
11239         tables.
11240         * culture-info-tables.h: Autogenerated tables that contain culture
11241         info data. This file was generated with the locale-builder tool.
11242         * appdomain.c: Incement corlib version number.
11243         
11244 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11245
11246         * appdomain.c: (mono_runtime_init) move mono_thread_init
11247         to before mono_object_new calls so critical sections
11248         are initialized before use.
11249
11250 2004-04-07  Martin Baulig  <martin@ximian.com>
11251
11252         * icall.c
11253         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11254         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11255         (ves_icall_MonoGenericParam_initialize): Removed.
11256         (monogenericparam_icalls): Removed.
11257         (generictypeparambuilder_icalls): Added new table for
11258         System.Reflection.Emit.GenericTypeParameterBuilder.
11259
11260         * reflection.c
11261         (mono_reflection_define_generic_parameter): Removed.
11262         (mono_reflection_initialize_generic_parameter): This is now called
11263         from GenericTypeParameterBuilder's .ctor.
11264
11265 2004-04-06  Martin Baulig  <martin@ximian.com>
11266
11267         * class.c (mono_class_init): Don't inflate nested classes in a
11268         generic instance.
11269         (mono_type_get_name_recurse): Include the generic arguments for
11270         generic instances and generic type declarations.
11271         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11272         (_mono_class_get_instantiation_name): Removed.
11273         (mono_class_create_generic): Always use `gklass->name' as our name.
11274
11275         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11276
11277         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11278         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11279         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11280         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11281         closed generic methods here.
11282
11283         * reflection.c
11284         (mono_reflection_generic_inst_get_nested_types): Removed.
11285         (inflate_mono_method): Copy the generic parameters from the
11286         MonoMethodHeader into out MonoGenericMethod.
11287
11288 2004-04-06  Martin Baulig  <martin@ximian.com>
11289
11290         * row-indexes.h
11291         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11292
11293         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11294
11295         * reflection.c (build_compressed_metadata): If we have any entries
11296         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11297         set the header version to 1.1.
11298
11299 2004-04-06  Martin Baulig  <martin@ximian.com>
11300
11301         * class.c (mono_class_init): If we're a generic instance,
11302         initialize our nested classes, too.
11303         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11304         suffix. 
11305
11306 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11307
11308         * process.c: quote the argument passed to the shell on windows.
11309
11310 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11311
11312         * threads.c (mono_alloc_special_static_data): Allow this to be
11313         called during startup.
11314
11315 2004-04-02  Martin Baulig  <martin@ximian.com>
11316
11317         * icall.c
11318         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11319
11320 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11321
11322         * icall.c: Fix build.
11323
11324 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11325
11326         * Makefile.am: Added security.c|h.
11327         * icall.c: Added icall for get_UserName;
11328         * security.c: New file for security related icalls. Added function
11329         get_UserName for System.Environment (fix #56144).
11330         * security.h: New. Header file for security.c
11331
11332 2004-04-02  Dick Porter  <dick@ximian.com>
11333
11334         * icall.c: Deleted the icalls that were obsoleted some time ago
11335         by the ICU string code, and which were mixed into the icall
11336         rearranging.  Fixes bug 55969.
11337
11338         * string-icalls.h: 
11339         * string-icalls.c: Deleted the code that those icalls reference.
11340
11341 2004-04-01  Martin Baulig  <martin@ximian.com>
11342
11343         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11344
11345         * class.c (mono_class_from_generic_parameter): Don't set 
11346         TYPE_ATTRIBUTE_INTERFACE.
11347         (my_mono_class_from_generic_parameter): Likewise.
11348
11349 2004-04-01  Martin Baulig  <martin@ximian.com>
11350
11351         * loader.c (find_method): Added an optional `MonoClass *ic'
11352         argument to search in a specific interface.
11353         (mono_get_method_constrained): New public function.
11354
11355 2004-04-01  Martin Baulig  <martin@ximian.com>
11356
11357         * reflection.c (mono_image_get_generic_field_token): Use the
11358         `handleref' cache here.
11359
11360 2004-04-01  Martin Baulig  <martin@ximian.com>
11361
11362         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11363
11364         * reflection.c (create_generic_typespec): Use the `typespec' hash
11365         here, not the `typeref' one.    
11366
11367 2004-04-01  Martin Baulig  <martin@ximian.com>
11368
11369         * class.c (mono_class_inflate_generic_type): Moved the
11370         functionality into a new static inflate_generic_type() which
11371         returns NULL if it didn't do anything.  Only increment the
11372         `mono_stats.inflated_type_count' if we actually inflated
11373         something.
11374         (mono_class_get_full): Check the classes type to see whether we
11375         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11376
11377 2004-04-01  Jackson Harper  <jackson@ximian.com>
11378
11379         * reflection.c: Set culture for assembly references.
11380         
11381 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11382
11383         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11384
11385 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11386
11387         * assembly.c:
11388         (do_mono_assembly_open): the critical section also covers
11389         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11390
11391 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11392
11393         * threads.c:
11394         (mono_manage_threads): abort the background threads when finishing.
11395         Fixes bug #47232.
11396
11397 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11398
11399         * gc.c: only close the done_event handle if there was no timeout.
11400         C-ified comments.
11401
11402 2004-03-30  Martin Baulig  <martin@ximian.com>
11403
11404         * icall.c (icall_entries): It's called "System.Activator", not
11405         "System.Activation".    
11406
11407 2004-03-30  Martin Baulig  <martin@ximian.com>
11408
11409         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11410         (mono_class_create_from_typespec): Likewise.
11411
11412 2004-03-30  Martin Baulig  <martin@ximian.com>
11413
11414         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11415         `has_ctor_constraint' and `initialized'.
11416
11417 2004-03-30  Martin Baulig  <martin@ximian.com>
11418
11419         * reflection.c (encode_new_constraint): New static function to add
11420         the constructor constraint attribute to a type parameter.
11421         (encode_constraints): Call encode_new_constraint() if necessary.
11422
11423         * reflection.h
11424         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11425
11426         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11427         
11428 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11429
11430         * reflection.c, icall.c: add support for pinning variables. 
11431
11432 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11433
11434         * marshal.c (mono_marshal_get_managed_wrapper):
11435         init bool local with zero rather than null.
11436
11437 2004-03-29  Martin Baulig  <martin@ximian.com>
11438
11439         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11440         the "official" behavior here.
11441         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11442
11443 2004-03-29  Martin Baulig  <martin@ximian.com>
11444
11445         * icall.c: Reflect latest API changes.
11446
11447 2004-03-29  Martin Baulig  <martin@ximian.com>
11448
11449         * loader.c (mono_get_method_from_token): Also call
11450         mono_metadata_load_generic_params () for abstract and interface
11451         methods; replace the type arguments in the method signature with
11452         the ones which are loaded from the metadata.
11453
11454 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11455
11456         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11457         of the lock is not the current thread. MS.NET don't do it, in spite of
11458         what the documentation says. See bug #56157.
11459
11460 2004-03-28  Martin Baulig  <martin@ximian.com>
11461
11462         * class.c (mono_class_init): Don't call init_properties() and
11463         init_events() for generic instances; set `prop->parent' when
11464         inflating properties.
11465
11466         * reflection.c (mono_generic_inst_get_object): Call
11467         `mono_class_init (ginst->klass)'.
11468         (mono_type_get_object): Only create a MonoGenericInst if your
11469         generic type is a TypeBuilder.
11470         (do_mono_reflection_bind_generic_parameters): Only set
11471         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11472
11473 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11474
11475         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11476         Fixes #56091.
11477
11478 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11479
11480         * icall.c: added Kill_internal icall.
11481         * process.[ch]: added Kill_internal icall.
11482
11483 2004-03-25  Martin Baulig  <martin@ximian.com>
11484
11485         * class.h (MonoStats): Added `generic_instance_count',
11486         `inflated_method_count', `inflated_type_count' and
11487         `generics_metadata_size'.       
11488
11489 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11490
11491         * reflection.c: no warnings now.
11492
11493 2004-03-25  Martin Baulig  <martin@ximian.com>
11494
11495         * class.c (mono_class_get_full): New public function; does a
11496         mono_class_get(), but also takes a `MonoGenericContext *'.
11497
11498         * loader.c (mono_field_from_memberref): Renamed to
11499         `field_from_memberref', made static and added `MonoGenericContext *'
11500         argument.
11501         (mono_field_from_token): Added `MonoGenericInst *' argument.
11502         (method_from_memberef): Likewise.
11503         (mono_get_method_from_token): Likewise.
11504         (mono_get_method_full): New public function; does a
11505         mono_get_method(), but also takes a `MonoGenericContext *'.
11506
11507         * verify.c (mono_method_verify): Get the method's generic context
11508         and pass it to mono_field_from_token(), mono_get_method_full() and
11509         mono_class_get_full().
11510
11511 2004-03-25  Martin Baulig  <martin@ximian.com>
11512
11513         * class.c (mono_class_inflate_generic_type): Take a
11514         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11515         `MonoGenericMethod *'.
11516
11517 2004-03-25  Martin Baulig  <martin@ximian.com>
11518
11519         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11520         instead of the MonoGenericMethod here.
11521
11522 2004-03-25  Martin Baulig  <martin@ximian.com>
11523
11524         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11525         each time we create a new MonoGenericInst, we also create a new
11526         context which points back to us.
11527
11528         * class.c (inflate_method): Use `ginst->context' instead of
11529         creating a new context.
11530
11531         * loader.c (method_from_memberref): Use
11532         `klass->generic_inst->context' instead of creating a new context.
11533
11534 2004-03-25  Martin Baulig  <martin@ximian.com>
11535
11536         * class.h (MonoGenericContext): New struct.
11537         (MonoGenericMethod): Removed `generic_inst'.
11538
11539         * class.c (mono_class_inflate_generic_method): Take a
11540         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11541
11542 2004-03-25  Martin Baulig  <martin@ximian.com>
11543
11544         * loader.h (MonoMethodInflated): New typedef.
11545
11546         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11547         `generic_param_count' consume just 30 bits, added `is_inflated'
11548         and `has_type_parameters' flags (one bit each).
11549
11550         * class.c (mono_class_inflate_generic_method): Create a
11551         MonoMethodInflated instead of a MonoMethodNormal and set
11552         `is_inflated' in the method signature.
11553
11554         * class.h (MonoGenericMethod): Removed `generic_method'.
11555
11556 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11557
11558         * image.c: Make sure the name of a MonoImage is always an absolute path.
11559           This fixes bug #54415.
11560
11561 2004-03-24  Martin Baulig  <martin@ximian.com>
11562
11563         * class.c (mono_class_setup_vtable): If we're a generic instance,
11564         use our generic type's vtable size.
11565
11566 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11567
11568         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11569         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11570         problems.
11571
11572 2004-03-23  Martin Baulig  <martin@ximian.com>
11573
11574         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11575         `MonoEvent *events'.
11576
11577         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11578         (typebuilder_icalls): Added "get_event_info"; calls
11579         mono_reflection_event_builder_get_event_info(). 
11580
11581         * reflection.c (mono_reflection_generic_inst_initialize): Added
11582         `MonoArray *events'.
11583         (mono_reflection_event_builder_get_event_info): New function.
11584
11585 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11586
11587         * object.h: add mono_type_initialization_init
11588
11589         * object.c (mono_runtime_class_init): 
11590         implement class constructor synchronization rules
11591         to cope with threading issues.  
11592         add mono_type_initialization_init
11593
11594         * appdomain.c (mono_runtime_init): call 
11595         mono_type_initialization_init
11596
11597         * class.h: removing initializing field from MonoVTable
11598
11599 2004-03-23  Martin Baulig  <martin@ximian.com>
11600
11601         * class.c (my_mono_class_from_generic_parameter): Use
11602         `param->name' if it's not NULL. 
11603
11604 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11605
11606         * class.c: do not insert non-virtual methods in the vtable.
11607         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11608         that means the method is non-virtual. This never would have
11609         happened before.
11610
11611 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11612
11613         * profiler.c: Added lock for accessing coverage_hash.
11614
11615 2004-03-22  Martin Baulig  <martin@ximian.com>
11616
11617         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11618         `method->method->signature->generic_param_count != 0' to make it
11619         work for interface methods.
11620
11621 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11622
11623         * process.c: quote the string passed to the shell using g_shell_quote.
11624
11625 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11626
11627         * threads.c:
11628         (mono_threads_manage): don't remove the finalizer thread and self
11629         from the threads hash table so that mono_thread_manage can be called
11630         more than once.
11631
11632 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11633
11634         * process.c: quote the arguments when UseShellExecute is true. Fixes
11635         bug #55790.
11636
11637 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11638
11639         * threads.c: set mono_thread_detach as a cleanup routine for every
11640         thread. This way it's always executed upon thread termination, either
11641         aborted or finished normally. No more xsp hangs!
11642
11643 2004-03-17  Martin Baulig  <martin@ximian.com>
11644
11645         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11646         `int count_nested' and a `MonoType **nested'.
11647
11648         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11649         most of the functionality into a new static
11650         do_mono_reflection_bind_generic_parameters() and don't take a
11651         `MonoType *nested_in' argument any more.  Don't compute nested
11652         types here.
11653         (mono_reflection_generic_inst_get_nested_types): New public method
11654         to get nested types.
11655
11656         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11657         we're a nested class.
11658
11659         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11660         mono_reflection_generic_inst_get_nested_types() to compute the
11661         nested types.
11662
11663 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11664
11665         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11666         descriptive error message under windows.
11667         
11668 2004-03-17  Martin Baulig  <martin@ximian.com>
11669
11670         * class.c (dup_type): Added `const MonoType *original' argument;
11671         copy the attrs from the original type.
11672
11673 2004-03-17  Martin Baulig  <martin@ximian.com>
11674
11675         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11676         `m->generic_inst_cache' here.
11677
11678 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11679
11680         * exception.h exception.c: Add stack_overflow_exception.
11681
11682 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11683
11684         * threadpool.c:
11685         (overlapped_callback): call SetEvent *after* invoking the callback.
11686         No need to call CloseHandle.
11687
11688 2004-03-16  Martin Baulig  <martin@ximian.com>
11689
11690         * reflection.c (mono_image_get_fieldref_token): Take a
11691         `MonoReflectionField *' instead of a `MonoClassField *' and a
11692         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11693
11694 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11695
11696         * appdomain.c: don't add the culture to the filename we're looking for
11697         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11698
11699 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11700
11701         * locales.c: don't ignore symbols when doing case insensitive compares.
11702         Thanks Dick! Fixes bug #54046.
11703
11704         * threads.c: surround 'threads' usage with enter/leave in
11705         mono_thread_manage.
11706
11707 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11708
11709         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11710         implicitly marshalled as [Out]. Fixes #55450.
11711
11712         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11713         an exception.
11714
11715 2004-03-16  Martin Baulig  <martin@ximian.com>
11716
11717         * class.c (mono_class_from_generic_parameter): Use the actual
11718         parameter name. 
11719
11720 2004-03-16  Martin Baulig  <martin@ximian.com>
11721
11722         * reflection.c (type_get_signature_size): New static function.
11723         Compues the size of the type in a method signature.
11724         (method_get_signature_size): New static function; calls
11725         type_get_signature_size() to compute the actual size of the
11726         method's signature.
11727         (method_encode_signature): Use method_get_signature_size() to get
11728         the signature's size rather than using `nparams * 10'.
11729
11730 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11731
11732         * file-io.h: define here WapiOverlapped on windows. I don't want the
11733         regular OVERLAPPED one.
11734
11735         * file-io.c:
11736         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11737         Disabling AIO on windows.
11738
11739 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11740
11741         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11742         bug #55385.
11743
11744 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11745
11746         * appdomain.c: upgraded corlib version.
11747
11748         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11749         and BeginWrite. Allow opening files for asynchrnous operations.
11750
11751         * file-io.h: new struct that maps FileStreamAsyncResult.
11752         * icall.c: added new icalls.
11753         * process.[ch]: support setting child process environment variables
11754         and use the SHELL or COMSPEC when UseShellExecute is true.
11755
11756         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11757         callback for async. IO is here and also BindHandle.
11758
11759         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11760         from here.
11761
11762 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11763
11764         * reflection.c (create_custom_attr): Allow len == 0.
11765
11766         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11767         computation on big-endian machines.
11768
11769 2004-03-13  Martin Baulig  <martin@ximian.com>
11770
11771         * class.h (MonoGenericInst): Added `int count_ifaces'.
11772
11773         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11774         `ginst->count_ifaces' instead `klass->interface_count' since we
11775         may get called before the vtable is created.
11776
11777         * loader.c (mono_method_get_param_names): If we're a generic
11778         instance, return and don't initialize the class.
11779
11780         * reflection.c (mono_reflection_setup_generic_class): Don't call
11781         ensure_runtime_vtable().
11782         (mono_reflection_bind_generic_parameters): Set
11783         `ginst->count_ifaces'.
11784
11785 2004-03-11  Jackson Harper <jackson@ximian.com>
11786
11787         * icall.c:
11788         * unicode.c:
11789         * unicode.h: Remove unused System.Char icalls.
11790         
11791 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11792
11793         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11794         code when we P/Invoke the first library in Windows.Forms, instead
11795         of when we first open the assembly.
11796
11797         * assembly.c: Drop the lookup from here.
11798
11799 2004-03-10  Martin Baulig  <martin@ximian.com>
11800
11801         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11802         class for properties, fields and events.  Finally fixes #54945.
11803
11804 2004-03-10  Martin Baulig  <martin@ximian.com>
11805
11806         * metadata.c (mono_metadata_class_equal): New static function;
11807         checks whether two generic instances or two generic parameters are
11808         equal.
11809         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11810         compare classes.        
11811
11812 2004-03-10  Martin Baulig  <martin@ximian.com>
11813
11814         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11815
11816         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11817         argument and write it into the `reflection_info' field.
11818
11819         * icall.c
11820         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11821         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11822
11823 2004-03-09  Jackson Harper  <jackson@ximian.com>
11824
11825         * char-conversions.h: use 8 bits for numeric data its all we need
11826         * icall.c: numeric data is only 8 bits now.
11827
11828 2004-03-09  Martin Baulig  <martin@ximian.com>
11829
11830         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11831
11832         * class.c (init_properties, init_events): Initialize the new
11833         `parent' field.
11834
11835         * reflection.c (typebuilder_setup_properties): Likewise.
11836         (typebuilder_setup_events): Likewise.
11837
11838         * reflection.h (MonoEventInfo): Replaced `parent with
11839         `declaring_type' and `reflected_type'.
11840
11841         * icall.c (ves_icall_get_property_info): Distinguish between
11842         declaring and reflected type.
11843         (ves_icall_get_event_info): Likewise.
11844
11845 2004-03-09  Martin Baulig  <martin@ximian.com>
11846
11847         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11848         (ves_icall_Type_GetField): Correctly set field->klass.
11849
11850 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11851
11852         * loader.h: Fix warning.
11853
11854 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11855
11856         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11857         library routine if present.  Notice that it will still continue
11858         executing even if its missing, for those working on the Gtk#
11859         edition of Windows.Forms.
11860
11861         * assembly.c (do_mono_assembly_open): If loading the
11862         System.Windows.Forms call mono_loader_wini_init.
11863
11864 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11865
11866         * class.h: Added MonoRemoteClass struct.
11867         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11868         function for MonoStrings.
11869         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11870         Added internal call for getting the proxy type.
11871         * marshal.c: Get the type of transparent proxies from its remote_class.
11872         Added methods that generate the IL for type checks and casts:
11873         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11874         mono_marshal_get_proxy_cancast.
11875         * marshal.h: Declaration of the previous new methods.
11876         * object.c: Added new moethods for creating and updating MonoRemoteClass
11877         instances: mono_remote_class, mono_upgrade_remote_class, 
11878         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11879         * verify.c: FIx transparent_proxy_fields layout.
11880         * appdomain.c: Bump corlib version.
11881
11882 2004-03-04  Jackson Harper  <jackson@ximian.com>
11883
11884         * icall.c: Add icall to access char conversion tables.
11885         * char-conversions.h: Character conversion tables.
11886         * Makefile.am: Add char-conversions.h private header file.
11887         
11888 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11889
11890         * appdomain.c (unload_thread_main): Increase unloading timeout to
11891         10 sec as a temporary workaround for Nant problems.
11892
11893 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11894
11895         * gc.c: Add checks for GC_enable and GC_disable.
11896
11897         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11898         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11899         (bug #54988).
11900         
11901 2004-02-27  Martin Baulig  <martin@ximian.com>
11902
11903         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11904         `MonoReflectionType *' instead of a `MonoType *'.
11905
11906 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11907
11908         * gc.c (run_finalize): Avoid finalizing the object representing the
11909         finalizer thread.
11910         (finalizer_thread): Fix warning.
11911
11912 2004-02-25  Martin Baulig  <martin@ximian.com>
11913
11914         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11915         argument for nested types.
11916         (mono_class_create_generic): Added support for nested generictypes.
11917
11918         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11919         `GList *nested'.
11920
11921         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11922
11923         * reflection.c (method_encode_signature): Increase the minimum
11924         value of `size' from 10 to 11.
11925         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11926         and `MonoType **types' arguments instead of the `MonoArray
11927         *types'; added `MonoType *nested_in'.  Recursively instantiate
11928         nested classes. 
11929
11930 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11931
11932         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11933         stack_overflow_ex members which are used by exception handling.
11934
11935         * appdomain.c (mono_runtime_init): Initialize the new members.
11936
11937         * gc.c (mono_gc_enable): New helper function.
11938         * gc.c (mono_gc_disable): New helper function.
11939
11940 2004-02-23  Martin Baulig  <martin@ximian.com>
11941
11942         * icall.c: I must have been really stupid - make it actually work
11943         this time ;-)
11944
11945 2004-02-23  Martin Baulig  <martin@ximian.com>
11946
11947         * loader.c (method_from_memberref): Only inflate the method if
11948         it's in another klass.
11949
11950 2004-02-23  Martin Baulig  <martin@ximian.com>
11951
11952         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
11953         (mono_class_init): If we're a generic instance and an interface,
11954         compute `class->interface_id'; also create `class->interfaces'
11955         here and inflate them.
11956
11957         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
11958         `ginst->is_open'.
11959         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
11960
11961         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
11962
11963 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
11964
11965         * reflection.c (method_encode_code): Improved the error message
11966         generated by the exception.
11967
11968 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11969
11970         * icall.c: Martin did not do what he said in the ChangeLog for
11971         2004-02-18, but put back the changes for properties and events.
11972         Commenting those changes out again and adding comment to bug #54518.
11973         
11974         * process.c: removed warning.
11975
11976 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
11977
11978         * marshal.c (emit_struct_conv): Print an error message instead of
11979         asserting when a type does not have the StructLayout attribute.
11980
11981 2004-02-20  Martin Baulig  <martin@ximian.com>
11982
11983         * reflection.c (mono_type_get_object): Also use the cache for
11984         generic instances.
11985         (mono_reflection_bind_generic_parameters): Always compute
11986         `ginst->ifaces'.        
11987
11988 2004-02-20  Martin Baulig  <martin@ximian.com>
11989
11990         * class.h (MonoGenericMethod): Removed `klass'.
11991
11992         * class.c (mono_class_inflate_generic_method): Added `MonoClass
11993         *klass' argument.
11994
11995 2004-02-20  Martin Baulig  <martin@ximian.com>
11996
11997         * reflection.c (method_encode_methodspec): Actually use the
11998         uninflated signature for the memberref.
11999
12000 2004-02-20  Martin Baulig  <martin@ximian.com>
12001
12002         * class.h (MonoGenericMethod): Removed `declaring'.
12003
12004         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12005         is NULL, compute it here.
12006
12007 2004-02-20  Martin Baulig  <martin@ximian.com>
12008
12009         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12010
12011         * metadata.c (mono_metadata_generic_inst_hash): New method.
12012         (mono_metadata_generic_inst_equal): New method.
12013
12014         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12015         `klass->image->generic_inst_cache' cache to avoid creating
12016         duplicate MonoGenericInst's.
12017
12018         * class.c (mono_class_inflate_generic_type): Use the cache.
12019
12020 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12021
12022         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12023
12024 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12025
12026         * icall.c: added Socket.WSAIoctl icall.
12027
12028         * socket-io.[ch]: implemented
12029         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12030
12031 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12032
12033         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12034
12035 2004-02-18  Urs C Muff  <umuff@quark.com>
12036
12037         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12038         this work on PPC and other big-endian architectures.
12039
12040         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12041         fields with an underscore to make sure they're only accessed by
12042         the read32() macro.
12043
12044 2004-02-18  Martin Baulig  <martin@ximian.com>
12045
12046         * icall.c: Put the klass->refclass changes back for methods and
12047         fields, but not for properties and events.  We're currently not
12048         distinguishing between DeclaringType and ReflectedType for
12049         properties and events, that's what caused the regressions.
12050
12051 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12052
12053         * object.c:
12054         (mono_async_result_new): the handle can be NULL.
12055
12056         * threadpool.c: Use an event instead of a semaphore, don't initialize
12057         it until needed. This saves quite a few semaphores from being created
12058         when using the threadpool.
12059
12060 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12061
12062         * object.c (mono_string_is_interned_lookup): Fix interning of long
12063         strings. Fixes #54473.
12064
12065         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12066
12067         * icall.c: Revert the klass->refclass changes since they introduce
12068         regressions (bug #54518).
12069
12070 2004-02-18  Martin Baulig  <martin@ximian.com>
12071
12072         * class.c (mono_class_init): If we're a generic instance and don't
12073         come from a TypeBuilder, inflate our members here.
12074         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12075         (mono_class_create_generic): New public method.
12076         (mono_class_initialize_generic): Removed.
12077         (get_instantiation_name): Renamed to
12078         _mono_class_get_instantiation_name() and made it public.
12079
12080 2004-02-18  Martin Baulig  <martin@ximian.com>
12081
12082         * class.c (mono_class_inflate_generic_type): Clear the new
12083         instance's `nginst->klass' when inflating a generic instance.
12084         (mono_class_is_subclass_of): Added (basic) support for generic
12085         instances.
12086
12087 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12088
12089         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12090         MonoMempool to hold compiled native code.
12091
12092 2004-02-17  Martin Baulig  <martin@ximian.com>
12093
12094         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12095         `properties'.
12096
12097         * reflection.c (mono_reflection_generic_inst_initialize): Added
12098         `MonoArray *properties' argument.
12099
12100         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12101
12102 2004-02-17  Martin Baulig  <martin@ximian.com>
12103
12104         * icall.c (ves_icall_Type_GetFields): Renamed to
12105         ves_icall_Type_GetFields_internal() and added a
12106         `MonoReflectionType *rtype' argument; pass it to
12107         mono_field_get_object() to set the field's "reflected" type.
12108         (ves_icall_Type_GetConstructors): Likewise.
12109         (ves_icall_Type_GetEvents): Likewise.
12110         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12111         argument; pass it to mono_method_get_object() to set the method's
12112         "reflected" type.       
12113
12114 2004-02-17  Martin Baulig  <martin@ximian.com>
12115
12116         * class.h (MonoDynamicGenericInst): New type.
12117         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12118
12119         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12120         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12121         (ves_icall_MonoGenericInst_GetFields): New interncall.
12122
12123         * class.c (mono_class_from_generic): Don't call
12124         mono_class_initialize_generic() if this is a dynamic instance;
12125         ie. it's being created from a TypeBuilder.
12126         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12127         `class->byval_arg.type'.
12128
12129         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12130         to `inflate_method' and made static.
12131         (mono_reflection_inflate_field): Removed.
12132         (mono_reflection_generic_inst_initialize): New public method.
12133
12134         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12135         `ctors' and `fields'; added `initialized'.
12136
12137 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12138
12139         * debug-helpers.c (mono_method_full_name): Fix output for empty
12140         namespaces.
12141
12142 2004-02-12  Martin Baulig  <martin@ximian.com>
12143
12144         * class.h (MonoClassField): Added `MonoType *generic_type'.
12145
12146         * reflection.c (mono_image_get_fieldref_token): Added support for
12147         instantiated generic types.
12148         (field_encode_inflated_field): Removed.
12149         (mono_image_get_inflated_field_token): Removed.
12150         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12151
12152         * reflection.h (MonoReflectionInflatedField): Removed.
12153
12154 2004-02-12  Martin Baulig  <martin@ximian.com>
12155
12156         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12157         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12158
12159         * reflection.c (mono_image_get_methodspec_token): Take a
12160         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12161         (mono_image_create_token): Check whether we have a
12162         `method->signature->gen_method' and call
12163         mono_image_get_methodspec_token() if appropriate.
12164         (inflated_method_get_object): Removed.
12165         (mono_reflection_bind_generic_method_parameters): Return a
12166         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12167         (mono_reflection_inflate_method_or_ctor): Likewise.
12168
12169         * reflection.h (MonoReflectionInflatedMethod): Removed.
12170
12171 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12172
12173         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12174         for custom valuetype marshalling.
12175
12176         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12177
12178 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12179
12180         * icall.c: fixed WSAGetLastError_internal name.
12181
12182 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12183
12184         * threads.c (mono_thread_attach): Allow this to be called multiple
12185         times for a thread.
12186         
12187         * threads.c (build_wait_tids): Do not wait for ourselves.
12188
12189         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12190         appdomain list is empty.
12191
12192         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12193         memory returned by mono_string_builder_to_utf16, since it points into
12194         managed memory. Thanks to Bernie Solomon for noticing this.
12195
12196         * icall.c: Add AppDomainSetup icalls.
12197
12198         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12199
12200         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12201         types.
12202
12203         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12204         custom attributes to the method_aux struct. Also fix array indexes etc.
12205
12206         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12207         
12208 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12209
12210         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12211         (both static and runtime) and reduce startup time.
12212
12213 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12214
12215         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12216         AsAny marshalling conversion instead of crashing.
12217
12218         * marshal.c: Fix warnings.
12219
12220 2004-02-09  Martin Baulig  <martin@ximian.com>
12221
12222         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12223
12224         * reflection.h (MonoReflectionInflatedMethod): Removed the
12225         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12226
12227         * reflection.c (method_encode_methodspec): Removed the `method'
12228         argument; we get it from `gmethod->declaring'.
12229         (inflated_method_get_object): Removed the `declaring' argument.
12230
12231 2004-02-09  Martin Baulig  <martin@ximian.com>
12232
12233         * class.h (MonoGenericMethod): New type.
12234         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12235         `generic_method'.
12236
12237         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12238         a `MonoGenericMethod *gen_method' one.
12239
12240         * class.c (mono_class_inflate_generic_type): Take an additional
12241         `MonoGenericMethod * argument.  This is only non-NULL if we're
12242         inflating types for a generic method.   
12243         (mono_class_inflate_generic_signature): Renamed to
12244         inflate_generic_signature() and made static; take a
12245         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12246         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12247         instead of a `MonoGenericInst *' one.
12248         (mono_class_inflate_generic_method): Likewise.
12249
12250         * reflection.c (encode_generic_method_sig): Take a
12251         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12252         (method_encode_methodspec): Likewise.
12253         (inflated_method_get_object): Likewise. 
12254
12255         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12256         field with a `MonoGenericMethod *gmethod' one.  
12257
12258 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12259
12260         * class.h (mono_class_has_parent): add parens to expansion
12261         so you can ! this.
12262
12263 2004-02-08  Martin Baulig  <martin@ximian.com>
12264
12265         * image.h (MonoImage): Removed `generics_cache'.
12266
12267         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12268         instead of a `MonoType *' argument; removed the `inflate_methods'
12269         argument.  Don't inflate methods here.
12270
12271         * loader.c (find_method): If it's a generic instance, call
12272         mono_class_init() on the `sclass->generic_inst->generic_type'.
12273
12274         * metadata.c (mono_type_size): Make this work on uninitialized
12275         generic instances; call it on the `ginst->generic_type's class.
12276
12277         * reflection.c (mono_reflection_bind_generic_parameters): Call
12278         mono_class_from_generic() to create the `ginst->klass'.
12279
12280 2004-02-08  Martin Baulig  <martin@ximian.com>
12281
12282         * class.h (MonoClass): Changed type of `generic_inst' from
12283         `MonoType *' to `MonoGenericInst *'.
12284
12285 2004-02-08  Martin Baulig  <martin@ximian.com>
12286
12287         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12288         mono_type_get_object(), this is now creating a `MonoGenericInst'
12289         for MONO_TYPE_GENERICINST.
12290         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12291         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12292
12293         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12294         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12295         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12296         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12297         and reflected type.
12298
12299         * reflection.h (MonoReflectionInflatedMethod): Removed
12300         `declaring_type' and `reflected_type'.
12301
12302 2004-02-08  Martin Baulig  <martin@ximian.com>
12303
12304         * class.h (MonoGenericInst): Added `MonoType *parent' and
12305         `MonoType **ifaces'.
12306
12307         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12308         `parent' and `interfaces'.
12309
12310         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12311         `MonoType *' argument and return a `MonoType *'.
12312
12313         * icall.c
12314         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12315         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12316
12317 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12318
12319         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12320         valuetype marshalling.
12321
12322 2004-02-06  Martin Baulig  <martin@ximian.com>
12323
12324         * class.c
12325         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12326         (my_mono_class_from_generic_parameter): Likewise.
12327
12328 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12329
12330         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12331         contents of the symbol files lazily.
12332
12333         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12334
12335         * threads.h threads.c icall.c: New icalls for getting and setting the
12336         threads name.
12337
12338 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12339
12340         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12341         Raise an exception when the domain is not found.
12342
12343 2004-02-03  Martin Baulig  <martin@ximian.com>
12344
12345         * reflection.c (mono_image_get_methodspec_token): Use the
12346         uninflated signature; fixes gen-33.
12347
12348 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12349
12350         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12351         the finalizer code can use thread functionality.
12352
12353         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12354         the finalizer thread.
12355
12356         * threads.c: Make some functions more robust.
12357
12358         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12359
12360         * metadata.h: Add new marshalling conventions.
12361
12362         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12363         stringbuilder marshalling. Fixes #53700.
12364
12365         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12366
12367         * reflection.c (mono_image_get_type_info): Save declarative security
12368         info.
12369
12370         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12371         unmanaged fields as well.
12372
12373         * appdomain.c: Bump corlib version.
12374
12375 2004-02-01  Martin Baulig  <martin@ximian.com>
12376
12377         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12378         method type arguments.  
12379
12380 2004-01-30  Duncan Mak  <duncan@ximian.com>
12381
12382         * marshal.h: Add prototype for
12383         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12384         and
12385         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12386         fix the build.
12387
12388 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12389
12390         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12391         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12392
12393 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12394
12395         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12396         custom marshalling of valuetypes.
12397
12398         * marshal.c: Fix some warnings.
12399
12400 2004-01-29  Martin Baulig  <martin@ximian.com>
12401
12402         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12403         for generic method parameters.
12404
12405         * reflection.c (method_encode_methodspec): Write the uninflated
12406         signature into the methodspec table.
12407         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12408         is always the uninflated method.
12409         (reflection_methodbuilder_to_mono_method): Copy the generic
12410         parameters from the MethodBuilder into `header->gen_params'.
12411
12412 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12413
12414         * class.c (mono_class_from_generic_parameter): Fix warning.
12415
12416 2004-01-27  Martin Baulig  <martin@ximian.com>
12417
12418         * class.c (mono_class_from_generic_parameter): Don't create
12419         `klass->methods' here.  
12420
12421 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12422
12423         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12424         extension since it does not work with libraries named lib<FOO>.dll.so.
12425
12426 2004-01-25  Martin Baulig  <martin@ximian.com>
12427
12428         * class.c (mono_class_inflate_generic_type): Added support for
12429         MONO_TYPE_GENERICINST.
12430
12431         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12432         inflate methods on open constructed types.      
12433
12434 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12435
12436         * object.c: fire ProcessExit event in the root AppDomain after running
12437         Main. Fixes bug #53299.
12438
12439 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12440
12441         * socket-io.c: include the new socket-wrappers.h header.
12442         Use the wrappers instead of the unix socket functions to make the code
12443         more clear.
12444
12445 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12446
12447         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12448
12449         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12450         Fixes #22532.
12451
12452 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12453
12454         * reflection.c (mono_image_create_pefile): Handle the case when the
12455         entry point is not a MethodBuilder.
12456
12457         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12458         field to ReflectionMethod since it is not allways a builder.
12459
12460         * reflection.c (type_get_fully_qualified_name): New helper function to
12461         return the fully qualified name of a type.
12462
12463         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12464         type name for custom marshallers.
12465
12466         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12467
12468         * class.c (mono_class_setup_vtable): If a parent class already 
12469         implements an interface, use the implementing methods from that class.
12470         Fixes #53148.
12471
12472 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12473
12474         * threadpool.c: just return instead of ExitThread to allow for thread
12475         clean up earlier.
12476
12477 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12478
12479         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12480         when closing resource modules.
12481
12482         * reflection.c (mono_image_create_pefile): Handle the case when the
12483         entry point is not a MethodBuilder.
12484
12485         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12486         field to ReflectionMethod since it is not allways a builder.
12487
12488 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12489
12490         * marshal.c (mono_marshal_get_managed_wrapper): 
12491         mono_marshal_alloc takes native int so CONV_I
12492         the arg for 64bits.
12493
12494 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12495
12496         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12497         tokens in the cattr table. Fixes #53108.
12498
12499 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12500
12501         * loader.c: don't trim ".dll" before looking up in the config file.
12502         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12503
12504 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12505
12506         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12507         Return the module which contains the resource as well.
12508         (ves_icall_System_Reflection_Module_Close): New icall.
12509
12510         * appdomain.c: Bump corlib version number.
12511
12512         * image.c (mono_image_addref): New public function.
12513
12514         * assembly.c: Call mono_image_addref.
12515
12516         * reflection.c (mono_module_get_object): Increase reference count of 
12517         the image.
12518
12519         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12520         Fixes #22532.
12521
12522         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12523         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12524         proper exceptions on DllImport problems.
12525
12526 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12527
12528         * class.c, metadata.c: eliminate CSIZE macro.
12529
12530 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12531
12532         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12533         * object.h: Added async_callback field in MonoAsyncResult.
12534         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12535         * verify.c: Added async_callback in MonoAsyncResult layout.
12536
12537 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12538
12539         * reflection.c (mono_reflection_get_custom_attrs): Add support
12540         for Modules.
12541
12542 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12543
12544         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12545         marshalling.
12546         (mono_marshal_method_from_wrapper): Add null pointer check.
12547
12548 2004-01-16  Martin Baulig  <martin@ximian.com>
12549
12550         * debug-mono-symfile.h: Set version number to 36 and reflect
12551         latest symbol writer changes.
12552
12553 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12554
12555         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12556         multi-dimensional arrays.
12557         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12558         (mono_class_from_mono_type): Use bounded_array_class_get.
12559         
12560         * class.c (mono_bounded_array_class_get): New function which takes
12561         a 'bounded' bool argument to distinguish vectors from one dimensional
12562         arrays.
12563
12564         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12565         bounded_array_class_get if the array has bounds.
12566
12567         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12568         Search modules loaded using AssemblyBuilder:AddModule as well.
12569
12570 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12571
12572         * appdomain.c: increased corlib version.
12573         * filewatcher.c: removed g_print.
12574         * icall.c:
12575         (get_property_info): only allocate what is actually requested.
12576         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12577
12578 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12579
12580         * Makefile.am: added filewatcher.[ch]
12581         * filewatcher.[ch]: FileSystemWatcher runtime support.
12582         * icall.c: added new FSW icalls.
12583
12584 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12585
12586         * string-icalls.c: fix stringbuilder regression as suggested by
12587         Iain McCoy <iain@mccoy.id.au>.
12588
12589 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12590
12591         * process.c (process_read_stringtable_block): Recognize '007f' as
12592         a language neutral stringtable block.
12593
12594 2004-01-12  Patrik Torstensson
12595
12596         * object.h (MonoStringBuilder) : Changed layout to support our
12597         new stringbuilder class.
12598         * marshal.c: Change marshalling to support the new layout of 
12599         string builder.
12600         * appdomain.c: increased version number because new layout of
12601         string builder.
12602
12603 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12604
12605         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12606         assembly name as an string instead of an AssemblyName, since it is
12607         easier to extract info from it.
12608
12609         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12610         the culture subdirectories too. Fixes #52231.
12611
12612 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12613
12614         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12615         It takes 2 new parameters with an optional name for the method to look
12616         for and case ignoring info.
12617
12618         * threadpool.c: removed unused variable.
12619
12620 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12621
12622         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12623         It takes 2 new parameters with an optional name for the property to look
12624         for and case ignoring info.
12625         Fixes bug #52753.
12626
12627 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12628
12629         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12630         Fix #52451.
12631
12632 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12633
12634         * appdomain.c:
12635         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12636         Fixes bug #52630.
12637
12638 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12639
12640         * reflection.c: Add support for more than one unmanaged resource.
12641
12642         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12643         in field->def_value, as done in all other cases.
12644
12645         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12646         TypeBuilders.
12647
12648         * reflection.c (mono_reflection_create_runtime_class): Remove 
12649         errorneous assignment to klass->element_class, since it is already
12650         done in mono_reflection_setup_internal_class.
12651
12652 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12653
12654         * gc.c: added missing LeaveCriticalSection.
12655         * icall.c: indented a couple of lines.
12656         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12657         if we call EndInvoke inside a callback. Fixes bug #52601.
12658
12659 2004-01-07  Martin Baulig  <martin@ximian.com>
12660
12661         * mono-debug-debugger.h
12662         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12663
12664 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12665
12666         * appdomain.c: Use messages in NotImplementedException.
12667
12668         * exception.c (mono_get_exception_not_implemented): Now this takes
12669         a message argument.
12670
12671         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12672         exception instead of g_asserting an aborting when something is not
12673         implemented.
12674
12675         Add some inline docs.
12676
12677 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12678
12679         * reflection.h: Update after changes to object layout.
12680
12681         * reflection.c: Implement saving of unmanaged aka win32 resources.
12682
12683         * appdomain.c: Bump version number.
12684
12685         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12686         Handle missing domains gracefully.
12687
12688 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12689
12690         * file-io.c : On Windows, there are much more invalid_path_chars.
12691
12692 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12693
12694         * class.h, object.c: prepare for GetType () speedup.
12695
12696 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12697
12698         * profiler.c: workaround for --profile null reference exception on
12699           cygwin. Patch by Patrik Torstensson.
12700
12701 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12702
12703         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12704         make work for unaligned access.
12705
12706 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12707
12708         * class.c: small cleanup (class->fields [i] -> field).
12709         * image.c: check address of metadata is valid.
12710
12711 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12712
12713         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12714         search the list of loaded assemblies.
12715
12716         * reflection.c (mono_reflection_type_from_name): Use 
12717         mono_assembly_loaded instead of mono_image_loaded.
12718
12719         * reflection.c: Fix warnings.
12720
12721 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12722
12723         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12724         is dynamic. This is needed since an assembly can contain both dynamic and
12725         non-dynamic images.
12726
12727         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12728         assembly->dynamic.
12729
12730         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12731
12732         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12733         to store modules loaded using AddModule.
12734
12735         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12736         on Modules.
12737
12738         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12739
12740         * reflection.c (mono_image_fill_export_table_from_module): New function to
12741         fill out the EXPORTEDTYPES table from a module.
12742
12743         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12744         into a separate function. Also handle loaded non-dynamic modules.
12745
12746         * reflection.c (mono_image_basic_init): Fix memory allocation.
12747
12748         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12749
12750         * assembly.c (mono_assembly_load_references): Make this public.
12751
12752 2003-12-19  Martin Baulig  <martin@ximian.com>
12753
12754         * class.c (mono_class_initialize_generic): Made this static, take
12755         a `MonoGenericInst *' instead of a `MonoClass *'.
12756         (mono_class_from_generic): Call mono_class_initialize_generic()
12757         unless we're already initialized or being called from
12758         do_mono_metadata_parse_generic_inst().
12759
12760         * class.h (MonoGenericInst): Added `initialized' and
12761         `init_pending' flags.
12762
12763         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12764         `mono_class_init (gklass)' or mono_class_initialize_generic()
12765         here; set `generic_inst->init_pending' while parsing the
12766         `type_argv'.
12767
12768 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12769
12770         * locales.c: include string.h for memxxx prototypes
12771
12772 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12773
12774         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12775         constructor when accessing literal fields.
12776
12777 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12778
12779         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12780
12781         * reflection.c (assembly_add_resource_manifest): New function to fill
12782         the MANIFESTRESOURCE table.
12783
12784         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12785
12786         * reflection.h: Update to changes in class layout.
12787
12788         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12789         Reenable call to mono_runtime_is_shutting_down ().
12790
12791         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12792         determine if the runtime is shutting down.
12793
12794 2003-12-16  Jackson Harper <jackson@ximian.com>
12795
12796         * icall.c: comment out call to mono_runtime_is_shutting_down to
12797         fix build.
12798         
12799 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12800
12801         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12802         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12803
12804 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12805
12806         * reflection.c: move definition of swap_with_size
12807         to before its first call
12808
12809 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12810
12811         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12812
12813         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12814         icall.
12815
12816         * object.c: Fix warnings.
12817
12818         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12819         members if FlattenHierarchy is set.
12820
12821         * reflection.c (mono_image_add_decl_security): New function to emit
12822         declarative security.
12823
12824         * reflection.h reflection.c: Add support for declarative security.
12825
12826         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12827         
12828 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12829
12830         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12831         
12832         * appdomain.c verify.c: Moved corlib version checking into its own
12833         function in appdomain.c since it needs to create vtables etc.
12834
12835 2003-12-13  Patrik Torstensson <p@rxc.se>
12836
12837         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12838         instead of unwrapped server.
12839
12840 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12841
12842         * verify.c (check_corlib): Fix field index.
12843
12844 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12845
12846         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12847         GetGacPath icall.
12848
12849 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12850
12851         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12852         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12853         cope with sizeof(size_t) != sizeof(guint32).
12854
12855 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12856
12857         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12858         in case of failure.
12859
12860 2003-12-10  Mark Crichton <crichton@gimp.org>
12861
12862         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12863         in managed code.
12864
12865         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12866
12867 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12868
12869         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12870         marked as deleted.
12871
12872 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12873
12874         * verify.c (check_corlib): Handle the case when the version field is 
12875         initialized by a static constructor.
12876
12877 2003-12-08  Patrik Torstensson  <p@rxc.se>
12878
12879     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12880
12881 2003-12-08  Martin Baulig  <martin@ximian.com>
12882
12883         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12884         a MonoReflectionGenericParameter, also take the parameter index
12885         and name as arguments.
12886         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12887         (ves_icall_MonoGenericParam_initialize): New interncall.
12888         (ves_icall_Type_make_byref_type): New interncall.
12889
12890         * reflection.h (MonoReflectionGenericParam): Derive from
12891         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12892         `index' fields.
12893
12894         * reflection.c (mono_reflection_define_generic_parameter): Create
12895         and return a new MonoReflectionGenericParam; don't initialize the
12896         constraints here.
12897         (mono_reflection_initialize_generic_parameter): New public method;
12898         initializes the constraints and creates the `param->pklass'.
12899
12900 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12901
12902         * reflection.h reflection.c: Use the new fields 'num_types', 
12903         'num_fields' and 'num_methods' to track the number of types etc.
12904
12905         * verify.c (check_corlib): Check corlib version number.
12906
12907 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12908
12909         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12910         function works on all methods.
12911
12912 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12913
12914         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12915         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12916         the custom_type_info flag of the transparent proxy.
12917         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12918         objects that supports IRemotingTypeInfo.
12919         * object.h: Added custom_type_info field in transparent proxy.
12920
12921 2003-12-06  Martin Baulig  <martin@ximian.com>
12922
12923         * class.c (mono_class_create_from_generic): Removed.
12924         (mono_class_from_generic): Check `ginst->klass' before doing
12925         anything else.  This is important to fully support "recursive"
12926         generic types.
12927
12928         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12929         empty `generic_inst->klass' before doing anything else.
12930
12931 2003-12-06  Dick Porter  <dick@ximian.com>
12932
12933         * verify.c: 
12934         * object.h:
12935         * icall.c:
12936         * locales.c: Use C structs to access class fields.  Don't do a
12937         conversion between MonoString and UChar because both are
12938         platform-endian UTF-16.  Compare now takes startindex and count
12939         parameters.  Add a char overload for IndexOf.  Speed up the
12940         invariant string IndexOf.
12941
12942 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12943
12944         * Makefile.am (monosn_LDADD): Fix parallel build.
12945
12946 2003-12-04  Martin Baulig  <martin@ximian.com>
12947
12948         * icall.c
12949         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12950         (ves_icall_Type_make_array_type): New interncall.       
12951
12952 2003-12-04  Martin Baulig  <martin@ximian.com>
12953
12954         * locales.c: also change it in the !HAVE_ICU case.
12955
12956 2003-12-04  Dick Porter  <dick@ximian.com>
12957
12958         * icall.c:
12959         * locales.c: construct_compareinfo is now in CompareInfo, not
12960         CultureInfo.
12961
12962 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
12963
12964         * image.c (mono_image_load_file_for_image): Cache loaded images in the
12965         image->files array.
12966
12967         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
12968         table as well.
12969
12970         * assembly.c (mono_assembly_load_references): Only load references
12971         once.
12972
12973         * class.c (mono_class_from_name): Avoid linear search of the 
12974         EXPORTEDTYPE table.
12975
12976         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
12977
12978 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
12979
12980         * image.h (MonoImage): Add 'field_cache' field.
12981
12982         * loader.c (mono_field_from_token): Cache field lookups.
12983         
12984         * reflection.c (mono_module_get_object): Fix name property.
12985
12986         * icall.c (ves_icall_get_enum_info): Update after changes to 
12987         mono_metadata_get_constant_index ().
12988
12989         * icall.c: Get rid of get_type_info icall, use a separate icall for
12990         each type property to avoid needless memory allocations. Fixes #51514.
12991
12992         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
12993         to avoid needless binary searches.
12994
12995         * class.c (class_compute_field_layout): Move the initialization of
12996         field->def_value to mono_class_vtable ().
12997
12998         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
12999         non-corlib types.
13000
13001         * object.c (mono_object_allocate): Make it inline.
13002
13003         * object.c (mono_object_allocate_spec): Make it inline.
13004         
13005 2003-12-02  Dick Porter  <dick@ximian.com>
13006
13007         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13008         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13009
13010 2003-12-01  Dick Porter  <dick@ximian.com>
13011
13012         * threads.c: Fix signature and call in CreateMutex and
13013         CreateEvent.
13014
13015 2003-12-01  Dick Porter  <dick@ximian.com>
13016
13017         * icall.c: 
13018         * locales.c: Implement string compares and searching
13019
13020         * object.h: Add extra Thread field
13021
13022 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13023
13024         * reflection.c (fixup_method): Add support for MonoCMethod.
13025
13026 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13027
13028         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13029
13030         * reflection.c (assembly_name_to_aname): Allow extra characters in
13031         assembly names. Fixes #51468.
13032
13033 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13034
13035         * exception.c (mono_exception_from_name_domain): New helper function.
13036
13037         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13038         exception object in the correct domain.
13039
13040         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13041         formatting + make a copy a the input data.
13042
13043         * loader.c (mono_get_method_from_token): Methods which contain
13044         native code do not have entries in the ImplMap.
13045
13046         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13047         Thanks to Gonzalo for spotting this.
13048         
13049         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13050         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13051
13052         * assembly.h (mono_assembly_load_from): Split the second part of 
13053         assembly loading into a new public function.
13054
13055         * exception.h (mono_get_exception_bad_image_format): New function.
13056
13057 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13058
13059         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13060         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13061         
13062         * icall.c: Add new icall for creating dynamic methods.
13063
13064         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13065
13066         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13067
13068         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13069         create a dynamic method.
13070
13071         * reflection.c (resolve_object): New helper function.
13072
13073         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13074         which manipulate it so they can also work on dynamic methods.
13075
13076         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13077         creating the MonoReflectionMethodAux structure if it is not needed.
13078         
13079         * reflection.h verify.c: Update after changes to object layout.
13080
13081         * reflection.c (method_builder_encode_signature): Fix compilation on
13082         gcc 2.95.x.
13083
13084 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13085
13086         * appdomain.h: Added support for context static fields. Added static_data
13087           field to MonoAppContext and renamed thread_static_fields to a more
13088           generic special_static_fields in MonoAppDomain, since it can now contain
13089           context static fields.
13090         * domain.c: Updated hashtable name.
13091         * object.c: Replaced field_is_thread_static() for a more generic
13092           field_is_special_static() which also checks for context static attribute.
13093           In mono_class_vtable(), added support for static context fields.
13094         * threads.c: Changed methods that manage thread static fields to more
13095           generic methods so they can be reused both for thread and context static
13096           data.
13097         * threads.h: Declared some new methods.
13098
13099 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13100
13101         * reflection.h: Update after changes to the managed types.
13102
13103         * reflection.c (encode_custom_modifiers): New helper function.
13104
13105         * reflection.c (method_encode_signature): Emit custom modifiers.
13106
13107         * reflection.c (field_encode_signature): Emit custom modifiers.
13108
13109 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13110
13111         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13112
13113         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13114         implementation.
13115
13116         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13117         icall.
13118
13119         * object.c (mono_field_get_value_object): New function.
13120
13121         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13122         specific.
13123
13124 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13125
13126         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13127         return a preallocated out-of-memory exception instance.
13128
13129         * object.c (out_of_memory): Use the new function.
13130
13131         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13132         flag is before the custom modifiers. Fixes #49802.
13133
13134 2003-11-16  Martin Baulig  <martin@ximian.com>
13135
13136         * class.c (mono_class_is_open_constructed_type): Implemented the
13137         MONO_TYPE_GENERICINST case.
13138
13139 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13140
13141         * assembly.c (mono_assembly_fill_assembly_name): New function to
13142         fill out the MonoAssemblyName structure.
13143         (mono_assembly_open): Use the new function.
13144
13145         * icall.c (fill_reflection_assembly_name): New helper function.
13146
13147         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13148         new function.
13149
13150         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13151
13152 2003-11-15  Martin Baulig  <martin@ximian.com>
13153
13154         * class.c (mono_class_is_open_constructed_type): New public
13155         function; checks whether a type is an open constructed type,
13156         ie. whether it still contains type parameters.
13157         (mono_class_inflate_generic_type): If we're a type parameter and
13158         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13159         type.
13160
13161         * class.h (MonoGenericInst): Added `guint32 is_open'.
13162
13163         * loader.c (method_from_methodspec): Check whether we're an open
13164         or closed constructed type and set `ginst->is_open'.
13165
13166         * reflection.c (mono_reflection_bind_generic_parameters): Check
13167         whether we're an open or closed constructed type and set
13168         `ginst->is_open'.
13169         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13170         from open constructed types.
13171
13172 2003-11-15  Martin Baulig  <martin@ximian.com>
13173
13174         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13175         a generic instance (instead of a generic type declaration) with
13176         unbound generic parameters, bind them to our actual types.
13177
13178 2003-11-14  Martin Baulig  <martin@ximian.com>
13179
13180         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13181
13182         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13183         an interface type, populate `res->interfaces' with instantiated
13184         versions of all the interfaces we inherit.
13185
13186 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13187
13188         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13189         when MONO_PATH is set but doesn't contain the install dir.
13190
13191 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13192
13193         * icall.c:
13194         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13195         it's also implemented in base classes. Fixes bug #50927.
13196
13197 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13198
13199         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13200         if this method is called from a finalizer. Fixes #50913.
13201
13202 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13203
13204         * threads.c: Implement VolatileRead/VolatileWrite
13205
13206         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13207
13208 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13209
13210         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13211         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13212         2.95.3.
13213
13214         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13215         from Peter Ross (pro@missioncriticalit.com).
13216         
13217 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13218
13219         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13220
13221 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13222
13223         * assembly.c (mono_assembly_load_references): Disable check because it
13224         triggers on older corlibs which lots of people have.
13225
13226 2003-11-12  Jackson Harper  <jackson@ximian.com>
13227
13228         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13229         load corlib.dll if mscorlib.dll is not found.
13230         * assembly.h: Remove corlib name define.
13231         * class.c:
13232         * domain.c:
13233         * image.c: Change corlib name to mscorlib.
13234         
13235 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13236
13237         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13238
13239 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13240
13241         * appdomain.h: Added loader_optimization here to sync with the C#
13242         code, and add disallow_binding_redirects field.
13243
13244 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13245
13246         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13247
13248         * reflection.c (mono_image_build_metadata): Fix crash on modules
13249         with no types.
13250
13251         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13252
13253         * icall.c (ves_icall_get_method_info): Return callingConvention as
13254         well.
13255
13256         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13257         namespaces from the EXPORTEDTYPE table as well.
13258
13259         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13260         from all modules inside the assembly.
13261         
13262 2003-11-11  Martin Baulig  <martin@ximian.com>
13263
13264         * reflection.c (mono_reflection_bind_generic_parameters): Make
13265         this work for interfaces.
13266
13267 2003-11-11  Martin Baulig  <martin@ximian.com>
13268
13269         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13270
13271 2003-11-11  Martin Baulig  <martin@ximian.com>
13272
13273         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13274         "MonoInflatedMethod" and "MonoInflatedCtor".
13275
13276 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13277
13278         * reflection.c (resolution_scope_from_image): Use the assembly table
13279         from the manifest module, since other modules don't have it.
13280
13281         * debug-helpers.c (mono_type_full_name): New helper function.
13282
13283         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13284
13285         * image.c (mono_image_load_file_for_image): New public function which
13286         is a replacement for the load_file_for_image in class.c.
13287
13288         * assembly.c (mono_assembly_load_module): A wrapper for the function
13289         above which does assembly association and reference loading too.
13290
13291         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13292
13293 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13294
13295         * appdomain.c: not all of the attributes for the full assembly name
13296         are required and the order doesn't matter. Fixes bug #50787.
13297
13298 2003-11-10  Dick Porter  <dick@ximian.com>
13299
13300         * locales.c: Use platform-endian UTF16
13301
13302 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13303
13304         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13305         
13306 2003-11-10  Martin Baulig  <martin@ximian.com>
13307
13308         * metadata.c
13309         (mono_metadata_load_generic_params): Make this actually work.
13310
13311         * reflection.c (mono_reflection_bind_generic_parameters): If our
13312         parent is a generic instance, pass all the `types' to it, no
13313         matter whether it has the same number of type parameters or not.
13314
13315 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13316
13317         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13318
13319         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13320         assignment code to this function so it gets called recursively for all
13321         modules.
13322
13323         * image.c (load_modules): Remove the assembly assignment since it is
13324         now done by mono_assembly_load_references.
13325         
13326         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13327         Add 'module' argument.
13328         (mono_module_get_types): New helper function.
13329         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13330
13331 2003-11-08  Martin Baulig  <martin@ximian.com>
13332
13333         * class.c (mono_class_inflate_generic_method): Interface method
13334         don't have a header.
13335
13336         * reflection.c (mono_image_get_methodspec_token): Take an
13337         additional `MonoGenericInst *' argument instead of reading it from
13338         the header; this is necessary to support interfaces.
13339         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13340         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13341         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13342         argument.
13343
13344         * reflection.h (MonoReflectionInflatedMethod): Added
13345         `MonoGenericInst *ginst'.
13346
13347 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13348
13349         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13350
13351 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13352
13353         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13354
13355 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13356
13357         * reflection.c 
13358         (reflection_methodbuilder_from_method_builder):
13359         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13360         initialize a ReflectionMethodBuilder structure.
13361         (mono_image_get_methodbuilder_token):
13362         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13363         tokens which point to types in another module inside the same assembly.
13364
13365         * reflection.c: Use the new helper functions.
13366         
13367         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13368
13369         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13370         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13371
13372         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13373         neccesary.
13374
13375         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13376         current module. Emit the manifest only for the main module.
13377
13378         * reflection.c (mono_image_create_token): Add assertion when a 
13379         memberref needs to be created.
13380
13381         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13382
13383         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13384         larger buffer for the custom attribute blob. Fixes #50637.
13385         
13386 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13387
13388         * threadpool.c: notify listener on async processing handles after
13389         invoking the async callback. Thanks to Zoltan.
13390
13391 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13392
13393         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13394         avoid code duplication.
13395
13396         * reflection.h (MonoDynamicImage): New type which is currently unused,
13397         but will be used through the ref.emit code in place of 
13398         MonoDynamicAssembly.
13399
13400         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13401         object layout.
13402
13403         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13404         a MonoDynamicImage instead of just a MonoImage.
13405         
13406         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13407         icalls to ModuleBuilder but keep their semantics, so they will work
13408         with moduleb->assemblyb. This will change later.
13409         
13410 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13411
13412         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13413         object layout.
13414
13415         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13416         main module, since it is now done by the managed code.
13417
13418 2003-11-03  Martin Baulig  <martin@ximian.com>
13419
13420         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13421         `ginst->klass' here.
13422         (method_encode_methodspec): Don't use the `ginst->generic_method's
13423         klass if it's a generic instance, use `ginst->klass' in this case.
13424
13425 2003-11-03  Martin Baulig  <martin@ximian.com>
13426
13427         * reflection.c (mono_image_get_generic_method_param_info):
13428         Removed, use mono_image_get_generic_param_info() instead.
13429         (mono_image_get_type_info): Write the GenericParam table before
13430         the Method table.  This is neccessary because in the GenericParam
13431         table, type parameters of the class (ie. '!0' etc.) must come
13432         before the ones from its generic methods (ie. '!!0' etc).
13433
13434 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13435
13436         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13437
13438 2003-11-02  Martin Baulig  <martin@ximian.com>
13439
13440         * reflection.c (create_generic_typespec): Take a
13441         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13442         the generic parameters from it.
13443
13444 2003-11-02  Martin Baulig  <martin@ximian.com>
13445
13446         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13447         instead of a `MonoClassField *' since we just need the type.
13448         (create_generic_typespec): New static function.  Creates a
13449         TypeSpec token for a generic type declaration.
13450         (mono_image_get_generic_field_token): New static function.
13451         (mono_image_create_token): If we're a FieldBuilder in a generic
13452         type declaration, call mono_image_get_generic_field_token() to get
13453         the token.
13454
13455 2003-11-02  Martin Baulig  <martin@ximian.com>
13456
13457         * reflection.h
13458         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13459         `MonoReflectionGenericInst *declaring_type' and
13460         `MonoReflectionGenericInst *reflected_type' fields.
13461
13462         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13463         `MonoReflectionGenericInst *declaring_type' and a
13464         `MonoReflectionGenericInst *reflected_type' argument instead of a
13465         single `MonoReflectionGenericInst *type' one.  Set
13466         `res->declaring_type' and `res->reflected_type' from them.
13467         (mono_reflection_inflate_field): Likewise.      
13468
13469 2003-11-02  Martin Baulig  <martin@ximian.com>
13470
13471         * class.c (mono_class_setup_vtable): Don't store generic methods
13472         in the vtable.  
13473
13474 2003-11-02  Martin Baulig  <martin@ximian.com>
13475
13476         * reflection.h (MonoReflectionGenericInst): Added
13477         `MonoReflectionType *declaring_type'.
13478
13479         * reflection.c (mono_reflection_bind_generic_parameters): Use
13480         `if (tb->parent)' instead of `klass->parent'.
13481
13482 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13483
13484         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13485         with an empty ASSEMBLY table.
13486
13487         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13488         variable in the inner and outer loops.
13489
13490 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13491
13492         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13493         argument.
13494
13495         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13496         
13497         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13498         icalls. Instead, do everything in managed code. This is needed since
13499         it is hard to restore the original domain etc. in unmanaged code in the
13500         presence of undeniable exceptions.
13501
13502         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13503         New icalls to push and pop appdomain refs.
13504
13505 2003-10-31  Martin Baulig  <martin@ximian.com>
13506
13507         * class.c (inflate_generic_type): Renamed to
13508         mono_class_inflate_generic_type() and made it public.
13509
13510         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13511         New interncall.
13512
13513         * loader.c (mono_field_from_memberref): Also set the retklass for
13514         typespecs.
13515
13516         * fielder.c (mono_image_get_inflated_field_token): New static
13517         method; creates a metadata token for an inflated field.
13518         (mono_image_create_token, fixup_method): Added support for
13519         "MonoInflatedField".
13520         (fieldbuilder_to_mono_class_field): New static function.
13521         (mono_reflection_inflate_field): New public function.
13522
13523         * reflection.h
13524         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13525         (MonoReflectionInflatedField): New typedef.     
13526
13527 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13528
13529         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13530         for Solaris and other platforms without s6_addr16
13531
13532 2003-10-30  Martin Baulig  <martin@ximian.com>
13533
13534         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13535         argument instead of two.
13536         (mono_class_inflate_generic_signature): Likewise.
13537         (inflate_generic_header): Likewise.
13538         (mono_class_inflate_generic_method): Likewise.  In addition, if
13539         `ginst->klass' is set, it becomes the new `method->klass'.
13540
13541         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13542         field.
13543
13544         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13545         first byte. [FIXME]
13546         (method_encode_methodspec): If we have generic parameters, create
13547         a MethodSpec instead of a MethodRef.
13548         (fixup_method): Added support for "MonoInflatedMethod" and
13549         "MonoInflatedCtor".
13550         (mono_image_create_token): Added support for "MonoInflatedMethod"
13551         and "MonoInflatedCtor".
13552         (inflated_method_get_object): New static function; returns a
13553         managed "System.Reflection.MonoInflatedMethod" object.
13554         (mono_reflection_bind_generic_method_parameters): Return a
13555         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13556         (mono_reflection_inflate_method_or_ctor): Likewise.
13557         (mono_image_get_generic_method_param_info): Initialize unused
13558         fields to zero.
13559         (mono_image_get_generic_param_info): Likewise.
13560
13561         * reflection.h (MonoReflectionInflatedMethod): New public
13562         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13563         "S.R.MonoInflatedCtor" classes.
13564
13565         * loader.c (method_from_memberref): If we're a TypeSpec and it
13566         resolves to a generic instance, inflate the method.
13567
13568 2003-10-28  Dick Porter  <dick@ximian.com>
13569
13570         * object.c (mono_runtime_run_main): Convert command-line arguments
13571         into utf8, falling back to the user's locale encoding to do so.
13572
13573 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13574
13575         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13576         at this time.
13577
13578         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13579
13580         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13581         up icalls at method definition time. Partially fixes #33569.
13582
13583 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13584
13585         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13586         marshalling of arrays. Fixes #50116.
13587
13588         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13589
13590         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13591         points to a vtable in the dying appdomain.
13592
13593         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13594         listeners into unmanaged code inside the lock.
13595
13596         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13597         domains and add some comments.
13598
13599 2003-10-25  Martin Baulig  <martin@ximian.com>
13600
13601         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13602
13603         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13604
13605         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13606         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13607         currently parsing.  Create the generic class and store it in
13608         `generic_inst->klass' before parsing the type arguments.  This is
13609         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13610         for an example.
13611         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13612         to support recursive typespec entries.
13613
13614         * class.c (mono_class_setup_parent): If our parent is a generic
13615         instance, we may get called before it has its name set.
13616         (mono_class_from_generic): Splitted into
13617         mono_class_create_from_generic() and mono_class_initialize_generic().
13618
13619 2003-10-25  Martin Baulig  <martin@ximian.com>
13620
13621         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13622         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13623         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13624         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13625
13626         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13627         (create_typespec): Likewise.
13628         (mono_reflection_bind_generic_parameters): Return a
13629         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13630         (mono_reflection_inflate_method_or_ctor): New public function.
13631
13632         * reflection.h (MonoReflectionGenericInst): New typedef.        
13633
13634 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13635
13636         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13637         inside the domain lock. Fixes #49993.
13638         
13639         * object.c (mono_class_vtable): When typed allocation is used, 
13640         allocate vtables in the GC heap instead of in the mempool, since the
13641         vtables contain GC descriptors which are used by the collector even
13642         after the domain owning the mempool is unloaded.
13643
13644         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13645
13646         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13647         reflect what it does. Also invalidate mempools instead of freeing
13648         them if a define is set.
13649
13650         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13651         of the appdomain.
13652         
13653         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13654         hold the finalizable objects in this domain.
13655
13656         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13657         appdomain.
13658
13659         * appdomain.c (mono_domain_set): New function to set the current
13660         appdomain, but only if it is not being unloaded.
13661
13662         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13663         appdomain which is being unloaded.
13664         
13665         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13666         unloading of the root appdomain.
13667
13668         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13669         icall to execute a method in another appdomain. Intended as a 
13670         replacement for InternalSetDomain, which can confuse the code 
13671         generation in the JIT.
13672
13673         * appdomain.c (mono_domain_is_unloading): New function to determine
13674         whenever an appdomain is unloading.
13675
13676         * appdomain.c (mono_domain_unload): New function to correctly unload
13677         an appdomain.
13678
13679         * assembly.c (mono_assembly_load_references): Check that an assembly
13680         does not references itself.
13681
13682         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13683         domain manually, it asks the finalizer thread to do it, then waits for
13684         the result. Also added a timeout.
13685
13686         * icall.c: Register the new icalls.
13687
13688         * threads.h threads.c: Export the mono_gc_stop_world and 
13689         mono_gc_start_world functions.
13690         
13691         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13692         function to fill out the mempool with 0x2a.
13693
13694 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13695
13696         * reflection.h (MonoReflectionMethodAux): New structure to store
13697         information which is rarely used, thus is not in the MonoMethod
13698         structure.
13699
13700         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13701         store the aux info.
13702
13703         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13704         and marshalling info into the aux structure.
13705
13706         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13707         from the aux structure.
13708
13709         * loader.c (mono_method_get_param_names): Retrieve the param names from
13710         the aux structure.
13711         
13712 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13713
13714         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13715         warning.
13716
13717 2003-10-21  Dick Porter  <dick@ximian.com>
13718
13719         * socket-io.c
13720         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13721         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13722
13723 2003-10-21  Martin Baulig  <martin@ximian.com>
13724
13725         * reflection.c (mono_reflection_bind_generic_parameters):
13726         `klass->parent' is NULL for interfaces.
13727
13728 2003-10-21  Martin Baulig  <martin@ximian.com>
13729
13730         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13731
13732 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13733
13734         * exception.c (mono_exception_from_name_msg): New helper function for
13735         creating exceptions and initializing their message field.
13736
13737         * exception.c: Simplify functions using the new helper.
13738
13739         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13740         New function.
13741
13742         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13743         mono_raise_exception, since otherwise gcc doesn't generate the function
13744         epilog for raise_exception, confusing the stack unwinding in the JIT.
13745         Fixes #45043.
13746
13747         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13748         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13749         Fixes #49499.
13750
13751 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13752
13753         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13754         utf8.
13755
13756 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13757
13758         * icall.c: Removed GetUninitializedObject method because
13759           AllocateUninitializedClassInstance does the same.
13760
13761 2003-10-18  Martin Baulig  <martin@ximian.com>
13762
13763         * class.c (inflate_generic_signature): Renamed to
13764         mono_class_inflate_generic_signature() and made it public.
13765         (my_mono_class_from_generic_parameter): New static function; if we
13766         don't already have the generic parameter's MonoClass, create a
13767         very simple one which is just used internally in the runtime and
13768         not passed back to managed code.
13769
13770         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13771
13772         * metadata.h (MonoMethodSignature): Moved the
13773         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13774         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13775
13776         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13777         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13778         interncall on the MonoMethod class, not on MethodInfo.
13779         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13780         calling mono_reflection_bind_generic_method_parameters() directly.
13781
13782         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13783         return the already computed `method->signature'.
13784         (method_from_methodspec): New static function to load a method
13785         from a MethodSpec entry.
13786         (mono_get_method_from_token): Call the new method_from_methodspec()
13787         for MethodSpec tokens.  
13788         (mono_get_method_from_token): If we're a generic method, load the
13789         type parameters.
13790
13791         * reflection.c (mono_image_get_memberref_token): Allow
13792         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13793         table.
13794         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13795         (mono_image_create_token): First check whether it's a generic
13796         method (so we'd need to create a MethodSpec), then do the other
13797         two alternatives.
13798         (mono_reflection_bind_generic_method_parameters): Return a
13799         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13800         called directly from the interncall.
13801
13802 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13803
13804         * reflection.c (load_public_key): Move loading of the public key
13805         into managed code.
13806
13807         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13808
13809         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13810         fields.
13811
13812         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13813         culture, hash_alg and public_key. Fixes #49555.
13814
13815 2003-10-17  Martin Baulig  <martin@ximian.com>
13816
13817         * class.h (MonoGenericInst): Moved this declaration here and added
13818         `MonoMethod *generic_method'.
13819
13820         * icall.c
13821         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13822         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13823
13824         * metadata.c (mono_metadata_type_equal): Two types of
13825         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13826         index; ie. don't compare the address of the `MonoGenericParam'
13827         structure.
13828         (mono_metadata_load_generic_params): Removed the `MonoMethod
13829         *method' argument.
13830
13831         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13832         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13833
13834         * reflection.c (method_encode_signature): Encode the number of
13835         generic parameters.
13836         (encode_generic_method_sig): New static function.
13837         (method_encode_methodspec): New static function; creates an entry
13838         in the MethodSpec table for a generic method.
13839         (mono_image_get_methodspec_token): New static function.
13840         (mono_image_create_token): Call mono_image_get_methodspec_token()
13841         for generic methods.
13842         (mono_reflection_bind_generic_method_parameters): New public
13843         function.  Instantiates a generic method.
13844
13845 2003-10-16  Martin Baulig  <martin@ximian.com>
13846
13847         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13848         *gen_params' here from MonoMethodHeader.
13849
13850         * metadata.c (mono_metadata_parse_method_signature): If we have
13851         generic parameters, initialize `method->gen_params' and then set
13852         the correct `type->data.generic_param' in all the parameters.
13853
13854 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13855
13856         * threads.c (mono_threads_get_default_stacksize): New function to 
13857         return the default stacksize.
13858
13859         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13860         termination of the finalizer thread, since the previous method had
13861         race conditions. Fixes #49628.
13862
13863         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13864         as for the other managed threads.
13865
13866 2003-10-16  Martin Baulig  <martin@ximian.com>
13867
13868         * class.c (inflate_generic_signature): Copy `generic_param_count'
13869         and `gen_params'.
13870
13871         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13872         New interncall.
13873
13874         * metadata.c (mono_metadata_parse_method_signature): Actually set
13875         the `method->generic_param_count' here.
13876         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13877
13878 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13879
13880         * object.h: Add a new field to TypedRef to simplify the implementation
13881         of the REFANY opcodes in the JIT.
13882
13883         * icall.c: Make use of the new field.
13884
13885         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13886         dynamically.
13887
13888 2003-10-15  Martin Baulig  <martin@ximian.com>
13889
13890         * class.c (mono_class_from_gen_param): Renamed to
13891         mono_class_from_generic_parameter() and moved most of the
13892         functionality from mono_reflection_define_generic_parameter()
13893         here; ie. we create a "real" class here.
13894         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13895         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13896         previously been called.
13897
13898         * class.h (MonoGenericParam): Moved the declaration of this struct
13899         here from metadata.h and added `MonoMethod *method'.
13900
13901         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13902         interncall.
13903
13904         * loader.c (mono_get_method_from_token): If we have any generic
13905         parameters, call mono_metadata_load_generic_params() to read them
13906         from the MONO_TABLE_GENERICPAR.
13907
13908         * metadata.c (mono_metadata_load_generic_params): Added
13909         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13910
13911         * metadata.h (MonoMethodSignature): Replaced
13912         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13913         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13914
13915         * reflection.c (mono_reflection_define_generic_parameter): Moved
13916         most of the functionality into the new
13917         mono_class_from_generic_parameter(); set the `method' field if
13918         we're a method parameter.       
13919
13920 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13921
13922         * marshal.c (emit_struct_conv): if native size is 0
13923         emit no code.
13924
13925 2003-10-14  Martin Baulig  <martin@ximian.com>
13926
13927         * icall.c: The generics API has changed in the spec since it was
13928         added to System.Type; these modifications make it match the spec
13929         again.
13930         (ves_icall_Type_GetGenericParameters): Renamed to
13931         `ves_icall_Type_GetGenericArguments'.
13932         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13933         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13934         `ves_icall_MonoType_get_HasGenericArguments'.
13935         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13936         `ves_icall_MonoType_get_IsGenericParameter'.
13937         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13938         this is no interncall anymore.
13939         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13940         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13941
13942 2003-10-14  Martin Baulig  <martin@ximian.com>
13943
13944         * reflection.c (mono_reflection_bind_generic_parameters): Also
13945         inflate generic methods if we're reading the class from IL.
13946
13947 2003-10-13  Martin Baulig  <martin@ximian.com>
13948
13949         * reflection.c (mono_reflection_define_generic_parameter): This
13950         method isn't called directly from the icall anymore; take a
13951         `MonoReflectionAssemblyBuilder *' so we can use this for type and
13952         method generic parameters.
13953         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
13954         (method_builder_encode_signature): Encode generic parameters.
13955         (mono_image_get_method_info): Write generic params to the
13956         MONO_TABLE_GENERICPARAM table.
13957
13958         * reflection.h (MonoReflectionMethodBuilder): Added
13959         `MonoArray *generic_params'.
13960
13961         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
13962
13963         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
13964         wrapper for mono_reflection_define_generic_parameter().
13965         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
13966
13967 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
13968
13969         * marshal.h: Add missing function to fix build.
13970
13971         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
13972         the SetLastError pinvoke attribute.
13973
13974         * marshal.c (mono_marshal_set_last_error): New helper function called
13975         by the generated code.
13976         
13977         * marshal.c (mono_mb_emit_branch): New helper function.
13978
13979         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
13980
13981         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13982         classes as parameters and return values of delegates. Fixes #29256. 
13983
13984 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
13985
13986         * locales.c: use gint32 in non HAVE_ICU case
13987
13988 2003-10-11  Martin Baulig  <martin@ximian.com>
13989
13990         * mono-debug.c (mono_debug_add_method): Added a workaround for
13991         bug #48591.
13992
13993 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
13994
13995         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
13996         delegates passed to native code must use the STDCALL calling 
13997         convention. Fixes #35987.
13998
13999 2003-10-10  Martin Baulig  <martin@ximian.com>
14000
14001         * class.c (inflate_generic_type): If we're inflating for a generic
14002         type instance (and not for a generic method), return
14003         MONO_TYPE_MVAR unchanged.
14004
14005 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14006
14007         * string-icalls.c: Join ignores null strings in the source array.
14008         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14009         * threads.c: GetAvailableTheads is slightly more accurate.
14010
14011 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14012
14013         * threads.h threads.c : add mono_threads_set_default_stacksize
14014         and pass default to CreateThread calls.
14015
14016 2003-10-09  Dick Porter  <dick@ximian.com>
14017
14018         * icall.c:
14019         * locales.h:
14020         * locales.c: Internal calls for constructing CultureInfo and
14021         related objects from libicu (if its available.)
14022
14023 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14024
14025         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14026
14027 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14028
14029         * threadpool.c: added an argument to async_invoke_thread that is the
14030         item to process, pass the MonoAsyncResult to the thread start function
14031         when creating a new thread. This way we don't need to acquire any lock
14032         when we're creating a new thread. Readded a semaphore for faster
14033         response times (instead of that Sleep i added).
14034
14035 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14036
14037         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14038         get daylight change dates better on Windows, fix handling
14039         of platforms without tm_gmtoff.
14040
14041 2003-10-06  Martin Baulig  <martin@ximian.com>
14042
14043         * class.c (inflate_generic_method): Renamed to
14044         mono_class_inflate_generic_method() and made public.
14045         (mono_class_init): Don't inflate the generic methods here.
14046         (mono_class_from_generic): Added `gboolean inflate_methods'
14047         argument.  Inflate the methods here.
14048
14049         * loader.c (mono_method_get_param_names): Ignore instances of
14050         generic types for the moment.
14051
14052         * reflection.c (fixup_method): Added support for inflated methods.
14053         (mono_image_create_token): Use mono_image_get_methodref_token()
14054         for inflated methods.
14055         (mono_custom_attrs_from_param): Ignore instances of generic types
14056         for the moment.
14057         (mono_reflection_bind_generic_parameters): New public function.
14058         Moved all the functionality from
14059         ves_icall_Type_BindGenericParameters() here and added support for
14060         dynamic types.
14061         (mono_reflection_define_generic_parameter): Initialize
14062         `klass->methods' here.
14063
14064         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14065         functionality into mono_reflection_define_generic_parameter().
14066         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14067         TypeBuilder, return that TypeBuilder.
14068
14069 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14070
14071         * appdomain.c: removed mono_delegate_semaphore.
14072
14073         * threadpool.c:
14074         (mono_thread_pool_add): moved hash table creation inside and the thread 
14075         creation outside of the critical region.
14076         (mono_thread_pool_finish): removed obsolete code.
14077         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14078         continue or exit the thread depending on the queue.
14079
14080 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14081
14082         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14083         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14084         handle more bool marshalling options
14085
14086 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14087
14088         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14089         arrays of structs. Also add a more descriptive error message when
14090         a structure member is marshalled as LPArray.
14091
14092 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14093
14094         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14095         marshalling arrays of complex types. Fixes #29098. Also remove an
14096         usused and incomplete function.
14097
14098 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14099
14100         * gc.c: report heap_size - free_bytes as total memory allocated
14101         (bug#49362).
14102
14103 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14104
14105         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14106         fix timezone handling problems on Windows.
14107         
14108         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14109         asserts when the year is outside the range handled by ms the functions.
14110
14111         * class.c (setup_interface_offsets): If the class is an interface,
14112         fill out its interface_offsets slot.
14113
14114 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14115
14116         * threadpool.c: mark threadpool threads as background.
14117
14118 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14119
14120         * decimal.c - define DECINLINE to nothing if not using GCC
14121
14122 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14123
14124         * assembly.c: More refcount fixes.
14125
14126 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14127
14128         * string-icalls.c: if we're not trimming, return the same string.
14129         When not splitting, don't create a new string.
14130
14131 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14132
14133         * image.c:
14134         (mono_image_open): increment the ref_count inside the critical section.
14135
14136 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14137
14138         * image.c (mono_image_open): Fix reference counting bug.
14139
14140 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14141
14142         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14143         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14144         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14145         mono_lookup_pinvoke_call throws.        
14146
14147 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14148
14149         * reflection.c (mono_reflection_parse_type): Fix #49114.
14150
14151         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14152         temporary workaround for cygwin header problem.
14153
14154         * object.c (mono_object_isinst): Synchronize this with the code
14155         generated by the JIT for casts.
14156
14157 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14158
14159         * reflection.c (encode_type): Fix #38332.
14160
14161 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14162
14163         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14164         the original method from the wrapper method.
14165
14166 2003-09-25  Martin Baulig  <martin@ximian.com>
14167
14168         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14169         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14170         (ves_icall_Type_get_IsGenericInstance): New interncall.
14171
14172 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14173
14174         * object.c: fix cast warning in big endian code.
14175
14176 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14177
14178         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14179         
14180 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14181
14182         * assembly.c: don't call check_env from mono_assembly_load. It's
14183         already done once in mono_assemblies_init and may cause headaches when
14184         multiple threads are loading assemblies.
14185
14186 2003-09-19  Martin Baulig  <martin@ximian.com>
14187
14188         * reflection.c (mono_reflection_define_generic_parameter): Don't
14189         allocate `klass->methods', set `klass->flags' to
14190         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14191
14192 2003-09-18  Martin Baulig  <martin@ximian.com>
14193
14194         * class.c (mono_class_init): Don't create `class->methods' if it's
14195         already initialized.
14196
14197         * metadata.c (mono_metadata_load_generic_params): Make this
14198         actually work.
14199
14200         * reflection.c (mono_reflection_define_generic_parameter): Set
14201         parent class and interfaces from the constraints.
14202
14203         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14204         to keep this struct in sync with the declaration in TypeBuilder.cs.
14205
14206 2003-09-17  Martin Baulig  <martin@ximian.com>
14207
14208         * metadata.h (MonoType): Replaced the data's `int type_param'
14209         field with `MonoGenericParam *generic_param'.
14210         (MonoGenericParam): Added `MonoClass *klass'.
14211
14212         * class.c (mono_class_from_gen_param): Removed the
14213         `MonoImage *image' and `int type_num' arguments.
14214
14215         * metadata.c (mono_metadata_parse_generic_param): New static
14216         method; creates a MonoGenericParam which just contains the index.
14217         (do_mono_metadata_parse_type): Call
14218         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14219         MONO_TYPE_MVAR.
14220
14221         * reflection.c (mono_image_typedef_or_ref): Generic type
14222         parameters may be in the same assembly, but never use a typedef
14223         for them.
14224         (mono_reflection_define_generic_parameter): We're now creating a
14225         "real" class for the type parameter; it's now safe to call
14226         mono_class_from_mono_type() on the class'es type, it'll do the
14227         right thing.
14228
14229 2003-09-16  Martin Baulig  <martin@ximian.com>
14230
14231         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14232         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14233         the `symfile' data structure must be fully initialized before it
14234         gets added to the table.
14235
14236 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14237
14238         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14239
14240         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14241         class init trampolines.
14242
14243 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14244
14245         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14246         to the built-in profiler to turn off time and allocation profiling
14247         respectively.
14248
14249 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14250
14251         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14252         g_direct_equal.
14253
14254         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14255         in human readable form.
14256
14257 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14258
14259         * reflection.c icall.c: Fixed warnings.
14260
14261         * image.c (load_class_names): Use a temporary hash table to hold the
14262         namespaces in order to avoid doing many string comparisons.
14263
14264         * image.h: Fix typo.
14265
14266         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14267         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14268         since the NULL case is short-circuited inside g_hash_table_lookup, 
14269         leading to better performance.  
14270
14271         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14272         obtain the first custom attribute for a given index. Depends on the
14273         CustomAttribute table being sorted by the parent field.
14274
14275         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14276         for better performance.
14277
14278 2003-09-07  Martin Baulig  <martin@ximian.com>
14279
14280         * class.c (mono_class_init): If we're a generic instance, inflate
14281         all our methods instead of loading them from the image.
14282         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14283
14284 2003-09-07  Martin Baulig  <martin@ximian.com>
14285
14286         * mono-debug-debugger.c: Added support for constructors.
14287
14288 2003-09-06  Martin Baulig  <martin@ximian.com>
14289
14290         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14291         New interncall.
14292
14293         * reflection.c (mono_reflection_setup_generic_class): Call
14294         ensure_runtime_vtable() to create the vtable.
14295
14296 2003-09-05  Martin Baulig  <martin@ximian.com>
14297
14298         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14299         MONO_TYPE_MVAR.
14300
14301 2003-09-04  Martin Baulig  <martin@ximian.com>
14302
14303         * reflection.c (mono_reflection_define_generic_parameter): Generic
14304         parameters start with zero.
14305
14306 2003-09-04  Martin Baulig  <martin@ximian.com>
14307
14308         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14309
14310         * reflection.h (MonoReflectionGenericParam): New typedef.
14311         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14312         the generic parameters from the managed TypeBuilder.
14313
14314         * reflection.c (mono_reflection_define_generic_parameter): New function.
14315         (mono_reflection_create_runtime_class): Encode generic parameters.
14316         (mono_reflection_setup_generic_class): New function; this is
14317         called after adding adding all generic params to the TypeBuilder.
14318         (encode_type): Added MONO_TYPE_VAR.
14319
14320 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14321
14322         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14323         here from the JIT.
14324
14325         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14326         load hook.
14327
14328 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14329
14330         * reflection.h reflection.c class.h class.c: Delete duplicate 
14331         definition of mono_type_get_name () from reflection.c and export the
14332         one in class.c.
14333
14334         * class.c: Class loading fixes from Bernie Solomon 
14335         (bernard@ugsolutions.com).
14336
14337         * reflection.c: Endianness fixes from Bernie Solomon 
14338         (bernard@ugsolutions.com).
14339         
14340 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14341
14342         * assembly.h assembly.c: Define a file format version for AOT
14343         libraries.
14344         
14345         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14346
14347         * appdomain.h (MonoJitInfo): New field to determine whenever the
14348         code is domain neutral.
14349         
14350 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14351
14352         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14353
14354 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14355
14356         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14357         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14358         Avoid caching the result since strings must be domain specific. Fixes
14359         #48050.
14360
14361 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14362
14363         * marshal.c (mono_marshal_init): Make this callable multiple times
14364         since it is hard to find a correct place to call it.
14365
14366         * object.c (mono_runtime_class_init): Execute static constructors in
14367         the correct appdomain.
14368
14369         * image.c (build_guid_table): Handle the case when multiple images have
14370         the same GUID.
14371
14372 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14373
14374         * icall.c: added a couple of icalls for System.Web.
14375
14376 2003-08-28  Martin Baulig  <martin@ximian.com>
14377
14378         * icall.c (ves_icall_Type_BindGenericParameters): Use
14379         `klass->generic_inst' instead of `&klass->byval_arg' in the
14380         mono_type_get_object() call.  The returned type must be
14381         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14382
14383 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14384
14385         * NOTES: New file.
14386
14387         * object.c (mono_class_proxy_vtable): Make it thread safe.
14388
14389         * pedump.c: Fix warning.
14390
14391         * object.c appdomain.h: Get rid of metadata_section. 
14392         It is no longer needed and it was causing deadlocks with domain->lock.
14393
14394         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14395
14396 2003-08-26  Martin Baulig  <martin@ximian.com>
14397
14398         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14399
14400 2003-08-26  Martin Baulig  <martin@ximian.com>
14401
14402         * pedump.c (main): Call mono_metadata_init(),
14403         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14404         and mono_loader_init().
14405
14406 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14407
14408         * loader.h: Add missing include to fix build.
14409
14410         * image.h: mono_image_load_references is no more.
14411
14412         * assembly.c: Reworked assembly loading to make it really thread safe.
14413         After these changes, the assembly returned by mono_assembly_open is
14414         fully initialized, i.e. all its references assemblies are loaded.
14415
14416         * assembly.c (mono_image_load_references): Renamed to 
14417         mono_assembly_load_references, and made private, since clients no
14418         longer need to call it.
14419
14420         * class.c: Removed calls to mono_assembly_load_references, since it was
14421         a source of deadlocks.
14422
14423         * loader.h loader.c class.h class.c: Protect data structures using a 
14424         new lock, the loader lock.
14425
14426         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14427         GPtrArrays only when needed.
14428
14429         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14430         into empty structures by mcs. Fixes pinvoke7.cs.
14431         
14432         * domain.c (mono_init): Call a new initialization function.
14433
14434         * appdomain.c (mono_runtime_init): Call the new initializer function
14435         of the marshal module.
14436
14437         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14438         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14439
14440         * marshal.h marshal.c: Added locks around the wrapper caches to make
14441         this module thread safe.
14442
14443         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14444         this argument. Fixes pinvoke1.exe.
14445
14446 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14447
14448         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14449         enumeration of values. Removed fields to store remote call output values in
14450         MonoAsyncResult. Not needed any more.
14451         * object.c: Initialize call_type and async_result fields in mono_message_init.
14452         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14453         dispatching the message.
14454         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14455         async call to finish. To do it use a message with EndInvoke call type.
14456
14457 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14458
14459         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14460         determines whenever a method has marshalling info.
14461
14462 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14463
14464         * assembly.c: fix the build on windows.
14465
14466 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14467
14468         * object.cs: Fixed bug #47785.
14469
14470 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14471
14472         * string-icalls.c (StringReplace): If their are no occurances of
14473         the old string found return a reference to the supplied
14474         string. This saves some memory and matches MS behavoir.
14475         
14476 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14477
14478         * socket-io.c: fixed compilation for systems that define AF_INET6
14479         and don't define SOL_IP/SOL_IPV6.
14480
14481 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14482
14483         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14484         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14485
14486         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14487
14488         * domain.c: Make this module thread safe.
14489
14490         * domain.c (mono_init): Call new initialization function.
14491
14492         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14493         reference types too. Fixes #38812.
14494
14495         * image.c (mono_image_init): Fixed warnings.
14496
14497         * class.c (mono_class_from_typeref): Handle assembly load failure
14498         correctly.
14499
14500         * appdomain.c (add_assemblies_to_domain): Handle the case when
14501         the references of an assembly are not yet loaded.
14502
14503         * metadata.c image.c assembly.c: Moved initialization of global
14504         variables to a separate function called at startup since lazy 
14505         initialization of these variables is not thread safe.
14506         
14507         * image.c assembly.c: Made this module thread safe by adding locks in 
14508         the appropriate places.
14509
14510         * domain.c (mono_init): Call the new initialization functions of the
14511         three modules.
14512
14513 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14514
14515         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14516           make a direct call. It is proxy's work to make the call asynchronous.
14517           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14518           the return values.
14519         * object.cs: mono_method_call_message_new(): read AsyncResult and
14520           state object from parameters list, if this info is requested.
14521         * object.h: Added fields to store remote call output values in
14522           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14523
14524 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14525
14526         * object.h: add needed fields to MonoThread.
14527         * threads.c, threads.h: allow registering a function to cleanup data
14528         allocated per thread by the JIT.
14529
14530 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14531
14532         * loader.h: portability fix by Bernie Solomon
14533         * <bernard@ugsolutions.com>.
14534
14535 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14536
14537         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14538         return a MonoArray. This simplifies the code and also ensures that
14539         the cache allways contains an object reference as a value.
14540
14541         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14542         function.
14543
14544 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14545
14546         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14547         fixes a problem with byte ordering when getting the address family for
14548         a socket.
14549
14550 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14551
14552         * .cvsignore: Added monosn.
14553
14554         * reflection.h reflection.c loader.c: Added support for parameter
14555         marshalling to dynamically created types. Fixes #47295.
14556
14557 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14558
14559         * rand.c: remove useless warnings.
14560
14561 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14562
14563         * class.c: implemented ldtoken for methods and fieldrefs.
14564
14565 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14566
14567         * threadpool.c: when mono_async_invoke was called, no one took care of
14568         monitoring the queue. So if the method invoked took some time and we
14569         got new async invoke requests after 500 ms (the thread created waited
14570         that long in WaitForSingleObject), the new async invoke was not called
14571         until the previous one finished.
14572
14573         This is fixed now. Thanks to Totte for helping with it.
14574
14575 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14576
14577         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14578
14579 2003-08-11  Martin Baulig  <martin@ximian.com>
14580
14581         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14582
14583 2003-08-06  Martin Baulig  <martin@ximian.com>
14584
14585         * mono-debug-debugger.c: Added support for static fields,
14586         properties and methods.
14587
14588 2003-08-06  Martin Baulig  <martin@ximian.com>
14589
14590         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14591         make this work for applications with multiple application domains.
14592
14593 2003-08-04  Martin Baulig  <martin@ximian.com>
14594
14595         * mono-debug-debugger.c: Completely reworked the type support; the
14596         most important thing is that we're now just using one single
14597         `MonoType' instance per type.
14598
14599 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14600
14601         * mono-endian.h, mono-endian.c, icall.c: Added icall
14602         ves_icall_System_Double_AssertEndianity to assert double word endianity
14603         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14604
14605 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14606
14607         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14608         support, icalls and fixes.
14609
14610 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14611
14612         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14613         classes that are a punctuation character in .NET is not the same a
14614         g_unichar_ispunct.
14615
14616 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14617
14618         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14619
14620 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14621
14622         * icall.c: Add new MemCopy internalcall.
14623         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14624         Simplified code; It is not necessary to handle all the cases here,
14625         as the C# code takes care of it.  Only handle the case of the name
14626         resource embedded into the assembly.
14627
14628         Changed signature to return the data pointer and the size of the
14629         data. 
14630
14631 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14632
14633         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14634         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14635
14636 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14637
14638         * socket-io.c: ignore EINTR error in select.
14639
14640 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14641
14642         * class.h, class.c: removed unused subclasses field in MonoClass.
14643
14644 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14645
14646         * icall.c: improve fix of get_base_definition(). If the parent class
14647           doesn't have the mehod, look at the parent of the parent.
14648         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14649           to check if a parameter is an in or out parameter
14650           (PARAM_ATTRIBUTE_IN is not set by default).
14651           mono_method_return_message_restore(): Use mono_class_value_size to
14652           get the size of a value type. mono_type_stack_size (parameterType)
14653           does not return the correct value if parameterType is byRef.
14654           mono_load_remote_field(), mono_load_remote_field_new(),
14655           mono_store_remote_field(), mono_store_remote_field_new():
14656           raise exception if the remote call returns an exception.
14657
14658 2003-07-28  Martin Baulig  <martin@ximian.com>
14659
14660         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14661         method.  This is a wrapper around mono_runtime_invoke() which
14662         boxes the instance object if neccessary.
14663
14664 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14665
14666         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14667         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14668
14669 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14670
14671         * icall.c: disable mcs bug workaround.
14672
14673 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14674
14675         * object.c (mono_runtime_class_init): Take the metadata_section
14676         mutex before obtaining the domain mutex.
14677
14678         * appdomain.h: Added definition of metadata_section mutex here. 
14679
14680         * object.c: define metadata_mutex here.
14681
14682 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14683
14684         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14685         fixed.
14686
14687 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14688
14689         * reflection.c: Fix bug #46669
14690
14691 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14692
14693         * exception.c:
14694         * exception.h:
14695         * icall.c:
14696         * object.h: fill in the type name for TypeLoadException.
14697
14698 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14699
14700         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14701         relationship between TypeBuilders while compiling corlib) and bug
14702         45993 (Array types returned from the runtime while compiling
14703         corlib were from the loaded corlib).
14704
14705 2003-07-22  Martin Baulig  <martin@ximian.com>
14706
14707         * mono-debug-debugger.c: Reworked the type support a bit more;
14708         distinguish between types and classes.
14709
14710 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14711
14712         * icall.c: add IsArrayImpl icall.
14713
14714 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14715
14716         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14717         initializing real_size only once. Also fix bug #46602.
14718
14719 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14720
14721         * object.c: Renamed mono_metadata_section to metadata_section.
14722
14723 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14724
14725         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14726           empty array if the type is an array. Fixed.
14727           ves_icall_MonoMethod_get_base_definition: if the base method
14728           is abstract, get the MethodInfo from the list of methods of
14729           the class.
14730         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14731           and it was 1-based. Fixed in mono_param_get_objects.
14732
14733 2003-07-20  Martin Baulig  <martin@ximian.com>
14734
14735         * mono-debug.h: Set version number to 31.
14736         (mono_debug_init): Added `MonoDomain *' argument.
14737
14738         * mono-debug-debugger.c: Reworked the type support; explicitly
14739         tell the debugger about builtin types; pass the `klass' address to
14740         the debugger.
14741
14742 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14743
14744         * image.c: Allow new metadata tables to be loaded without a
14745         warning. Also update the warning message to give the new constant value.
14746                 
14747 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14748
14749         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14750         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14751         array type representation changes.
14752
14753 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14754
14755         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14756         on Environment.Exit () call.
14757
14758 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14759
14760         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14761         requires a matching corlib.
14762
14763 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14764
14765         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14766           Committed again without the CRs.
14767         
14768 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14769
14770         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14771           getting it from the "this" socket instance. Did not work
14772           if the socket is a subclass of Socket.
14773           Also fixed bug #35371.
14774
14775 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14776
14777         * metadata.c: fixed size for TypedByRef.
14778         * loader.c: when searching for a method, consider the vararg amrker.
14779         * unicode.c, decimal.c: constify some arrays.
14780
14781 2003-07-15  Dick Porter  <dick@ximian.com>
14782
14783         * socket-io.c: Fixed compilation for gcc < 3.2.
14784
14785         Fixed compilation for machines that don't have AF_INET6 (thanks to
14786         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14787
14788         Fixed compile warnings.
14789         
14790         Fixed formatting and line endings.
14791
14792 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14793
14794         * socket-io.h:
14795         * socket-io.c: Added IPv6 support.
14796
14797 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14798
14799         * class.c (mono_class_is_assignable_from): New function to implement
14800         the is_assignable_from logic. Used by mono_object_isinst, 
14801         Type::IsAssignableFrom () and the interpreter.
14802
14803         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14804         Object, even interfaces.
14805         
14806         * object.c (mono_object_isinst): Implement in terms of 
14807         is_assignable_from.
14808
14809         * icall.c (ves_icall_type_is_assignable_from): New icall.
14810
14811 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14812
14813         * domain.c (foreach_domain): fix compiler warning.
14814
14815 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14816
14817         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14818         not available on all plattforms
14819
14820 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14821
14822         * image.h image.c: Store the metadata version string in MonoImage.
14823         * icall.c: New icall to retrieve the image version.
14824         * reflection.c (create_dynamic_image): Fill in the image version field
14825         * reflection.c (build_compressed_metadata): Use the image version
14826         from the image structure.
14827
14828 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14829
14830         * appdomain.c: modified comment.
14831         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14832         That will be its last iteration when mono_gc_cleanup is called from
14833         mono_runtime_cleanup and before the domain is unloaded.
14834
14835         Fixes bug #45962.
14836
14837 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14838
14839         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14840         attributes.
14841
14842 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14843
14844         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14845         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14846         Bernie Solomon <bernard@ugsolutions.com>.
14847
14848 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14849
14850         * object.c, object.h: provide mono_object_new_fast() for faster
14851         allocation in some special cases.
14852
14853 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14854
14855         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14856         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14857
14858 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14859
14860         * threadpool.c: fix leaks.
14861
14862 2003-07-01  Dick Porter  <dick@ximian.com>
14863
14864         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14865         using MonoGHashTables.  Fixes threadpool bug posted to list.
14866
14867 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14868
14869         * image.h, image.c: added support to load an assembly from a byte array.
14870         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14871         assembly bundle support.
14872
14873 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14874
14875         * threadpool.c (mono_thread_pool_add): keep a reference to the
14876         AsyncResult to prevent GC
14877
14878 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14879
14880         * class.c: leak fix.
14881
14882 2003-06-25  Dick Porter  <dick@ximian.com>
14883
14884         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14885         for the async object, the WaitHandle object will close the handle.
14886         Fixes bug 45321.
14887
14888 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14889
14890         * class.c: in mono_array_class_get (), lookup from the hash with the
14891         same type we insert: this works around a bug in
14892         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14893         lluis. The real fix will have to wait for after the release.
14894
14895 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14896
14897         * icall.c: fix memory leak when getting type members.
14898
14899 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14900
14901         * reflection.c: added more pubtoken special cases.
14902
14903 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14904
14905         * class.c: handle field offset correctly when class size
14906         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14907
14908 2003-06-20  Martin Baulig  <martin@ximian.com>
14909
14910         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14911         *image' field.
14912
14913 2003-06-20  Martin Baulig  <martin@ximian.com>
14914
14915         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14916
14917 2003-06-20  Martin Baulig  <martin@ximian.com>
14918
14919         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14920         just distinguish between variables in registers and variables at
14921         an offset relative to a register.
14922
14923 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14924
14925         * icall.c: #ifdef out latest changes until mcs is fixed.
14926
14927 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14928
14929         * icall.c: return members in metadata order.
14930
14931 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14932
14933         * icall.c: avoid infinite loop in GetTimeZoneData.
14934
14935 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14936
14937         * icall.c: added Marshal.Prelink/All icalls.
14938
14939 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14940
14941         * object.c, object.h: fix warnings and do some overflow checking
14942         when creating arrays.
14943
14944 2003-06-17  Dick Porter  <dick@ximian.com>
14945
14946         * file-io.h:
14947         * file-io.c: File attributes need to be tweaked slightly when
14948         passed from the managed to the w32 world.
14949
14950 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14951         * profiler.h profiler-private.h profiler.c: Rework last patch
14952         based on suggestion by Paolo.
14953         
14954 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14955
14956         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
14957         instruction level coverage data collection.
14958         * profiler.h profiler.c (: Added new callback function which can be
14959         used by the profiler to limit which functions should have coverage
14960         instrumentation.
14961         * profiler.c (mono_profiler_load): Call g_module_build_path to
14962         generate the file name of the profiler library.
14963
14964 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14965
14966         * profiler.c, profiler.h, profiler-private.h: added basic block 
14967         coverage profiling API.
14968
14969 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
14970
14971         * reflection.c (mono_reflection_create_runtime_class): Add support
14972         for events in dynamically generated code.
14973
14974         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
14975         not allocated.
14976
14977 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14978
14979         * icall.c: when getting timezone info, return reasonable values if we
14980         can't get the actual data.
14981
14982 2003-06-14  Dick Porter  <dick@ximian.com>
14983
14984         * threads.c (start_wrapper): Remove the reference to the thread
14985         object in the TLS data, so the thread object can be finalized.
14986         This won't be reached if the thread threw an uncaught exception,
14987         so those thread handles will stay referenced :-( (This is due to
14988         missing support for scanning thread-specific data in the Boehm GC
14989         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
14990
14991 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
14992
14993         * reflection.c: ensure streams and tables are first allocated with
14994         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
14995
14996 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14997
14998         * icall.c: fixed GetElementType for byrefs (bug# 44792).
14999
15000 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15001
15002         * reflection.c (mono_reflection_create_runtime_class): Add support for
15003         properties to dynamically created classes.
15004         * reflection.c: Fix a few places where non-MonoObjects were inserted
15005         into the tokens hashtable.
15006
15007 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15008
15009         * object.c: some support to handle out of memory exceptions.
15010
15011 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15012
15013         * marshal.c (mono_marshal_get_native_wrapper): support reference
15014         return types
15015
15016 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15017
15018         * object.h, object.c: more portability stuff from Bernie Solomon.
15019         Unexport mono_object_allocate(). Added mono_object_unbox ().
15020         Set exitcode when an unhandled exception is thrown.
15021
15022 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15023
15024         * marshal.c (mono_marshal_get_native_wrapper): use custom
15025         marshaler for return types.
15026
15027 2003-06-10  Dick Porter  <dick@ximian.com>
15028
15029         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15030         ip_mreq is available
15031
15032 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15033
15034         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15035         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15036         by Bernie Solomon <bernard@ugsolutions.com>.
15037
15038 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15039
15040         * gc.c (mono_gc_init): Avoid error message on shutdown when
15041         GC_DONT_GC=1 is used.
15042
15043         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15044         New icall to return the GUID of a module.
15045
15046 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15047
15048         * class.c: ensure instance size always includes the parent's size
15049         even whem class size is set explicitly (fixes bug#44294).
15050
15051 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15052
15053         * profiler.h, profiler.c: made the simple profiler thread-safe,
15054         get more accurate timing info. Allow the loading of an
15055         externally-developed profiler module.
15056
15057 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15058
15059         * marshal.c (mono_marshal_get_native_wrapper): improved
15060         class/byref arguments.
15061         (mono_marshal_get_native_wrapper): better string marshaling support.
15062
15063 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15064
15065         * class.c: ensure .pack and .size are handled correctly and
15066         simplified layout of static fields.
15067
15068 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15069
15070         * appdomain.c
15071         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15072
15073         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15074         current directory (fix bug 44008)
15075
15076 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15077
15078         * marshal.c (mono_marshal_get_native_wrapper): started support for
15079         custom marshalers.
15080         (mono_delegate_to_ftnptr): consider marshalling specifications
15081
15082 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15083
15084         * reflection.c, reflection.h: emit custom marshal info.
15085
15086 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15087
15088         * object.c: free the GError.
15089         * icall.c: added CloseEvent_internal.
15090         * threads.[ch]:
15091         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15092         call.
15093
15094 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15095
15096         * loader.c (mono_method_get_signature): Add support for dynamic
15097         assemblies.
15098
15099 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15100
15101         * reflection.c: fixed bug #43905.
15102
15103 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15104
15105         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15106         handling TypedReference and ArgIterator.
15107         * loader.c, loader.h: added function to get signature at call site.
15108
15109 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15110
15111         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15112         data readonly. Buglets and warning fixes. Some MethodSpec support.
15113
15114 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15115
15116         * class.h, class.c, object.c: remove relative numbering support.
15117
15118 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15119
15120         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15121         free the string, until we get a chance to fix Gtk#
15122
15123 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15124
15125         * marshal.c: revert last patch.
15126
15127 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15128
15129         * icall.c: updates for new mono_class_vtable() not calling
15130         the type constructor anymore.
15131
15132 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15133
15134         * object.h, object.c: separate vtable creation from type
15135         initialization. Make running the .cctor thread safe.
15136
15137 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15138
15139         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15140
15141 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15142
15143         * loader.c (mono_get_method): consider calling convention
15144
15145 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15146
15147         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15148         to return the invisible global type for a module.
15149
15150         * reflection.c (mono_image_build_metadata): Emit global fields too.
15151
15152 2003-05-20  Peter Williams  <peterw@ximian.com>
15153
15154         * loader.c (mono_lookup_internal_call): Add a few newlines.
15155
15156 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15157
15158         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15159         literal strings.
15160
15161         * appdomain.c (set_domain_search_path): Recalculate search path when
15162         AppDomainSetup.PrivateBinPath changes.
15163
15164         * object.c (mono_class_compute_gc_descriptor): It turns out some
15165         parts of the class libs (like System.Thread) holds pointers to
15166         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15167         to treat native int a pointer type here.
15168         
15169 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15170
15171         * appdomain.h, domain.c: add hashtable for jump target resolution.
15172
15173 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15174
15175         * reflection.h reflection.c icall.c: Added new icalls 
15176         GetManifestResourceInfoInternal, GetModulesInternal and support
15177         infrastructure.
15178
15179 2003-05-16  Dick Porter  <dick@ximian.com>
15180
15181         * icall.c:
15182         * file-io.h:
15183         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15184
15185 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15186
15187         * object.c: mono_store_remote_field: little fix to previous patch.
15188
15189 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15190
15191         * class.c: add constructors to array classes.
15192         * icall.c: special case array construction for InternalInvoke (),
15193
15194 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15195
15196         * class.h class.c reflection.c object.c: Added support for field
15197         defaults in dynamically generated classes.
15198
15199 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15200
15201         * reflection.c: properly encode charset for ddlimport.
15202
15203 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15204
15205         * threads.c: allow compiling without GC.
15206
15207 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15208
15209         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15210         handling of thread static data.
15211
15212 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15213
15214         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15215
15216 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15217
15218         * class.c (mono_array_class_get): always set the serializable flags
15219         (mono_array_class_get): always set the SEALED attribute for array types
15220
15221 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15222
15223         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15224         attributes (fix for bug 42021).
15225
15226 2003-05-12  Dick Porter  <dick@ximian.com>
15227
15228         * gc.c: Don't run finalizers when the finalizer thread is
15229         finishing up, because the default domain has already been
15230         destroyed.
15231
15232 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15233
15234         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15235         value is null, we should throw an exception.   This is slightly
15236         different than the other conventions used for the constructor.
15237
15238 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15239
15240         * socket-io.c: fixed windows build.
15241
15242 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15243
15244         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15245
15246 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15247
15248         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15249         compilers.
15250
15251 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15252
15253         * class.c (mono_class_layout_fields): Add experimental GC aware
15254         auto layout facility. Requires class library changes to work correctly.
15255
15256         (mono_class_setup_vtable): Avoid overriding explicit interface
15257         method implementations. Fixes iface3.exe test.
15258
15259         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15260         object reference.
15261         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15262         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15263
15264         * metadata.h: Add new type classification macro which determines
15265         whenever the type holds an object reference.
15266
15267 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15268
15269         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15270
15271 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15272
15273         * gc.c (finalizer_thread): Work around a GC bug.
15274
15275 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15276
15277         * marshal.c (emit_struct_conv): allow unions
15278
15279         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15280
15281 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15282
15283         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15284
15285 2003-05-06  Martin Baulig  <martin@ximian.com>
15286
15287         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15288
15289 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15290
15291         * socket-io.c:
15292         (Select_internal): allow NULLs, don't create arrays if not needed.
15293         Coupled with Socket.cs changes.
15294
15295         * threadpool.c:
15296         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15297         register a finalizer for it that will close the semaphore handle. This
15298         fixes the leak and make Lupus' test run with > 4080 loops.
15299
15300 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15301
15302         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15303         Jerome Laban (bug #42287)
15304
15305 2003-05-02  Martin Baulig  <martin@ximian.com>
15306
15307         * debug-mono-symfile.h
15308         (MonoSymbolFile): Moved declaration into mono-debug.h.
15309         (MonoDebugMethodJitInfo): Likewise.
15310         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15311         argument.
15312         (_mono_debug_address_from_il_offset): Take a
15313         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15314
15315         * mono-debug.h
15316         (MonoDebugDomainData): New struct.
15317         (mono_debug_get_domain_data): New function.
15318         (mono_debug_add_method): Take an additional `MonoDomain *'
15319         argument.
15320         (mono_debug_source_location_from_address): Likewise.
15321         (mono_debug_il_offset_from_address): Likewise.
15322         (mono_debug_address_from_il_offset): Likewise.
15323
15324 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15325
15326         * reflection.c: one more check for null type in custom attrs.
15327
15328 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15329
15330         * reflection.c: avoid warning (comparison is always false due to limited
15331         range of data type).
15332
15333 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15334
15335         * icall.c: throw an exception in Type.GetField if the argument 'name'
15336         is NULL.
15337
15338 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15339
15340         * reflection.c: fixed handling of enums in named arguments to custom
15341         attributes (bug #42123).
15342
15343 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15344
15345         * reflection.c: use the right array element type and handle
15346         a null for a Type argument, too.
15347
15348 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15349
15350         * reflection.c: handle arrays as arguments to custom attributes.
15351
15352 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15353
15354         * reflection.c: handle a string value in a custom attr
15355         ctor that takes an object.
15356
15357 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15358
15359         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15360         (fix bug #42063)
15361
15362 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15363
15364         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15365
15366 2003-04-27  Martin Baulig  <martin@ximian.com>
15367
15368         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15369         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15370         MONO_DEBUGGER_EVENT_BREAKPOINT.
15371         (mono_breakpoint_trampoline_code): Removed.
15372         (mono_debugger_event_handler): The last argument is now a
15373         `guint32'.
15374         (mono_debugger_insert_breakpoint_full): Removed the
15375         `use_trampoline' argument.
15376         (mono_debugger_method_has_breakpoint): Likewise.
15377         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15378         mono_debugger_breakpoint_callback(); take the method and
15379         breakpoint number as arguments.
15380
15381 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15382
15383         * metadata.c: fix off by one when loading parameters attributes.
15384
15385 2003-04-24  Martin Baulig  <martin@ximian.com>
15386
15387         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15388
15389 2003-04-24  Martin Baulig  <martin@ximian.com>
15390
15391         * mono-debug-debugger.c: Moved all code which interacts with the
15392         Mono Debugger here.
15393
15394         * debug-mono-symfile.c: This code now just deals with the symbol
15395         file itself, the debugger code is now in mono-debug-debugger.c.
15396
15397 2003-04-23  Martin Baulig  <martin@ximian.com>
15398
15399         * mono-debug.c (mono_debug_source_location_from_il_offset):
15400         New method; like mono_debug_source_location_from_address(), but
15401         takes an IL offset instead of a machine address.
15402
15403 2003-04-23  Martin Baulig  <martin@ximian.com>
15404
15405         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15406         `line' field; this is now computed by the debugger.
15407
15408 2003-04-23  Martin Baulig  <martin@ximian.com>
15409
15410         * mono-debug.[ch]: New files.  This is the new debugging interface.
15411
15412         * mono-debug-debugger.[ch]: New files.  Moved all code which
15413         interacts with the Mono Debugger here.
15414
15415 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15416
15417         * domain.c (mono_init): initialize mono_defaults.monitor_class
15418
15419 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15420
15421         * reflection.c (method_encode_code): Add a spicy exception to help
15422         future compiler authors.
15423
15424 2003-04-21  Martin Baulig  <martin@ximian.com>
15425
15426         * icall.c
15427         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15428         Make this work with relative pathnames; g_filename_to_uri() needs
15429         an absolute filename.
15430
15431 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15432
15433         * icall.c: Track name changes in Object and ValueType.
15434
15435 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15436
15437         * metadata.c (mono_type_stack_size): size should be a multiple of
15438         sizeof (gpointer)
15439
15440 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15441
15442         * gc.c:
15443         (internal_domain_finalize): moved into mono_domain_finalize. No need
15444         to create another thread because the finalizers will be run in the
15445         finalizer thread.
15446         
15447         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15448         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15449         to be run (MS does this too).
15450
15451 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15452
15453         * object.c (mono_class_compute_gc_descriptor): Update comment.
15454
15455         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15456
15457         * image.h: Add synchronized wrapper cache.
15458
15459         * image.c (do_mono_image_open): Initialize cache.
15460
15461         * reflection.c (create_dynamic_mono_image): Initialize cache.
15462
15463 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15464
15465         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15466         ves_icall_System_Buffer_ByteLengthInternal.
15467
15468 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15469
15470         * reflection.c: setup klass->nested_in earlier. Allow
15471         a dash in the assembly name.
15472
15473 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15474
15475         * metadata.c (mono_type_to_unmanaged): dont access
15476         type->data.klass for MONO_TYPE_OBJECT
15477         (mono_type_to_unmanaged): consider System.Delegate class
15478
15479 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15480
15481         * class.c: just setup supertypes in the proper place instead of
15482         initializing the full element class for arrays.
15483
15484 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15485
15486         * class.c: ensure the element class of arrays is initialized.
15487         Setup the supertype info for array classes, too.
15488
15489 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15490
15491         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15492
15493 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15494
15495         * Makefile.am: re-added -m option when running cygpath. This way,
15496         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15497         separator.
15498         * mono-config.c: same codepath for locating mono config file for WIN32
15499         and the rest.
15500         * assembly.c: if mono_assembly_setrootdir is called, don't override
15501         the value set.
15502
15503 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15504
15505         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15506         MONO_ASSEMBLIES variable.
15507
15508 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15509
15510         * icall.c: added Assembly::GetNamespaces() icall.
15511
15512 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15513
15514         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15515
15516 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15517
15518         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15519         * object.c: fixed bug in the construction of vtable for proxies
15520
15521 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15522
15523         * object.c (mono_array_new): Mark mono_array_new as an icall.
15524
15525 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15526
15527         * class.c: fixed test for public method when overriding interfaces.
15528         Closes bug #40970.
15529
15530 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15531
15532         * appdomain.h, domain.c: added mono_domain_foreach() to
15533         be able to access the currently loaded appdomains.
15534         * object.c: make string interning work across sppdomains.
15535         Mark some functions for use as icalls.
15536
15537 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15538
15539         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15540
15541         * reflection.h reflection.c: Allocate long living data using 
15542         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15543
15544         * reflection.c: Double the allocation size in streams instead of
15545         increasing it, to prevent unneccesary copying on large assemblies.
15546         
15547         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15548         creation if the assembly does not have the Run flag set.
15549
15550 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15551
15552         * class.h: avoid the C++ keywords in header files (Jerome Laban
15553         spotted and fixed this).
15554
15555 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15556
15557         * object.c:
15558         (mono_unhandled_exception): fill in the arguments for the
15559         UnhandledException event. Only trigger that event for the default
15560         domain (as MS does).
15561
15562 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15563
15564         * object.c: Improve typed allocation stuff based on suggestions from
15565         Paolo. Also turn it on if the GC library supports it.
15566
15567 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15568
15569         * object.c object.h class.h: Added experimental typed allocation
15570         facility using the interfaces in gc_gcj.h.
15571
15572         * os/gc_wrapper.h: Added new include files.
15573         
15574 2003-04-03  Martin Baulig  <martin@ximian.com>
15575
15576         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15577         which is not yet enabled by default.
15578
15579         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15580         functions.
15581         (mono_gc_lock, mono_gc_unlock): New static functions.
15582
15583         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15584         functions; stop/start the world for the garbage collector.  This
15585         is using the windows API; we need to complete the SuspendThread()/
15586         ResumeThread() implementation in the io-layer to make this work on Unix.
15587         (mono_gc_push_all_stacks): New public function; tells the garbage
15588         collector about the stack pointers from all managed threads.
15589
15590 2003-04-03  Martin Baulig  <martin@ximian.com>
15591
15592         * object.h (MonoThread): Added `gpointer stack_ptr'.
15593
15594         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15595
15596 2003-04-03  Martin Baulig  <martin@ximian.com>
15597
15598         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15599
15600 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15601
15602         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15603         field.last.
15604
15605 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15606
15607         * loader.c (mono_lookup_internal_call): Report the corlib that is
15608         out of sync.
15609
15610 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15611
15612         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15613         System.DBNull (it's class not valuetype).
15614
15615 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15616
15617         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15618         if the array method was already assigned a token (fixes bug#40646).
15619
15620 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15621
15622         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15623         if no assembly is given.
15624
15625 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15626
15627         * metadata.h: Added the new tables.
15628
15629         * row-indexes.h: Added definitions for new tables.
15630
15631         * metadata.c: Add schemas for new tables, and add support for
15632         computing the sizes of them.
15633
15634         * class.c: Update for handling the new type cases.
15635
15636 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15637
15638         * metadata.h (MONO_TYPE_IS_VOID): new macro
15639
15640 2003-03-31  Martin Baulig  <martin@ximian.com>
15641
15642         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15643
15644         * threads.c (mono_thread_new_init): Call `thread_created' in the
15645         mono_thread_callbacks.
15646
15647 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15648
15649         * loader.h: added marshalbyrefobject_class to mono_defaults
15650         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15651         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15652           generation of output parameters.
15653           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15654         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15655           contextbound and the target object belongs to the context of the caller.
15656         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15657         * object.c: Implemented support for interfaces and abstract classes
15658           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15659           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15660
15661 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15662
15663         * class.h class.c (mono_class_is_subclass_of): New function.
15664         
15665         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15666         routines for most common case (calls from ArrayList::ToArray).
15667
15668         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15669         routine so programs which call Environment::Exit() can be profiled.
15670
15671         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15672         Added MONO_ARCH_SAVE_REGS.
15673
15674         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15675
15676 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15677
15678         * blob.h: Add a couple of new MonoType types definitions.
15679
15680         * tabledefs.h: Add a couple of new call convs.
15681
15682 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15683
15684         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15685         the layout of the class.
15686
15687         * reflection.c (alloc_table): double the size on overflow to avoid
15688         unnecessary copying.
15689
15690         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15691         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15692         null so it can be garbage collected.
15693         
15694 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15695
15696         * reflection.c (mono_reflection_get_type): Return the resolved type
15697         only if it is in the assembly we searched.
15698
15699         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15700
15701         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15702         method.
15703
15704 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15705
15706         * appdomain.c:
15707         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15708         the right one is 'file:///blah', but MS allows it.
15709         * assembly.c:
15710         (mono_assembly_open): allow 'file://blah'
15711
15712         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15713
15714 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15715
15716         * socket-io.c: fixes bug #40310.
15717
15718 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15719
15720         * reflection.c (mono_reflection_parse_type): handle deeply nested
15721         types correctly.
15722
15723         * reflection.c (mono_image_create_token): Use unique token values
15724         since they will be put into a hash table.
15725
15726         * class.c (mono_class_setup_vtable): If a method occurs in more than
15727         one place in the vtable, and it gets overriden, then change the
15728         other occurances too.
15729
15730         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15731         object as return type.
15732
15733 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15734
15735         * icall.c: Deleted "ToString" implementation for double and float
15736         because they are full implemented in managed code.
15737
15738 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15739
15740         * reflection.c, reflection.h: implemented and exported functions
15741         to retrieve info about custom attributes.
15742
15743 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15744
15745         * appdomain.c: moved Uri handling to assembly.c
15746         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15747         work when using a file Uri in *nix and windows.
15748
15749         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15750         GetReferencedAssemblies.
15751
15752 2003-03-18  Dick Porter  <dick@ximian.com>
15753
15754         * icall.c: Rename a couple of internal calls
15755
15756         * threads.c: Set the thread state to Stopped when a thread exits.
15757         Fixes bug 39377.
15758
15759 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15760
15761         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15762         New icall.
15763
15764         * object.c (mono_class_vtable): fix warning.
15765
15766 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15767
15768         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15769
15770         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15771         memory.
15772         (method_encode_clauses): Create exception info structures in the right
15773         order.
15774         (mono_reflection_setup_internal_class): Initialize supertypes field.
15775
15776         * class.c object.c: Handle interfaces which implement other interfaces 
15777         correctly.
15778
15779         * class.h class.c: Move the supertypes array initialization code into 
15780         a separate function so it can be used for dynamic types too. Also call
15781         it earlier, in mono_class_init(), since it can be used before the
15782         type is initialized.
15783
15784 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15785
15786         * Makefile.am:
15787         * assembly.c:
15788         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15789
15790         * appdomain.c:
15791         * appdomain.h:
15792         * marshal.c:
15793         * object.c: remove warnings.
15794
15795 2003-03-13  Martin Baulig  <martin@ximian.com>
15796
15797         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15798         (MonoDebugLexicalBlockEntry): New types.
15799
15800         * debug-mono-symfile.c
15801         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15802
15803 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15804
15805         * process.c: ret can be any non-zero value accroding to MS doc.
15806
15807 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15808
15809         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15810         fixing a warning for a miss-used prototype, would have cause
15811         random memory corruption.
15812
15813 2003-03-07  Martin Baulig  <martin@ximian.com>
15814
15815         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15816         getting really annoying ....
15817
15818 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15819
15820         * reflection.c (fixup_method): added support for array methods.
15821
15822 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15823
15824         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15825         (pointed out by Michael Adams).
15826
15827 2003-03-04  Dick Porter  <dick@ximian.com>
15828
15829         * icall.c: Temporarily reverted the Double and Single ToString()
15830         change, because it broke nunit.
15831
15832 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15833
15834         * object.h, threads.h: make include files compatible with C++
15835         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15836
15837 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15838
15839         * icall.c: Erased ToString helper functions for Double and Single.
15840         Now, that implementations ar all in managed code (Double and Single
15841         Formatters).
15842
15843 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15844
15845         * appdomain.c: Added method for initializing the default context of
15846         a domain. Added internal call for getting the default context.
15847         * appdomain.h: Added context variable in MonoDomain struct.
15848         * domain.c: mono_domain_set also sets the default context of the domain
15849         * icall.c: Mapped internal method InternalGetDefaultContext.
15850         * object.c: mono_object_get_virtual_method returns always a remoting
15851         wrapper if the object is a transparent proxy.
15852         mono_runtime_invoke_array: when creating an object by calling the
15853         constructor, if the created object is a proxy, then the constructor should
15854         be called using the a remoting wrapper.
15855
15856 2003-03-03  Dick Porter  <dick@ximian.com>
15857
15858         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15859         variable so it compiles on solaris.  Problem spotted by
15860         Christopher Taylor <ct@cs.clemson.edu>
15861
15862 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15863
15864         * appdomain.c:
15865         (get_info_from_assembly_name): don't leak value.
15866
15867         * icall.c:
15868         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15869         result.
15870
15871 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15872
15873         * assembly.c: export mono_image_load_references ().
15874         * class.c: handle function pointers. mono_class_from_name() now
15875         supports nested type names directly.
15876
15877 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15878
15879         * reflection.h reflection.c: Encode already created dynamic methods 
15880         and fields correctly as a DEF instead of a REF.
15881
15882         * reflection.c: Get rid of the force_ref argument to 
15883         mono_image_typedef_or_ref since it was wrong in the first place.
15884
15885         * string-icalls.c: add error checking to string constructors according
15886         to the MSDN docs.
15887
15888         * reflection.c: Emit types in the order their TypeBuilders were 
15889         created. Previously, a new table index was assigned to each type before
15890         the tables were emitted. This was wrong because the signature blob
15891         might already refer to a type by its original table index.
15892
15893 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15894
15895         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15896         change.
15897         
15898 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15899
15900         * Makefile.am: make assemblies dir have \ instead of / on windows.
15901
15902 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15903
15904         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15905         iterate over the NESTEDCLASS table using a linear search since the
15906         table is not guaranteed to be sorted by the secondary key.
15907
15908         * class.c (mono_class_create_from_typedef): fixed up call to
15909         mono_metadata_nesting_typedef.
15910         
15911 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15912
15913         * marshal.c (mono_string_to_byvalstr): clear the memory as
15914         suggested by Jerome Laban <jlaban@wanadoo.fr>
15915
15916 2003-02-26  Dick Porter  <dick@ximian.com>
15917
15918         * process.c: Cope with padding in .rsrc blocks
15919
15920 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15921
15922         * metadata.h: reverted the filter_len change, it breaks reflection
15923         
15924 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15925
15926         * metadata.h: added a new field to store the filter_len
15927         
15928
15929 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15930
15931         * reflection.c: handle custom attributes for types and members
15932         created with Reflection.Emit (bug#38422).
15933
15934 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15935
15936         * reflection.c: define RTSpecialName automatically for constructors for
15937         compatibility with MS.NET.
15938
15939         * reflection.c (mono_reflection_create_runtime_class): initialize
15940         nested_in field of dynamically created classes.
15941
15942 2003-02-22  Martin Baulig  <martin@ximian.com>
15943
15944         * debug-mono-symfile.h: Incremented version number.
15945
15946 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15947
15948         * object.h icall.c process.c: fix warnings.
15949
15950 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15951
15952         * appdomain.h appdomain.c:
15953         (mono_domain_try_type_resolve): split the 
15954         name_or_tb argument into a name and a tb argument.
15955         (mono_domain_has_type_resolve): new function to check whenever the
15956         application has registered a TypeResolve event handler.
15957         
15958         * icall.c reflection.h reflection.c: move the type resolve logic into
15959         mono_reflection_get_type () so it will be invoked when 
15960         Assembly::GetType () is called.
15961
15962         * reflection.c:
15963         (mono_reflection_get_type): renamed to get_type_internal.
15964         (mono_reflection_get_type): fixed type name generation so it works 
15965         for nested types too.
15966         (mono_reflection_get_type): call has_type_resolve () to avoid the 
15967         costly type name generation if there is no resolve event handler.
15968
15969 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15970
15971         * class.c, image.c: load exported types from file references.
15972
15973 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
15974
15975         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
15976           used to cache the managed methods used to create proxies and make 
15977           remote invocation of methods.
15978         * class.h: Added in MonoVTable a flag to indicate that a class needs 
15979           to be remotely created.
15980         * object.c: Modified the method mono_class_vtable(). It now initializes 
15981           the remote flag of the vtable. Modified mono_object_new_specific(), 
15982           so now it checks the remote flag.
15983         * icall.c: Added a couple of internal methods, one for enabling instance 
15984           creation interception for a type, and one for creating objects bypassing
15985           the remote check.
15986
15987 2003-02-18  Martin Baulig  <martin@ximian.com>
15988
15989         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
15990         New interncall to get a method's metadata token.
15991
15992         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
15993         New interncall for the debugger.
15994
15995 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
15996
15997         * class.c (mono_class_setup_vtable): allocate supertype array
15998
15999 2003-02-18  Martin Baulig  <martin@ximian.com>
16000
16001         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16002
16003 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16004
16005         * reflection.c:
16006         (assembly_name_to_aname): jump over unknown properties (i've found
16007         something like: 'type, assembly, version=xxx, custom=null, public...',
16008         so now will ignore custom=null and still get the rest of the values).
16009
16010 2003-02-17  Dick Porter  <dick@ximian.com>
16011
16012         * threads.c: Have Thread.Start() wait for a semaphore to signal
16013         that the thread has set up all its local data.  This fixes bug
16014         34323, where Abort() raced the new thread's TLS data.
16015
16016         Also removes the handle_store() call from start_wrapper, because
16017         threads are now always created suspended and there is no longer a
16018         race between the parent and child threads to store the info.
16019
16020 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16021
16022         * image.c: explain the #- heap issue in a message, hopefully
16023         avoiding FAQs on mono-list.
16024
16025 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16026
16027         * icall.c:
16028         (GetEntryAssembly): if the domain has not invoked
16029         AppDomain.ExecuteAssembly yet, return the assembly of the default
16030         AppDomain.
16031
16032 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16033
16034         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16035
16036 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16037
16038         * metadata.c, reflection.c: simple speedup to type hash
16039         and equals code.
16040
16041 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16042
16043         * image.c, image.h, class.c, assembly.c: move module loading
16044         to MonoImage. When loading metadata, consider alignemnet from
16045         the start of metadata, not from the metadata address in memory.
16046
16047 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16048
16049         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16050         AssemblyBuilder objects. Factored out custom attribute creation into
16051         a separate function.
16052         (create_custom_attr): new function to create custom attributes.
16053
16054 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16055
16056         * Makefile.am: Got tired of typing the full pathname to pedump.
16057         Until there is another option, am installing this.
16058
16059 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16060
16061         * class.c (class_compute_field_layout): always set field->parent 
16062         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16063
16064 2003-02-11  Dick Porter  <dick@ximian.com>
16065
16066         * threads-types.h:
16067         * monitor.c: Rewrote Monitor, making lock much faster and
16068         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16069         creates them as needed.
16070
16071         * exception.c: Added SynchronizationLockException
16072
16073         * threads.c: Deleted old Monitor implementation.  The new one is
16074         in a new file.
16075
16076 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16077
16078         * class.c: handled TypedReference type code. Set the correct size for
16079         class data. Setup interface_offsets for interface classes, too.
16080
16081 2003-02-09  Martin Baulig  <martin@ximian.com>
16082
16083         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16084
16085 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16086
16087         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16088         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16089         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16090         * verify.c: check for code that runs after the end of the method.
16091
16092 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16093
16094         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16095         "System.Math::Round2".
16096         * sysmath.h: Added Floor, Round and Round2 definitions.
16097         * sysmath.c: Modified certain functions that were not 100% compliant
16098         with MS.NET (math precision) and added the implementation of Floor,
16099         Round and Round2.
16100
16101 2003-02-07  Martin Baulig  <martin@ximian.com>
16102
16103         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16104
16105 2003-02-07  Martin Baulig  <martin@ximian.com>
16106
16107         * debug-mono-symfile.c: Reflected latest symwriter changes.
16108         (mono_debug_create_mono_symbol_file): Removed.
16109         (mono_debug_open_mono_symbol_file): Take an argument which
16110         specifies whether to create a dynamic symbol file.
16111
16112 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16113
16114         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16115
16116 2003-02-05  Martin Baulig  <martin@ximian.com>
16117
16118         * reflection.c (mono_image_build_metadata): Make this public,
16119         protect it against being called multiple times, don't create
16120         resources and don't build the compressed metadata here.
16121         (mono_image_create_pefile): Do this here.
16122
16123         * icall.c
16124         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16125
16126 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16127
16128         * socket-io.c: fixed bug #36322.
16129
16130 2003-02-06  Piers Haken <piersh@friskit.com>
16131
16132         * appdomain.[ch]:
16133         * class.h:
16134         * debug-mono-symfile.c:
16135         * icall.c:
16136         * loader.c:
16137         * mono-config.c:
16138         * monosn.c:
16139         * reflection.c:
16140         * socket-io.c: warning cleanups
16141
16142 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16143
16144         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16145         function. works like remoting invoke, but does a check for the Proxy first.
16146
16147 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16148
16149         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16150
16151 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16152
16153         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16154         array of pointers.
16155         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16156         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16157
16158         * object.c (mono_store_remote_field_new): used by the new jit
16159         instead of mono_store_remote_field
16160         (mono_load_remote_field_new): used by the new jit
16161         instead of mono_load_remote_field
16162
16163 2003-02-05  Patrik Torstensson
16164
16165         * appdomain.c: changed unload to take the domain id instead
16166         of domain
16167         
16168         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16169
16170
16171 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16172
16173         * appdomain.c: don't look for assemblies in ApplicationBase if
16174         PrivateBinPathProbe is set.
16175
16176 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16177
16178         * object.c: make the first argument in main_args contain the absolute
16179         path to the assembly. Fixes bug #37511.
16180
16181 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16182
16183         * icall.c: get correct UTC offset for countries not using daylight
16184         time saving. Fixes bug #30030.
16185
16186 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16187
16188         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16189         and 1 are the family).
16190
16191 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16192
16193         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16194
16195         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16196
16197 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16198
16199         * reflection.c: added support for SignatureHelper tokens, which is
16200         needed by the Calli opcode.
16201
16202         * reflection.h: track changes to SignatureHelper class.
16203
16204         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16205
16206 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16207
16208         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16209
16210 2003-02-03  Patrik Torstensson
16211         * appdomain.[c|h], domain.c : 
16212          - Added support for getting a domain via domain id
16213          - Support for setting and getting domain from System.AppDomain 
16214            (used in cross appdomain channel)
16215          - Added support for get/set for a MonoAppContext on a thread 
16216            (Context class in System.Runtime.Remoting.Contexts),
16217          - Removed hack in Get/SetData and ExecuteAssembly.
16218         
16219         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16220         the managed world to get control when a proxy is created.
16221
16222         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16223         
16224 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16225
16226         * icall.c
16227         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16228         Populate the codebase field as well.
16229
16230 2003-02-02  Martin Baulig  <martin@ximian.com>
16231
16232         * debug-mono-symfile.c
16233         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16234         (mono_debug_symfile_add_method): Allow interncalls.
16235
16236 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16237
16238         * icall.c: throw parse exception if strtod fails or the string is empty.
16239
16240 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16241
16242         * marshal.c: handle object type separately from defined
16243         class types.
16244
16245 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16246
16247         * marshal.c: handle NATIVE_LPSTR for strings when it's
16248         explicitly specified.
16249
16250 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16251
16252         * reflection.c, reflection.h, icall.c: setup the reflection
16253         handle cache for ModuleBuilders and AssemblyBuilders.
16254
16255 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16256
16257         * reflection.c (reflection_methodbuilder_to_mono_method): set
16258         pinvoke flag
16259
16260 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16261
16262         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16263
16264 2003-01-29  Dick Porter  <dick@ximian.com>
16265
16266         * threads.c: No need for the fake_thread kludge now that Thread
16267         doesn't run a class constructor
16268         
16269 2003-01-29  Dick Porter  <dick@ximian.com>
16270
16271         * threads.c: Use g_direct_hash instead of the rather bogus
16272         g_int_hash
16273
16274 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16275
16276         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16277         (fix pinvoke12.exe)
16278         (mono_marshal_get_struct_to_ptr): generate valid IL code
16279         (mono_marshal_get_ptr_to_struct): generate valid IL code
16280         (*): correctly set sig->pinvoke, we need to memdup the signature
16281         to do that
16282
16283 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16284
16285         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16286         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16287
16288 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16289
16290         * profiler.c: provide more callers information.
16291
16292 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16293
16294         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16295
16296         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16297
16298         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16299
16300 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16301
16302         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16303         exception instead of going into an infinite loop on dates which it 
16304         can't yet handle.
16305
16306         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16307         out-of-range exception if needed.
16308
16309         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16310         an implementation for an interface method and to override an inherited
16311         method at the same time. 
16312         Imagine a scenario when a virtual method is used to override a
16313         virtual abstract method in a parent class, and this same method 
16314         provides an implementation for an method inherited from an interface. 
16315         In this case, the interface resolution code will set im->slot, which 
16316         means that the virtual method override pass will skip this method 
16317         which means a pointer to the abstract method inherited from the parent
16318         will remain in the vtable of this non-abstract class.
16319
16320         * class.c: (mono_class_setup_vtable): continue search for a real 
16321         method if only an abstract method is found.     
16322
16323 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16324
16325         * reflection.c: add size to encoding for ByValStr and ByValArray
16326         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16327
16328 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16329
16330         * class.c (mono_class_setup_vtable): pass the override info as an
16331         argument.
16332
16333         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16334         correctly.
16335         
16336         * reflection.c (ensure_runtime_vtable); add support for method 
16337         overrides.
16338         
16339 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16340
16341         * reflection.c (resolution_scope_from_image): Hack to work to work with
16342         dynamic assemblies.
16343
16344         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16345         added a 'force_ref' argument to force this function to allways return 
16346         a TypeRef. This is needed by mono_image_get_memberref_token ().
16347         
16348 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16349
16350         * reflection.c (mono_image_get_type_info): interfaces really don't have
16351         a parent.
16352
16353         * reflection.c (mono_image_basic_init): fill out missing fields of
16354         image structure.
16355
16356         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16357         dynamic assemblies. This is required so dynamic assemblies show up in
16358         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16359         Type::GetType() etc. This is consistent with MS behaviour.
16360
16361         * image.c image.h reflection.c: add newly created classes to the name 
16362         cache so mono_class_get () will find them.      
16363
16364 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16365
16366         First part of changes to get IKVM.NET running under mono.
16367         
16368         * appdomain.h, appdomain.c: added new function 
16369         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16370         This function will call AppDomain::DoTypeResolve to do the actual work.
16371
16372         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16373         moved existing code dealing with dynamic tokens to a new function 
16374         called mono_reflection_lookup_dynamic_token (). This function will 
16375         raise TypeResolve events when appropriate. Since reflection.c is not 
16376         part of libmetadata, a new hook function called 
16377         mono_lookup_dynamic_token() is added to class.c which will call this.
16378
16379         * assembly.h assembly.c: make the invoke_load_hook function public,
16380         so it can be called for dynamic assemblies.
16381
16382         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16383
16384         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16385         type isn't found.
16386
16387         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16388         MonoGHashTable, since it contains pointers to objects which the GC 
16389         needs to track.
16390
16391         * assembly.c (search_loaded): remove unused variable.
16392         
16393 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16394
16395         * object.c: fixed issue exposed by gcc-generated IL programs
16396         that use RVA data for pointers.
16397
16398 2003-01-25  Martin Baulig  <martin@ximian.com>
16399
16400         * threads.c (start_wrapper): Moved the initialization of
16401         `start_func' above the mono_new_thread_init() call to which we
16402         pass it as argument.
16403
16404 2003-01-24  Martin Baulig  <martin@ximian.com>
16405
16406         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16407         the MonoThread pointer.
16408
16409 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16410
16411         * icall.c: Rename `PowImpl' to Pow.
16412
16413 2003-01-23  Dick Porter  <dick@ximian.com>
16414
16415         * threads.c (start_wrapper): Create a Thread object if needed, so
16416         the Main() thread can do the class initialisation in a subthread
16417         that has been set up to allow managed code execution.
16418
16419         Pass the thread ID instead of the MonoThread pointer to the thread
16420         start and attach callbacks.  This change is required, because the
16421         jit thread start callback must be called _before_ the Thread
16422         object can be created.
16423         
16424         (mono_thread_init): Removed much object creation code that is no
16425         longer needed.  No managed code is called from here now.
16426
16427         * object.c (mono_runtime_exec_managed_code): Create a subthread
16428         for Main, and call back to the runtime to use it.
16429         Set the exit code when Main exits.
16430
16431         * gc.c: Make sure domain finalisation happens in a subthread.
16432         Re-enable threaded GC, fixing bug 31333 (again).
16433
16434         * environment.c: System.Environment internall calls (so far just
16435         ExitCode is here, the others are still in icall.c)
16436
16437         * appdomain.c (mono_runtime_cleanup): All threads running managed
16438         code should have finished before mono_runtime_cleanup() is
16439         reached, so no need to clean up threads.
16440
16441 2003-01-22  Martin Baulig  <martin@ximian.com>
16442
16443         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16444         `gpointer func' arguments.      
16445         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16446         but added `MonoThread *thread' argument.
16447         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16448
16449         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16450         and pass it to the mono_thread_start_cb callback.
16451         (mono_install_thread_callbacks): New public function to install a
16452         set of callbacks which are set by the debugger.
16453         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16454
16455 2003-01-22  Martin Baulig  <martin@ximian.com>
16456
16457         * Makefile.am: Install debug-mono-symfile.h.
16458
16459 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16460
16461         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16462
16463 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16464
16465         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16466         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16467         (mono_array_class_get): correctly set access levels of arrays
16468
16469 2003-01-20      Patrik Torstensson
16470         * image.h (MonoAssemblyName): changed major, minor, build, revision
16471         from signed to unsigned.
16472
16473 2003-01-20  sean kasun <skasun@azstarnet.com>
16474
16475         * reflection.c (load_cattr_value): Now this handles
16476         MONO_TYPE_SZARRAY.  Fixes bug #35629
16477
16478 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16479
16480         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16481         integer value
16482
16483 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16484
16485         * decimal.c: fixed bug #26056.
16486
16487 2003-01-17  Martin Baulig  <martin@ximian.com>
16488
16489         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16490
16491 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16492
16493         * exception.[ch]:
16494         (mono_get_exception_type_initialization): new function.
16495
16496         * object.c: throw a TypeInitializationException when an exception is
16497         thrown invoking the class constructor.
16498
16499 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16500
16501         * reflection.c: fixed attribute reading.
16502
16503 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16504
16505         * icall.c:
16506         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16507         provided, look for the type in the calling assembly and then in
16508         mscorlib; if the assembly name is provided, only try that one.
16509
16510 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16511
16512         * object.c: register the vtable before there is a chance it's
16513         queried again recursively.
16514
16515 2003-01-13  Duncan Mak  <duncan@ximian.com>
16516
16517         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16518         gc-internal.h. 
16519         
16520 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16521
16522         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16523
16524 2003-01-11  Martin Baulig  <martin@ximian.com>
16525
16526         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16527         this to 20 for the release.
16528
16529 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16530
16531         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16532
16533         * loader.c (mono_method_get_marshal_info): bug fix
16534
16535         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16536         structures with explicit layout
16537
16538 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16539
16540         * profiler.c: made the output more readable (and sorted). 
16541         Added caller information for the allocation profiler.
16542
16543 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16544
16545         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16546
16547 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16548
16549         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16550         to get value types.
16551         
16552 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16553
16554         * object.c, profiler.h, profiler.c, profiler-private.h:
16555         Added object allocation profiler.
16556
16557 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16558
16559         * reflection.h, reflection.c: handle global methods.
16560         Compress blob entries.
16561
16562 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16563
16564         * marshal.c: fix compilation.
16565
16566 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16567
16568         * loader.c (mono_method_get_marshal_info): impl.
16569
16570         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16571
16572 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16573
16574         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16575         for reference types.
16576
16577 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16578
16579         * loader.c: fixed off by one error in loaded parameter names.
16580
16581 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16582
16583         * marshal.c (mono_marshal_get_icall_wrapper): like
16584         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16585         instead of a MonoMethod.
16586
16587 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16588
16589         * decimal.c: fixed bug #36537.
16590
16591 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16592
16593         * marshal.c: throw a missing method exception if a
16594         P/Invoke method is not found.
16595
16596 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16597
16598         * icall.c: allow a null this for constructors.
16599
16600 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16601
16602         * icall.c: raise the proper exceptions if the arguments to the
16603         internal Invoke are incorrect.
16604
16605 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16606
16607         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16608
16609 2003-01-03  Martin Baulig  <martin@ximian.com>
16610
16611         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16612
16613 2002-12-31  Martin Baulig  <martin@ximian.com>
16614
16615         * debug-mono-symfile.c: Completely rewrote the type section.
16616         Instead of using individual malloc()ed fields, we use one big
16617         continuous memory area and offsets into this area.
16618         See the comments in the source code for details.
16619
16620 2002-12-30  Martin Baulig  <martin@ximian.com>
16621
16622         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16623
16624 2002-12-30  Martin Baulig  <martin@ximian.com>
16625
16626         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16627         line number table in this data blob instead of using an external
16628         pointer.
16629
16630 2002-12-28  Martin Baulig  <martin@ximian.com>
16631
16632         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16633
16634 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16635
16636         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16637         as a boxed return type.
16638
16639 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16640
16641         * appdomain.c
16642         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16643         g_build_filename to properly get separators on the filename created.
16644
16645         * object.h: Small change, introduce MonoMarshalByRefObject to
16646         track the layout of that structure in the C# universe as we make
16647         changes there.
16648
16649 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16650
16651         * object.c: removed assert to allow static fields on interfaces.
16652         * loader.c: a TypeSpec may be used for any type, not just arrays.
16653
16654 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16655
16656         * class.c, class.h: added mono_class_array_element_size ().
16657         Ignore static methods in interfaces.
16658
16659 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16660
16661         * threads.c: fixed the build under cygwin.
16662
16663 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16664
16665         * reflection.c: handle nullref constants. Allocate keys for
16666         reflection handles with the GC.
16667
16668 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16669
16670         * threads.c, threads.h: added mono_thread_get_abort_signal()
16671         to get a suitable signal for thread abort.
16672
16673 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16674
16675         * metadata.c: fix handling of ExportedType table.
16676
16677 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16678
16679         * icall.c: added WriteWindowsDebugString internal call.
16680
16681 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16682
16683         * reflection.h: added fields to match C# implementation.
16684
16685 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16686
16687         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16688
16689 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16690
16691         * gc.h, gc-internal.h: Rename header for GC internal calls to
16692         gc-internal.h from gc.h as to not clash with Boehm GC having its
16693         header installed as <gc.h> in outside include paths.
16694         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16695         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16696
16697 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16698
16699         * icall.c: assign minor, build and revision in FillName.
16700
16701 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16702
16703         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16704         Added support for running code generated by Reflection.Emit.
16705
16706 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16707
16708         * appdomain.c: check for NULL argument in LoadFrom.
16709
16710 2002-12-10  Dick Porter  <dick@ximian.com>
16711
16712         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16713
16714 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16715
16716         * appdomain.c: fix buglet when building exe file name.  Handle full
16717         assembly name (needed after latest changes to AssemblyName).
16718         * image.c:
16719         (mono_image_close): free some hashtables.
16720
16721 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16722
16723         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16724         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16725         on some systems (redhat 7.3) 
16726
16727 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16728
16729         * threads.c: delete the critical section of a sync block,
16730         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16731
16732 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16733
16734         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16735
16736 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16737
16738         * appdomain.[ch]: handle the assembly preload event to try loading the
16739         assemblies using the paths we have in the current domain.
16740
16741         * assembly.[ch]: created an assembly preload hook that is called to try
16742         loading the assembly by other means that the ones provided here.
16743
16744         * domain.c: initialize the domain search path.
16745
16746         From now on, assemblies (TODO: except corlib and System) are loaded
16747         according to these rules when using mono_assembly_load ():
16748
16749                 1. It tries to load the assembly from the ApplicationBase
16750                 of the current domain appending .dll and .exe (TODO: have to
16751                 try loading from name/name.dll and name/name.exe).
16752
16753                 2. It tries the search path specified in PrivateBinPath for the
16754                 current domain (if any).
16755
16756                 3. Previous behavior.
16757
16758 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16759
16760         * icall.c: implemented GetInterfaceMap() related icall.
16761         * domain.c, loader.h: load MethodInfo in mono_defaults.
16762
16763 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16764
16765         * gc.c: disable the finalizer thread for now, untill all the issues
16766         with it are resolved.
16767
16768 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16769
16770         * string-icalls.c: handle embedded nulls in string ctor when the
16771         length is specified.
16772
16773 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16774
16775         * class.c: look for explicit interface implementation in parent
16776         classes, too.
16777
16778 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16779
16780         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16781
16782 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16783
16784         * gc.c: protect handles with a critical section.
16785
16786 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16787
16788         * icall.c:
16789         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16790         parameters. If no assembly specified, try getting the type from all
16791         the assemblies in the current domain, else, load the assembly and get
16792         the type from it.
16793
16794 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16795
16796         * marshal.c: applied patch from Aleksey Demakov that fixes
16797         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16798
16799 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16800
16801         * icall.c: fixed get_location.
16802
16803 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16804
16805         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16806         declarations to make it work with older gcc. 
16807
16808         * loader.c (mono_get_method): set signature->pinvoke for native calls
16809
16810 2002-11-20  Dick Porter  <dick@ximian.com>
16811
16812         * threads.c (mono_thread_init): Set the main thread's handle
16813
16814 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16815
16816         * gc.c: allow compilation without GC support. Changed to match the
16817         mono coding style.
16818
16819 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16820
16821         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16822
16823 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16824
16825         * reflection.c: set a public key token on the core assemblies.
16826
16827 2002-11-18  Dick Porter  <dick@ximian.com>
16828
16829         * threads.c: Split out some thread initialisation so that other
16830         files can set the start callback function.
16831
16832         * gc.c: Run finalisers in a separate thread, to avoid stack
16833         overflow.  Fixes bug 31333.
16834
16835         * appdomain.c: Set up GC finalisation thread.
16836
16837         * reflection.c: 
16838         * object.c: 
16839         * domain.c: Use gc.h macros for GC_malloc
16840         
16841 2002-11-15  Dick Porter  <dick@ximian.com>
16842
16843         * threadpool.c: 
16844         * threads.c:
16845         * appdomain.c: Removed mono_runtime_init_with_attach(),
16846         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16847         merging the extra parameter with the existing function.  Removed
16848         unneeded code in mono_thread_attach().
16849
16850 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16851
16852         * image.c (mono_image_loaded_by_guid): a method to get loaded
16853         images by guid. 
16854         (load_metadata_ptrs): we store the guid as string.
16855
16856 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16857
16858         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16859
16860         * metadata.c (mono_guid_to_string): imported method form Zoltan
16861         Varga (slightly modified)
16862
16863         * assembly.c (mono_assembly_open): load precompiled code
16864
16865         * loader.h (MonoMethod): we store the method token for use in the
16866         aot compiler. 
16867
16868 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16869
16870         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16871         the hook function called when an assembly is loaded.
16872         
16873         * domain.c: Modified file.
16874         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16875
16876         Fixes bug #33196.
16877
16878 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16879
16880         * reflection.c: Map PEFileKind to the value expected by the WinNT
16881         image loader. 
16882
16883 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16884
16885         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16886         Read until the buffer is filled completely.
16887
16888 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16889
16890         * icall.c: implemented MonoType.InternalGetEvent ().
16891
16892 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16893
16894         * appdomain.c: implemented InitAppDomainSetup. Delayed
16895         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16896         the entry_assembly.
16897
16898         * assembly.c: base_dir is now an absolute path ending with
16899         G_DIR_SEPARATOR.
16900
16901         * icall.c: modified get_location according to the above changes.
16902
16903         * object.c: init AppDomain.SetupInformation for the default domain after
16904         we have the entry assembly.
16905
16906         * domain.c: when unloading a domain, setup = NULL.
16907
16908 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16909
16910         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16911
16912 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16913
16914         * object.h, object.c: introduced mono_object_get_virtual_method ()
16915         to lookup the method invoked on an object when a callvirt is done on
16916         a method.
16917         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16918
16919 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16920
16921         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16922         current domain when loaded an assembly and failed to load it.
16923
16924         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16925
16926 2002-10-31  Dick Porter  <dick@ximian.com>
16927
16928         * icall.c: 
16929         * file-io.h: 
16930         * file-io.c: Return the error status in a parameter, as the
16931         GetLastError() value has long since been blown away if we try and
16932         look it up in a subsequent internal call invocation.  Delete the
16933         GetLastError() internal call, because it's useless.
16934
16935 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16936
16937         * class.[ch]: added cast_class to fix bug 29517
16938
16939 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16940
16941         * marshal.c: create valid IL code in the filter clause:
16942         the new JIT is less forgiving:-)
16943
16944 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16945
16946         * icall.c: removed get_property internal call.
16947
16948 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16949
16950         * appdomain.h domain.c: Added an ID to appdomains.
16951         
16952         * threads.c threads.h icall.c: Implement icall
16953         Thread:GetDomainID(), and remove unused icall 
16954         CurrentThreadDomain_internal.
16955
16956 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16957
16958         * icall.c: Don't recurse through the base types in GetConstructor.
16959         Fixes bug #32063. 
16960
16961 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16962
16963         * mempool.h, mempool.c: added mono_mempool_empty() and
16964         mono_mempool_stats().
16965
16966 2002-10-23  Dick Porter  <dick@ximian.com>
16967
16968         * file-io.c: 
16969         * file-io.h: 
16970         * icall.c: Added MonoIO.GetFileType internal call
16971
16972 2002-10-17  Dick Porter  <dick@ximian.com>
16973
16974         * appdomain.c (mono_runtime_cleanup): Don't signal the async
16975         delegate semaphore before waiting for all threads to finish,
16976         because new threads can also call async delegates.  Fixes bug
16977         32004.
16978
16979         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
16980         of 3 seconds, in case another async job is queued.  (This part is
16981         needed because the bug fix reintroduced the 3s exit lag.)  This
16982         makes the mono_runtime_shutdown flag superfluous.
16983
16984 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16985
16986         * reflection.c: include ehader size in method section headers.
16987         Really check for suplicated modules entries.
16988
16989 2002-10-17  Martin Baulig  <martin@gnome.org>
16990
16991         * debug-mono-symfile.c: Added back support for locals.
16992
16993 2002-10-14  Martin Baulig  <martin@gnome.org>
16994
16995         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
16996         MONO_TYPE_VOID.
16997
16998 2002-10-14  Martin Baulig  <martin@gnome.org>
16999
17000         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17001         mono_class_get() instead of looking in the class cache. 
17002
17003 2002-10-13  Martin Baulig  <martin@gnome.org>
17004
17005         * debug-mono-symfile.c: Set version number to 28, include the
17006         signature in method names.
17007
17008 2002-10-13  Martin Baulig  <martin@gnome.org>
17009
17010         * debug-mono-symfile.h: Set version number to 27.
17011
17012 2002-10-11  Martin Baulig  <martin@gnome.org>
17013
17014         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17015
17016 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17017
17018         * metadata.c, metadata.h: added helper function to allocate signatures.
17019
17020 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17021
17022         * icall.c: added internal call to get the location of machine.config.
17023
17024 2002-10-08  Martin Baulig  <martin@gnome.org>
17025
17026         * debug-mono-symfile.c: Ignore classes with a pending init for the
17027         moment.
17028
17029 2002-10-03  Dick Porter  <dick@ximian.com>
17030
17031         * threads.c: Freebsd pthread_t is a pointer
17032
17033 2002-10-03  Dick Porter  <dick@ximian.com>
17034
17035         * socket-io.c: Implemented GetHostName_internal
17036
17037 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17038
17039         * mono-config.c:
17040         (mono_config_parse_file): don't leak the text.
17041
17042 2002-10-02  Martin Baulig  <martin@gnome.org>
17043
17044         * debug-mono-symfile.c: Added support for methods.
17045
17046 2002-10-01  Martin Baulig  <martin@gnome.org>
17047
17048         * debug-mono-symfile.c: Don't emit methods and line numbers for
17049         the dynamic symbol file, just write the type table.  We can easily
17050         have an external helper program which creates a symbol file for an
17051         IL file.        
17052
17053 2002-10-01  Dick Porter  <dick@ximian.com>
17054
17055         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17056         Only add the handle to the cleanup array when we're about to
17057         launch the thread.  Bug 31425 deadlocked when the test was run on
17058         mono under w32.
17059
17060 2002-10-01  Martin Baulig  <martin@gnome.org>
17061
17062         * debug-mono-symfile.c: Added support for properties.
17063
17064 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17065
17066         * reflection.c: unaligned store fix from Mark Crichton
17067         <crichton@gimp.org>.
17068
17069 2002-09-27  Martin Baulig  <martin@gnome.org>
17070
17071         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17072         New interncall.
17073
17074 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17075
17076         * assembly.h, assembly.c: use a sane API to hook into the assembly
17077         loading process instead of a useless special-purpouse hack
17078         (ngen needs a hook, too, for example).
17079
17080 2002-09-27  Dick Porter  <dick@ximian.com>
17081
17082         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17083         io-layer can set up some process handle info.  Not needed on w32,
17084         but doesn't hurt either.
17085
17086         * process.c: Pass the program name in the second parameter to
17087         CreateProcess, so the path is searched.  Include the working
17088         directory. Implemented process name, process enumeration, and some
17089         process detail internal calls.
17090         
17091         * icall.c: Added internal calls for process lookup, and some
17092         process details
17093
17094 2002-09-26  Martin Baulig  <martin@gnome.org>
17095
17096         * assembly.c (mono_install_open_assembly_hook): New global
17097         function to install a function to be invoked each time a new
17098         assembly is loaded.
17099         (mono_assembly_open): Run this callback function if set.
17100
17101         * debug-mono-symfile.c: Put back line numbers for the dynamic
17102         symbol file and also record the .il file as source file.  This
17103         allows us to install the temporary symbol file as `file.dbg' just
17104         like a compiler-generated one.
17105
17106 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17107
17108         * Corrected typo in gc.c (BOHEM vs BOEHM).
17109
17110 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17111
17112         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17113         GetProperties. Also avoid calling g_slist_length in GetProperties and
17114         GetMethods.
17115
17116 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17117
17118         * reflection.c: avoid unaligned stores (bug spotted by
17119         Mark Crichton  <crichton@gimp.org>).
17120
17121 2002-09-25  Martin Baulig  <martin@gnome.org>
17122
17123         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17124         instead of guint64 for addresses and added prologue/epilogue info.
17125
17126 2002-09-25  Martin Baulig  <martin@gnome.org>
17127
17128         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17129         store line number info.  For the dynamic symbol file, we only need
17130         to provide the JIT generated dynamic line number info for the dynamic
17131         symbol file.
17132
17133 2002-09-25  Martin Baulig  <martin@gnome.org>
17134
17135         * debug-mono-symfile.h: Incremented version number.
17136
17137 2002-09-24  Martin Baulig  <martin@gnome.org>
17138
17139         * class.c (mono_debugger_class_init_func): New global function
17140         pointer variable.
17141         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17142         call it.
17143
17144         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17145         function.  This is called via the mono_debugger_class_init_func
17146         hook to add all types to the dynamic type table.
17147         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17148         from its metadata token.
17149
17150         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17151         New interncall for the debugger.
17152
17153 2002-09-24  Nick Drochak <ndrochak@gol.com>
17154
17155         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17156         before using it in case it is null.
17157         
17158 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17159
17160         * metadata.c: allow custom modifiers in local var signatures
17161         (bug spotted by Zoltan Varga).
17162
17163 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17164
17165         * class.c: deal with the <Module> class that may have a NULL vtable.
17166         Eliminate warnings.
17167
17168 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17169
17170         * image.c, image.h: more strong name helpers.
17171         * monosn.c: more work: convert pem keys to cryptoapi format.
17172
17173 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17174
17175         * string-icalls.c: speedup IndexOf.
17176
17177 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17178
17179         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17180
17181 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17182
17183         * icall.c: cleanup: use mono_object_domain ().
17184
17185 2002-09-23  Martin Baulig  <martin@gnome.org>
17186
17187         * debug-mono-symfile.c: Improved type support.
17188
17189 2002-09-22  Martin Baulig  <martin@gnome.org>
17190
17191         * debug-mono-symfile.c: Added support for reference types and strings.
17192
17193 2002-09-22  Martin Baulig  <martin@gnome.org>
17194
17195         * debug-mono-symfile.c: Started to work on the type table.
17196
17197 2002-09-21  Martin Baulig  <martin@gnome.org>
17198
17199         * debug-mono-symfile.c: Largely reworked the symbol table format.
17200         The symbol table is now incrementally updated each time a new
17201         method is added.  We're now also using our own magic and version
17202         so that you don't need to recompile all your classes if the
17203         dynamic table changes.
17204         (mono_debug_update_mono_symbol_file): Removed.
17205         (mono_debug_symfile_add_method): New function to add a method.
17206
17207 2002-09-21  Martin Baulig  <martin@gnome.org>
17208
17209         * icall.c
17210         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17211         New interncall.
17212
17213         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17214         New interncall to get a method from its metadata token.
17215
17216 2002-09-21  Martin Baulig  <martin@gnome.org>
17217
17218         * debug-mono-symfile.c: Create type table.
17219
17220 2002-09-20  Martin Baulig  <martin@gnome.org>
17221
17222         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17223
17224 2002-09-20  Martin Baulig  <martin@gnome.org>
17225
17226         * debug-mono-symfile.c: Provide information about params and locals.
17227
17228 2002-09-20  Martin Baulig  <martin@gnome.org>
17229
17230         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17231         New interncall.
17232
17233         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17234         interncall to get a method from its metadata token.
17235
17236 2002-09-20  Martin Baulig  <martin@gnome.org>
17237
17238         * debug-mono-symfile.c: Added a few checks for method->header
17239         being non-NULL.  This should never happen, but for the moment
17240         let's use a g_warning() rather than a g_assert().
17241
17242 2002-09-19  Mark Crichton  <crichton@gimp.org>
17243
17244         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17245         even if support for it isn't present.  Added an #ifdef to fix this.
17246
17247         * socket-io.c: Added checks back for Solaris support.
17248
17249 2002-09-19  Martin Baulig  <martin@gnome.org>
17250
17251         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17252         changes in the symbol file format.
17253
17254 2002-09-18  Martin Baulig  <martin@gnome.org>
17255
17256         * debug-mono-symfile.c: Set version number to 21.
17257
17258 2002-09-18  Dick Porter  <dick@ximian.com>
17259
17260         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17261         on netbsd.  Fixes bug 30051.
17262
17263 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17264
17265         * reflection.c:
17266         (set_version_from_string): little fix.
17267
17268 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17269
17270         * monosn.c, Makefile.am: added strong name utility.
17271         * reflection.h, reflection.c: implemented delayed signing,
17272         locale, version and hash id assembly attributes.
17273
17274 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17275
17276         * loader.c, metadata.c: load param attributes in signatures.
17277
17278 2002-09-16  Martin Baulig  <martin@gnome.org>
17279
17280         * debug-mono-symfile.c: Added string table with all method names.
17281
17282 2002-09-14  Martin Baulig  <martin@gnome.org>
17283
17284         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17285         fast method lookup.
17286
17287 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17288
17289         * reflection.c: record the public key token of referenced assemblies.
17290
17291 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17292
17293         * image.c, image.h: added functions to get the strong name and the
17294         public key of an assembly.
17295         * pedump.c: use them.
17296
17297 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17298
17299         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17300
17301 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17302
17303         * marshal.c (mono_marshal_get_managed_wrapper): Added
17304         MONO_TYPE_BOOLEAN 
17305
17306 2002-09-11  Martin Baulig  <martin@gnome.org>
17307
17308         * gc.c: Call GC_unregister_disappearing_link() on all links when
17309         finalizing them, this is necessary to aviod a crash in boehm's
17310         finalize handler.
17311
17312 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17313
17314         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17315         nick@chemlab.org.
17316
17317 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17318
17319         * icall.c: implemented MonoType::Module.
17320         * reflection.c, reflection.h: mono_module_get_object () from
17321         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17322
17323 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17324
17325         * icall.c: ignore overridden methods in GetMethods ().
17326         Fix for FieldInfo::SetValue().
17327         * object.c: handle float/double in runtime invoke.
17328
17329 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17330
17331         * object.c: allow a constructor to be called again on an object.
17332
17333 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17334
17335         * class.h, class.c: move field layout code to it's own function and
17336         export it. Get an interface id earlier. Move fields in MonoClass
17337         so they are more cache friendly and align the bitfields.
17338         * loader.c: temporary handle get_param_names() for a runtime method.
17339         * reflection.c, reflection.h: more code to handle runtime creation of
17340         types.
17341
17342 2002-09-09  Martin Baulig  <martin@gnome.org>
17343
17344         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17345         signature with the pinvoke field being set for the actual call.
17346
17347 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17348
17349         * icall.c: removed some unused icalls. Start of map of glib charsets
17350         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17351
17352 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17353
17354         * debug-helpers.c: break infinite loop (found and fixed by
17355         Holger Arnold <harnold@gmx.de>).
17356
17357 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17358
17359         * icall.c: target may be null in create_delegate.
17360
17361 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17362
17363         * marshal.c: handle a boolean return type.
17364
17365 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17366
17367         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17368
17369 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17370
17371         * gc.c: fix weakreferences.
17372
17373 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17374
17375         * icall.c: added icall to get default codepage.
17376
17377 2002-09-03  Dick Porter  <dick@ximian.com>
17378
17379         * threads.h: 
17380         * threads.c: Use MonoThread instead of MonoObject where
17381         apropriate.
17382
17383         Store running thread objects in a hash table, so that we have all
17384         the info to hand when waiting for them to finish
17385         (means we don't need OpenThread() any more, so mingw builds should
17386         be fully functional again.)
17387
17388         * verify.c:
17389         * object.h: Added thread ID to MonoThread
17390
17391 2002-09-03  Martin Baulig  <martin@gnome.org>
17392
17393         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17394
17395 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17396
17397         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17398
17399 2002-09-03  Martin Baulig  <martin@gnome.org>
17400
17401         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17402         argument to store the end address of the disassembled instruction.
17403
17404         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17405         here from debug-symfile.h.
17406         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17407         JIT into this struct.
17408         (MonoSymbolFile): Added `char *image_file' field.
17409         (MonoDebugGetMethodFunc): Removed.
17410         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17411         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17412         (mono_debug_find_method): New method.
17413
17414         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17415         create a full symbol file.
17416         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17417         and static symbol files.
17418         (mono_debug_find_method): The symbol file keeps an internal method hash,
17419         call this to get a MonoDebugMethodInfo from a MonoMethod.
17420
17421         * debug-symfile.[ch]: Removed.
17422
17423 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17424
17425         * image.c (do_mono_image_open): Remove linker version check.
17426
17427 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17428
17429         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17430         wrappers for instance methods.
17431         
17432 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17433
17434         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17435
17436 2002-08-28  Dick Porter  <dick@ximian.com>
17437
17438         * Makefile.am: Export HOST_CC for w32 builds
17439
17440 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17441
17442         * file-io.c process.c: MonoString are null terminated, no
17443         need for mono_string_to_utf16() anymore.
17444
17445 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17446
17447         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17448
17449 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17450
17451         * icall.c, reflection.h: speedup System.MonoType.
17452
17453 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17454
17455         * reflection.c: allow null as the value of a string argument in
17456         custom attributes constructors.
17457
17458 2002-08-27  Martin Baulig  <martin@gnome.org>
17459
17460         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17461         `trampoline_address' field.
17462
17463 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17464
17465         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17466         check (fixes bug #29486) 
17467
17468 2002-08-27  Martin Baulig  <martin@gnome.org>
17469
17470         * debug-mono-symfile.c: Changed the file format in a way that allows us
17471         open it read-only and to use a specially malloced area for all the
17472         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17473         debugging IL code and there is no MCS generated symbol file for it.
17474
17475 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17476
17477         * object.c: added a define for a good string and array
17478         creation speedup (not enabled by default because we need to deal with
17479         the synch stuff).
17480
17481 2002-08-26  Martin Baulig  <martin@gnome.org>
17482
17483         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17484         function to create a dynamic symbol file.  This is used by the
17485         debugger to create a symbol file for IL code on-the-fly.
17486
17487 2002-08-26  Martin Baulig  <martin@gnome.org>
17488
17489         * loader.c (mono_lookup_pinvoke_call): Include the error message
17490         from g_module_error() in the error message.
17491
17492 2002-08-24  Martin Baulig  <martin@gnome.org>
17493
17494         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17495         function to update the symbol file.  The symbol file is mmap()ed
17496         writable, but private.  This allows us to install the symbol file
17497         together with the assembly.
17498
17499 2002-08-24  Martin Baulig  <martin@gnome.org>
17500
17501         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17502         but they can read the new symbol file format which mcs is now creating.
17503
17504         * debug-symfile.c (mono_debug_find_source_location): Moved to
17505         debug-mono-symfile.c; this is now operating on the new symbol file.
17506
17507 2002-08-23  Martin Baulig  <martin@gnome.org>
17508
17509         * debug-helpers.c (mono_method_desc_from_method): New function to get
17510         a MonoMethodDesc from a MonoMethod.
17511
17512 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17513
17514         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17515         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17516
17517 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17518
17519         * string-icalls.[ch]: make helper methods static.
17520
17521 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17522
17523         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17524         types to it and to SetValueInternal.
17525
17526         * object.c: Moved handle_enum label to its proper place. This was the
17527         f... bug! ;-)
17528
17529         This time i compiled mcs and gtk-sharp and they both work.
17530
17531 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17532
17533         * icall.c: reverted partially my previous patch until 
17534         object.c:set_value handles enums correcly.
17535
17536 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17537
17538         * icall.c:
17539         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17540         (ves_icall_System_Environment_get_MachineName): removed warning when
17541         compiling under cygwin.
17542
17543 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17544
17545         * object.c: fixed field_get_value() for reference types.
17546
17547 2002-08-22  Dick Porter  <dick@ximian.com>
17548
17549         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17550         Don't free a buffer while it's still needed.  Patch from Jonathan
17551         Liger <Jonathan.liger@wanadoo.fr>
17552
17553 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17554
17555         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17556         internal call.
17557
17558 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17559
17560         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17561         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17562
17563         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17564         we call unmanaged code which throws exceptions.
17565
17566 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17567
17568         * appdomain.h: added per-domain entry_assembly.
17569         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17570         arguments.
17571         * icall.c: Assembly::GetEntryAssembly icall.
17572         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17573         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17574
17575 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17576
17577         * appdomain.h, gc.c: added mono_domain_finalize ().
17578
17579 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17580
17581         * object.c:
17582         (mono_print_unhandled_exception): changed g_warning by g_printerr
17583         because g_log has a 1024 characters limit (yeah, i got a big stack
17584         trace). Don't print exception name, that should be in ToString 
17585         returned string.
17586
17587 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17588
17589         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17590         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17591
17592 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17593
17594         * object.c:
17595         (mono_print_unhandled_exception): after previous commit, i realized
17596         that MS calls ToString on the exception. I changed this function to
17597         do that. This way we get stack_trace for free.
17598
17599 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17600
17601         * object.c:
17602         (mono_print_unhandled_exception): invoke Message property instead of
17603         getting 'message' field from Exception. Don't allocate memory for
17604         'trace' and 'message' if not needed.
17605
17606 2002-08-18  Dick Porter  <dick@ximian.com>
17607
17608         * unicode.c: Fix asserts to match Encoder.cs checks
17609
17610 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17611
17612         * marshal.c: fix unaligned store issue and a few wrong
17613         opcode argument types.
17614
17615 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17616
17617         * icall.c: added GetUninitializedObjectInternal internal call.
17618
17619 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17620
17621         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17622         to the right domain.
17623
17624 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17625
17626         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17627
17628         * class.c (class_compute_field_layout): set blittable to false for Strings
17629
17630         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17631
17632 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17633
17634         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17635         first chunk of code to create types at runtime. Code to
17636         handle ReflectedType/DeclaringType. Make reflection handles
17637         domain specific.
17638
17639 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17640
17641         * class.c: set correct name in arrays.
17642
17643 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17644
17645         * appdomain.c (mono_domain_transfer_object): make it work with
17646         valuetypes. bug fixes.
17647
17648 2002-08-12  Dick Porter  <dick@ximian.com>
17649
17650         * object.h: Rename some parameters to avoid c++ keywords (Patch
17651         from Joseph Wenninger <kde@jowenn.at>)
17652
17653 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17654
17655         * icall.c: added icall to implement Assembly.GetFile*.
17656
17657 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17658
17659         * reflection.h, reflection.c: code to embed managed resources.
17660
17661 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17662
17663         * class.c: move all the type size stuff into
17664         class_compute_field_layout().
17665
17666 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17667
17668         * class.c: ensure enums have always the correct instance size.
17669         * unicode.c: remove wrong assert.
17670
17671 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17672
17673         * assembly.c: fix mem corruption issue.
17674         * image.h, image.c: added mono_image_get_resource () to access
17675         managed resources.
17676         * icall.c: implemented Assembly.EntryPoint property and some
17677         Managed Resources related internalcalls.
17678
17679
17680 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17681
17682         * image.c, image.h: impemented mono_image_get_entry_point ().
17683         * appdomain.c: use mono_image_get_entry_point.
17684
17685 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17686
17687         * reflection.c: support the object type argument when loading
17688         custom attributes.
17689
17690 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17691
17692         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17693         String as return type.
17694
17695 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17696
17697         * reflection.c: fix encoding of named args for custom attrs to match
17698         the ms implementation. Read them back when instantiating custom
17699         attributes.
17700
17701 2002-08-02  Radek Doulik  <rodo@ximian.com>
17702
17703         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17704         by Dietmar as quick fix
17705         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17706         16 as stack size, used on more places as quick fix before Dietmar
17707         will fix it properly
17708
17709 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17710
17711         * object.h, object.c: added accessors for fields and properties.
17712
17713 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17714
17715         * class.c, class.h: made mono_class_get_field_from_name ()
17716         loop on parent types.
17717         Added mono_class_get_property_from_name ().
17718
17719 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17720
17721         * class.c, class.h: move the code to setup the type vtable in its own
17722         function so that it can be reused also for types created at runtime.
17723         Eliminate the "class" identifier from the header file.
17724         * reflection.c: setup the vtable for enums so that we can create
17725         objects for use in SetConstant ().
17726
17727 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17728
17729         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17730         instead of the delegate itself as this pointer (bug #28383)
17731
17732 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17733
17734         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17735         conversions.
17736
17737 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17738
17739         * loader.c: don't set the pinvoke bit on icalls.
17740
17741 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17742
17743         * debug-helpers.c (mono_method_full_name): only print a number to
17744         indicate wrapper type (so that the output is more readable in traces).
17745
17746 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17747
17748         * class.c (mono_class_init): include method override patch from Paolo
17749
17750 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17751
17752         * icall.c: fixed GetTypeCode().
17753
17754 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17755
17756         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17757         use real delegate invoke function to make it work with multicast
17758         delegates (fix bug# 28291).
17759
17760 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17761
17762         * object.c: load constant strings.
17763
17764 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17765
17766         * reflection.c: no magic numbers.
17767         * tabledefs.h: security action enum.
17768
17769 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17770
17771         * assembly.c: fix possible memory corruption.
17772
17773 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17774
17775         * reflection.h, reflection.c: added support for linking resources.
17776         * verify.c: check we have an updated corlib.
17777
17778 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17779
17780         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17781         string arrays.
17782         (mono_marshal_string_array): null terminate unmanaged string arrays.
17783         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17784
17785 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17786
17787         * icall.c: Type.GetType () can now return also types from the
17788         calling assembly.
17789
17790 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17791
17792         * loader.h, loader.c: stack walking support.
17793         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17794         GetCallingAssembly.
17795
17796 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17797
17798         * marshal.c: added optimisations for blittable types 
17799
17800         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17801         (mono_class_setup_mono_type): set blittable attribute for single
17802         and double.
17803
17804         * marshal.c (mono_string_utf8_to_builder): impl.
17805         (mono_string_builder_to_utf8): impl.
17806         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17807
17808 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17809
17810         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17811         (mono_marshal_get_managed_wrapper): impl. byref types
17812
17813 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17814
17815         * icall.c:
17816         (search_method): don't display debug message. 
17817
17818 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17819
17820         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17821
17822 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17823
17824         * appdomain.c: set the missing filename when throwing exception.
17825
17826 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17827
17828         * metadata.c (mono_type_size): code cleanup
17829         (mono_type_stack_size): removed some test code
17830
17831 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17832
17833         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17834         mono_get_exception_file_not_found now.
17835
17836         * exception.c (mono_exception_from_name_two_strings): New version
17837         that will call a constructor with two string arguments. 
17838         (mono_get_exception_file_not_found): New helper routine, used to
17839         report file-not-found errors.
17840
17841 2002-07-20  Dick Porter  <dick@ximian.com>
17842
17843         * process.h:
17844         * process.c: Pass file handles to CreateProcess
17845         
17846         * icall.c:
17847         * file-io.h:
17848         * file-io.c: Implemented CreatePipe
17849
17850 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17851
17852         * metadata.c (mono_get_param_info): set alignment for value types
17853
17854 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17855
17856         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17857         Constify mono_domain_assembly_open().
17858         * loader.c: handle null namespace in icalls.
17859
17860 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17861
17862         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17863         (emit_str_to_ptr_conv): marshal object as structs
17864
17865         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17866
17867         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17868
17869 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17870
17871         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17872         (mono_marshal_get_native_wrapper): we an now return value types
17873
17874 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17875
17876         * verify.c: more checks implemented.
17877
17878 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17879
17880         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17881         (fix bug #27695)
17882         (mono_marshal_get_native_wrapper): allow byref arguments
17883         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17884         impl. PtrToStringXXX methods
17885         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17886         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17887         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17888         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17889         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17890
17891 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17892
17893         * reflection.c: fix buglet in parsing an assembly name.
17894
17895 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17896
17897         * marshal.c (emit_ptr_to_str_conv): first impl.
17898
17899 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17900
17901         * object.c, class.h: cache the vtable in the class as suggested by
17902         vargaz@freemail.hu (Zoltan Varga).
17903
17904 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17905
17906         * class.h, loader.c: added mono_field_from_token().
17907         * verify.c: first cut of type checking code.
17908
17909 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17910
17911         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17912
17913 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17914
17915         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17916         (fix bug #27782)
17917         (mono_marshal_get_remoting_invoke): impl.
17918         (mono_delegate_begin_invoke): impl.
17919         (mono_mb_emit_save_args): impl.
17920         (mono_delegate_end_invoke): impl.
17921         (mono_marshal_get_delegate_begin_invoke):
17922         (mono_marshal_get_delegate_end_invoke):
17923         (mono_marshal_get_delegate_invoke): generate a special name for
17924         those methods (including the signature) and associate them whith
17925         the delegate class. 
17926
17927 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17928
17929         * reflection.[ch]: 
17930         (mono_reflection_type_from_name): now it has a MonoImage parameter
17931         which is used as the default image to search the type in. If the image
17932         is NULL or getting the type from it fails, it defaults to corlib.
17933
17934         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17935         new parameter.
17936
17937 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17938
17939         * reflection.c: update the parameter table index.
17940
17941 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17942
17943         * domain.c: don't include the mark byte in the string hash.
17944
17945 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17946
17947         * icall.cs: icall for Type.GetTypeCode ().
17948         * verify: a couple of fixes and disabled local initialization checks.
17949
17950 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
17951
17952         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
17953
17954         * debug-helpers.c (mono_method_full_name): print the type of the
17955         runtime wrapper
17956
17957         * metadata.c (mono_signature_hash): a hash function for signatures
17958         (mono_signature_hash): better hash algorithm
17959
17960         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
17961
17962         * debug-helpers.c (mono_method_full_name): this can now generate
17963         method names with signatures
17964
17965         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
17966         method dont have this pointers.
17967
17968 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17969
17970         * reflection.c: fixup typebuilder tokens.
17971         * image.c: fix buglet.
17972         * marshal.h: remove whitespace.
17973         * metadata.h, metadata.c: reinstate code that was removed.
17974         * verify.c: handle catch directives and fix another couple of bugs.
17975
17976 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
17977
17978         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
17979         (mono_marshal_get_native_wrapper): make it comp. with the old code
17980         (mono_marshal_get_native_wrapper): support boolean
17981         (mono_marshal_get_managed_wrapper): support more types
17982
17983 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
17984
17985         * class.c (class_compute_field_layout): compute class->blittable attribute.
17986
17987 2002-07-09  Dick Porter  <dick@ximian.com>
17988
17989         * threads.c: Make the thread cleaning up cope with threads that
17990         call ExitThread()
17991
17992 2002-07-08  Radek Doulik  <rodo@ximian.com>
17993
17994         * reflection.c (method_encode_code): use non-translated values to
17995         compute finally_start, this fixes exception handling on ppc, yay!
17996
17997         * decimal.h (struct signscale): fix endianess
17998
17999 2002-07-07  Radek Doulik  <rodo@ximian.com>
18000
18001         * reflection.c: swap box_val and not val
18002
18003 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18004
18005         * reflection.c, reflection.h: handle full assembly info in type name.
18006         Handle Type arguments when loading custom attributes.
18007         * icall.c: updated to use new mono_reflection_type_from_name () method.
18008
18009 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18010
18011         * loader.c:
18012         (method_from_memberref): also print assembly name when method not found.
18013
18014 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18015
18016         * icall.c:
18017         (ves_icall_TypeGetProperties): fixed bug #27473. 
18018
18019 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18020
18021         * reflection.c: display image name and token when cannot find the
18022         .ctor for an attribute.
18023
18024 2002-07-05  Martin Baulig  <martin@gnome.org>
18025
18026         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18027
18028 2002-07-04  Dick Porter  <dick@ximian.com>
18029
18030         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18031         compile on mingw.  This will cause mingw builds to not wait for
18032         subthreads to terminate after the main thread does.  I've lodged a
18033         bug with the mingw developers for them to wrap OpenThread().
18034
18035 2002-07-03  Dick Porter  <dick@ximian.com>
18036
18037         * threads.c: Store thread IDs instead of handles, because
18038         GetCurrentThread() returns a pseudohandle and therefore stores
18039         useless values.  mono_thread_cleanup() continues checking the
18040         array of threads until it is empty, to cope with subthreads
18041         spawning new threads after the main thread has finished.
18042
18043         * profiler.h:
18044         * profiler.c:
18045         * profiler-private.h: Pass the thread ID to thread profiler
18046         functions, instead of a handle
18047
18048 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18049
18050         * verify.c: fixes to make it more usable.
18051         * pedump.c: added --verify code to verify IL code in an assembly.
18052
18053 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18054
18055         * reflection.c: turn errors into warnings to allow compiling corlib.
18056
18057 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18058
18059         * reflection.c: add special cases to compile corlib.
18060
18061 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18062
18063         * reflection.c: handle properties with only a set method.
18064
18065 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18066
18067         * opcodes.h: add enum with opcodes in opval order.
18068
18069 2002-07-01  Dick Porter  <dick@ximian.com>
18070         
18071         * object.h:
18072         * object.c (mono_runtime_run_main): Removed unneeded argument
18073
18074 2002-06-28  Martin Baulig  <martin@gnome.org>
18075
18076         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18077
18078 2002-06-27  Dick Porter  <dick@ximian.com>
18079
18080         * threads.c: Store the handle in both the parent thread and in the
18081         subthread, to minimise the time between starting a new thread and
18082         storing its ID.
18083
18084 2002-06-26  Dick Porter  <dick@ximian.com>
18085
18086         * appdomain.c (mono_runtime_cleanup): Close the socket library
18087         after all the threads have finished, not before
18088
18089 2002-06-26  Martin Baulig  <martin@gnome.org>
18090
18091         * debug-symfile.c (mono_debug_find_source_location): Added
18092         `guint32 *line_number' argument.  If it's not NULL, store the line number
18093         there and return the file name without the line number.
18094
18095 2002-06-25  Dick Porter  <dick@ximian.com>
18096
18097         * icall.c:
18098         * process.h:
18099         * process.c: Process forking and other support functions
18100
18101 2002-06-25  Dick Porter  <dick@ximian.com>
18102
18103         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18104         things dont happen when the image is closed.
18105         (mono_image_lookup_resource): Walk the resource section looking
18106         for a particular entry
18107
18108         * cil-coff.h: PE resource section decoding
18109
18110 2002-06-25  Dick Porter  <dick@ximian.com>
18111         
18112         * assembly.h:
18113         * assembly.c: 
18114         (mono_assembly_foreach): Accessor functions to walk the list of
18115         loaded assemblies
18116         (mono_assembly_set_main):
18117         (mono_assembly_get_main): Process methods need to know which
18118         assembly is the "main" one
18119
18120         * object.c (mono_runtime_run_main): Record the main assembly
18121
18122         * debug-helpers.c: Fix typo
18123
18124 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18125
18126         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18127         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18128
18129 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18130
18131         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18132
18133 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18134
18135         * image.c (do_mono_image_open): Initialize reference count,
18136         otherwise we leak the MonoImage.
18137
18138 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18139
18140         * reflection.c: small tweak to handle self-hosting.
18141
18142 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18143
18144         * reflection.c: fix type name parse code.
18145
18146 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18147
18148         * reflection.c: break out of the loop.
18149         * image.c: special case corlib.
18150
18151 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18152
18153         * reflection.c: add all the custom attrs at the end to ensure the
18154         ctors have been properly initialized when the attributes are defined
18155         in the current assembly.
18156
18157 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18158
18159         * reflection.c: handle correctly multiple-nested types.
18160
18161 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18162
18163         * row-indexes.h: fix typos.
18164         * reflection.c: adjust for typos and fix method_def_or_ref
18165         encoding in MethodImpl table.
18166
18167 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18168
18169         * reflection.c: fix entry point patching (thanks Serge!).
18170
18171 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18172
18173         * verify.c: add check for System.Exception
18174
18175 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18176
18177         * image.c, class.c: minifix for code just c&p'ed.
18178         * reflection.c: warning fix.
18179         * object.h, loader.h, domain.c: load also StringBuilder.
18180
18181 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18182
18183         * marshal.h, marshal.c: some support code to handle complex marshaling.
18184
18185 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18186
18187         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18188         Better signatures with vtable error dump.
18189
18190 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18191
18192         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18193
18194 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18195
18196         * icall.c (ves_icall_Type_GetField): impl.
18197
18198 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18199
18200         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18201         to retrieve a marshal description blob for a field or param.
18202
18203 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18204
18205         * reflection.h, reflection.c: change order of nested type emission
18206         to avoid table corruption. The NestedTypes table is sorted.
18207         * icall.c: change order of GetConstructor results to workaround mcs bug.
18208
18209 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18210
18211         * reflection.h, reflection.c: handle field and param marshal
18212         information.
18213
18214 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18215
18216         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18217
18218 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18219
18220         * reflection.c: fix call convention.
18221
18222 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18223
18224         * reflection.h, reflection.c: mono_image_get_memberref_token()
18225         takes a type instead of a class, now. Added
18226         mono_image_get_array_token() to create tokens for the special
18227         multi-dim array methods.
18228
18229 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18230
18231         * assembly.c: handle modules (no assembly table). Split
18232         loading references in its own function.
18233         * class.c: handle moduleref resolution scope.
18234         * image.c, image.h: cache module name in image.
18235
18236 2002-06-07  Martin Baulig  <martin@gnome.org>
18237
18238         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18239         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18240
18241 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18242
18243         * icall.c: more signature fixes that used uint instead of int.
18244
18245 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18246
18247         * reflection.c: fixed signature of field refs.
18248
18249 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18250
18251         * class.c, reflection.c: handle typerefs of nested types
18252         (both on read and when writing files).
18253
18254 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18255
18256         * icall.c: fix method signatures that tried to workaround the previous
18257         typo, d'oh!
18258
18259 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18260
18261         * debug-helpers.c: fix typo.
18262
18263 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18264
18265         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18266         rewrote the PE/COFF writing code (our programs are understood by the
18267         ms runtime, now).
18268
18269 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18270
18271         * gc.c, gc.h, icall.c: weakreference support.
18272
18273 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18274
18275         * Makefile.am, mono-config.c: use $(sysconfdir).
18276
18277 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18278
18279         * icall.c: changed default precision of Double.ToString() to 15.
18280         Fixed memory leak. Unified with Single.ToString.
18281
18282 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18283
18284         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18285
18286 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18287
18288         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18289         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18290         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18291         and myself.
18292
18293 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18294
18295         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18296
18297 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18298
18299         * reflection.c, socket-io.c: more compilation fixes.
18300
18301 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18302
18303         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18304         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18305         unicode.c: warning and compiler compatibility fixes.
18306
18307 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18308
18309         * class.h, metadata.c: fixed warnings/compilation errors.
18310
18311 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18312
18313         * Makefile.am, mono-config.c, mono-config.h: configuration file
18314         support routines.
18315         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18316         config file. Export methods to insert and lookup mappings.
18317
18318 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18319
18320         * reflection.c: handle types and boxed objects in custom attr
18321         constructors.
18322
18323 2002-05-30  Martin Baulig  <martin@gnome.org>
18324
18325         * debug-symfile.c
18326         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18327
18328 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18329
18330         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18331         to lookup the implmap row for a P/Invoke method.
18332         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18333         P/Invoke method from the runtime on an as needed basis.
18334
18335 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18336
18337         * metadata.c (mono_metadata_parse_signature): impl.
18338
18339 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18340
18341         * class.c: handle .pack directive.
18342
18343 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18344
18345         * object.c: initialize static fields with RVA data.
18346
18347 2002-05-25  Martin Baulig  <martin@gnome.org>
18348
18349         * debug-symfile.c
18350         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18351
18352 2002-05-24  Martin Baulig  <martin@gnome.org>
18353
18354         * debug-symfile.c
18355         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18356         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18357         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18358
18359 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18360
18361         * object.c: special case string ctros in invoke.
18362         * gc.c: silly whitespace changes.
18363
18364 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18365
18366         * threadpool.[ch]: impl. a threadpool that can
18367         be used by mint and mono.
18368
18369 2002-05-22  Martin Baulig  <martin@gnome.org>
18370
18371         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18372         The first argument is now a `MonoReflectionModuleBuilder *', the return
18373         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18374         `methods' field to get the method builder.  The `token' argument is the
18375         unfixed token.
18376
18377         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18378         invalid characters instead of g_assert_not_reached()ing.  This seems
18379         to be the behaviour of mscorlib.
18380
18381 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18382
18383         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18384         Hestilow to fix bug #25104
18385
18386 2002-05-21  Martin Baulig  <martin@gnome.org>
18387
18388         * debug-symfile.c (mono_debug_find_source_location): New function.
18389         Looks up an IL offset in the line number table and returns the source
18390         location as a string.
18391
18392 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18393
18394         * icall.c:
18395         (mono_double_ToStringImpl): changed %f by %g until we have something
18396         better.
18397
18398 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18399
18400         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18401         parameters first in C#.
18402
18403 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18404
18405         * icall.c, reflection.h: added icall to get info about an event.
18406
18407 2002-05-20  Radek Doulik  <rodo@ximian.com>
18408
18409         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18410         endian
18411         (mono_value_box): don't use memcpy for small sizes on
18412         architectures with unaligned access
18413
18414 2002-05-20  Martin Baulig  <martin@gnome.org>
18415
18416         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18417         if `tb->parent == NULL'.
18418         (mono_reflection_create_internal_class): New function.  This is
18419         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18420         for enum types.
18421
18422         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18423         New interncall.
18424
18425 2002-05-19  Martin Baulig  <martin@gnome.org>
18426
18427         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18428         argument to get the length, don't default to the array length.
18429
18430 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18431
18432         * assembly.c (mono_assembly_setrootdir): New function used to
18433         override the MONO_ASSEMBLIES directory.
18434
18435 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18436
18437         * icall.c: ValueType_GetHashCode() initialize local var.
18438
18439 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18440
18441         * reflection.c: sort custom attributes table.
18442
18443 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18444
18445         * reflection.c: support named args in custom attributes (write support).
18446
18447 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18448
18449         * reflection.c: fix finally position calculation.
18450
18451 2002-05-15  Radek Doulik  <rodo@ximian.com>
18452
18453         * reflection.c: fixed endianess at many places
18454
18455         * icall.c (ves_icall_InitializeArray): comment out debug msg
18456
18457 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18458
18459         * object.c (mono_unhandled_exception): new function to handle
18460         unhandled exceptions.
18461         (mono_unhandled_exception): call the UnhandledException event.
18462         (mono_runtime_delegate_invoke): impl.
18463
18464 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18465
18466         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18467         returns the RVA, not the direct pointer to the data. Handle the case
18468         when the class size is fixed.
18469
18470 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18471
18472         * reflection.c: fix some endianess issues.
18473
18474 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18475
18476         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18477
18478         * threads.c (mono_thread_init): added a callback which is invoked
18479         at thread start.
18480
18481 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18482         
18483         * icall.c: make GetHashCode return non-negative values.
18484
18485 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18486
18487         * object.c, icall.c, gc.c: revert to address-based hashcode.
18488
18489 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18490
18491         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18492
18493 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18494
18495         * icall.c, class.c: special case <Module>.
18496
18497 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18498
18499         * icall.c: fix bug in GetNow().
18500
18501 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18502
18503         * object.c (mono_runtime_class_init): make sure that we call all
18504         static class constructors.
18505
18506 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18507
18508         * reflection.c: sort methodsemantics table.
18509
18510 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18511
18512         * reflection.h, reflection.c: honour init locals setting.
18513
18514 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18515
18516         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18517
18518 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18519
18520         * reflection.c: support ContructorBuilders in attribute blob creation.
18521
18522 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18523
18524         * reflection.c: some changes to build a binary that can be run
18525         directly in windows.
18526
18527 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18528
18529         * loader.c: print a big message when an icall can't be found.
18530
18531 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18532
18533         * string-icalls.c: fix bug 24248.
18534
18535 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18536
18537         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18538         icall.c, reflection.h: separate assembly loading by pathname and by
18539         assembly name. Use the MONO_PATH env var to search for assemblies.
18540
18541 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18542
18543         * assembly.c, image.h: add some support for assemblies
18544         with multiple modules.
18545         * class.c, class.h: export mono_class_from_typeref().
18546         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18547         instead.
18548
18549 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18550
18551         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18552         documentation says (the ECMA one is correct).
18553
18554 2002-05-02  Dick Porter  <dick@ximian.com>
18555
18556         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18557         Don't name the synchronisation mutex.
18558
18559 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18560
18561         * rand.c
18562         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18563         Make the prototypes match.
18564         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18565         Same.
18566
18567         * icall.c
18568         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18569         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18570         all systems have tm.tm_zone, so use strftime() with %Z to print
18571         the timezone abreviation into a temp string.
18572
18573         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18574         rather than mono_array_addr() on a MonoString on Big Endian
18575         machines.
18576
18577 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18578
18579         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18580         fix bug 24041
18581
18582 2002-04-30  Dick Porter  <dick@ximian.com>
18583
18584         * socket-io.c: Cope with SOCKET being an integer rather than a
18585         pointer now.
18586
18587         * threads.c: Added Thread_free_internal, to deal with thread
18588         handle cleanup.  Moved calls to handle_store() and handle_remove()
18589         to start_wrapper(), so each can only be called once.  Allocate
18590         synchronisation blocks with GC_malloc(), and use GC finalisation
18591         to close the handles.
18592
18593         * icall.c: added System.Threading.Thread::Thread_free_internal
18594
18595 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18596
18597         * icall.c: support Environment.Exit, CommandLineArgs().
18598
18599 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18600
18601         * object.c, object.h: added mono_runtime_run_main () and
18602         mono_runtime_get_main_args () for use in System.Environment.
18603
18604 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18605
18606         * gc.c: fix thinko, enable actual finalization since the jit is now
18607         fixed.
18608
18609 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18610
18611         * gc.c, object.c: take into account that an object may be offset wrt the address
18612         returned by GC_malloc().
18613
18614 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18615
18616         * image.c: handle files without entries in the assembly table (modules).
18617
18618 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18619
18620         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18621         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18622         allowed to be null when it's System.Object class setup.
18623
18624 2002-04-27  Martin Baulig  <martin@gnome.org>
18625
18626         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18627         if `tb->parent == NULL' rather than crashing.
18628
18629 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18630
18631         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18632         calling acos() where asin() should have been called.
18633
18634 2002-04-26  Martin Baulig  <martin@gnome.org>
18635
18636         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18637         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18638         there's a subdirectory called `System', but we don't want to read that
18639         subdirectory as an assembly.
18640
18641 2002-04-25  Martin Baulig  <martin@gnome.org>
18642
18643         * debug-symfile.c: Reflect latest MonoString changes.
18644
18645 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18646
18647         * rand.c, rand.h: instance method icalls need to have an explicit
18648         this pointer as first argument in the C implementation.
18649
18650 2002-04-25  Nick Drochak <ndrochak@gol.com>
18651
18652         * icall.c: Fix typo in map for GetNonZeroBytes
18653
18654 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18655
18656         * string-icalls.c : String does now passes unit tests without any 
18657         errors, the following changes has been made:
18658         
18659         Implemented replace methods.
18660         Renaming of methods to (try) follow the standard.
18661         Fixed compare ordinal
18662         Made all memory allocated directly to function instead of via icall function.
18663         Small performance fix in is_in_array function
18664                         
18665  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18666
18667         c (mono_string_Internal_ctor_charp_int_int):
18668         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18669         sindex < 0, throw ArgumentOutOfRangeException instead of
18670         ArgumentNullException.
18671
18672         Added new check for length == 0, however
18673         I need to make it return String.Empty from the C code.
18674         
18675         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18676         that calculate the length for us here.
18677         
18678         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18679         mono_string_new_utf16 with mono_string_new, since value is utf8.
18680
18681 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18682
18683         * object.c: register the object for finalization if needed.
18684         Allocate one more char in the string for the terminating 0 char.
18685
18686 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18687
18688         * class.c, class.h, image.c: check if a type implemenst a destructor.
18689         Use the proper key for array class lookups.
18690         * icall.c: register the icalls in the System.GC class.
18691         * gc.c, gc.h: GC-related functions and icalls.
18692
18693 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18694
18695         * icall.c:
18696         * socket-io.c:
18697         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18698         changed a couple of free () by g_free ().
18699
18700         * decimal.c: one-liner in the comments for decimal2string ().
18701
18702 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18703
18704         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18705
18706 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18707
18708         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18709         * object.c (mono_runtime_invoke_array) : handle null in params
18710
18711 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18712
18713         * string-icalls.c: fixed bug in split (one off bug)
18714
18715 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18716
18717         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18718         * icalls.c: added String::Equals as internal method
18719
18720 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18721
18722         * threads.c: fixed bug in the double interlocked functions
18723
18724 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18725
18726         * threads.c: implemented all of the new interlocked icalls.
18727         * string-icalls.c: fix a bug in insert.
18728         * icalls.c: added the icalls for interlocked, removed old string functions.
18729         
18730 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18731
18732         * loader.c: fix off-by-one error when reading argument names.
18733
18734 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18735
18736         * profiler.c: win32 counter implementation (untested).
18737         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18738         (the latter needs testing and more complete impl. from win32 folks).
18739
18740 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18741
18742         * object.c: mono_array_new_full workaround mono_array_class_get
18743         problem.
18744
18745 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18746
18747         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18748         * object.h (mono_string_chars): Changed casting type.
18749
18750 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18751
18752         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18753                            method signatures to use gunichar2 instead of gint16.
18754
18755 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18756
18757         * object.h, object.c: domain-specific versions of mono_object_new and
18758         mono_array_new.
18759
18760 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18761
18762         * object.c: changed String layout
18763
18764         * string-icalls.c (mono_string_Internal_ctor_chara): added
18765         internal string constructors.
18766
18767 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18768
18769         * threads.c: pass 'this' to the thread start routine.
18770
18771 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18772
18773         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18774         InternalCompareStr don't call twice mono_string_cmp_char for the last
18775         character. Improved performance in mono_string_cmp_char.
18776
18777 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18778
18779         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18780         code into its own library: libmonoruntime.
18781
18782 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18783
18784         * object.h, object.c: changed array format so that szarrays do not
18785         require a bounds structure.
18786         * icall.c, appdomain.c: support for new szarray format.
18787
18788 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18789
18790         * metadata.c: compare also the retuns type when comparing signatures:
18791         we didn't do this as an optimization since really overloaded methods
18792         must differ also in the arguments, but this doesn't work with
18793         low-level IL code (or when using explicit conversion operators: see
18794         bug#23498 for an example).
18795
18796 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18797
18798         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18799
18800 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18801
18802         * icall.c: make MonoType::GetElementType its own icall.
18803
18804 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18805
18806         * icall.c: remove MonoMethod_get_Name().
18807         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18808         object.
18809
18810 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18811
18812         * string-icalls.c: optimized a few methods.
18813
18814 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18815
18816         * icall.c: added all new string internal calls
18817         * string-icalls.c: added, new string internal call implementation.
18818         * object.c: added mono_string_new_size for allocating a string a size
18819
18820 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18821
18822         * object.c (mono_object_isinst): use the same code as in the
18823         optimized x86 version.
18824
18825 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18826
18827         * profiler.c: TSC-based timer code (faster and more accurate).
18828         Not hooked up in configure, yet (set USE_X86TSC to 1).
18829
18830 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18831
18832         * profiler.c, profiler.h: track time spent compiling methods.
18833         * threads.c: track thread creation/destruction.
18834
18835 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18836
18837         * profiler.c, profiler.h, profiler-private.h: profiling interface
18838         and sample implementation. Moved here so that it can be used also by
18839         the jit.
18840
18841 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18842
18843         * reflection.c, reflection.h: keep types and other handles separate in
18844         the hash tables for referred tokens. Add guid for modules.
18845
18846 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18847
18848         * assembly.c: fix bugs found with valgrind.
18849         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18850
18851 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18852
18853         * threads: added icall support for getting current domain for
18854                    the thread.
18855  
18856 2002-04-13  Martin Baulig  <martin@gnome.org>
18857
18858         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18859         (MonoDebugVarInfo): Added `index' field for register based addresses.
18860         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18861         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18862         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18863         `MonoDebugVarInfo *this_var'.
18864
18865         * debug-symfile.c (relocate_variable): New static function to write
18866         a location description for a local variable or method parameter.
18867
18868 2002-04-12  Martin Baulig  <martin@gnome.org>
18869
18870         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18871         stack offset and begin/end scope address of a local variable.
18872         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18873         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18874         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18875
18876         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18877         Added new relocation types for start/end scope of a local variable.
18878
18879 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18880
18881         * object.h: add mono_object_domain() macro.
18882         * reflection.c: handle typespecs.
18883         * icall.c: MonoMethod::get_Name() implementation.
18884
18885 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18886
18887         * icall.c: String::GetHashCode() icall implementation.
18888
18889 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18890
18891         * icall.c: String::IndexOfAny icall.
18892         * object.c, object.h: make array->max_length more useful.
18893         Intrduced mono_object_class() and mono_string_length() macros.
18894
18895 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18896
18897         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18898         instead of g_unichar_isdigit.
18899
18900 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18901
18902         * icall.c: Implement a simple Double.ToString().
18903
18904 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18905
18906         * appdomain.h: only io-layer.h is supposed to be included.
18907         * icall.c: explicitly import environ. Fix warning.
18908
18909 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18910
18911         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18912                 return true even if it's not Daylight Savings time.
18913                 Only return false for the case where the function isn't
18914                 implemented for a plaform (read Windows).
18915
18916 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18917
18918         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18919         data with a mutex.
18920
18921 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18922
18923         * mempool.c (mono_mempool_alloc): only use g_malloc when
18924         absolutely necessary.
18925
18926 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18927
18928         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18929
18930         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18931         (mono_class_proxy_vtable): use domain mempool
18932
18933 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18934
18935         * appdomain.h, appdomain.c: split initialization that requires the
18936         execution engine support into mono_runtime_init().
18937
18938 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18939
18940         * class.c (mono_class_init): don't include vtable inside MonoClass
18941         to save some memory, gather some statistics.
18942         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18943
18944 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18945
18946         * icall.c: internalcall implementation for ValueType.Equals().
18947
18948 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18949
18950         * object.c (mono_message_init): moved 
18951         (mono_runtime_exec_main): new arch. independent impl.
18952         (mono_runtime_invoke_array): new method - like
18953         mono_runtime_invoke, but you can pass an array of objects.
18954         (mono_remoting_invoke): new arch. independent impl.
18955         (mono_message_invoke): new arch. independent impl.
18956         (mono_runtime_class_init): new arch. independent impl.
18957         (mono_runtime_object_init): new arch. independent impl.
18958
18959 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18960
18961         * metadata.c, object.c, reflection.c: documented the exported
18962         functions.
18963
18964 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18965
18966         * icall.c: simpler code to pass the assembly builder data to corlib.
18967         Implement GetNestedTypes() internalcall.
18968
18969 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18970
18971         * class.c: warn if a type can't be loaded.
18972
18973 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
18974
18975         * image.h: typedef MonoImageOpenStatus
18976         * types.h: removed unused file
18977         
18978 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
18979
18980         * icall.c: Enum_ToObject accepts enum value arguments.
18981
18982 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18983
18984         * class.c: move initialization of properties, events and nested
18985         classes, so that they happen for interfaces, too.
18986
18987 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18988
18989         * icall.c: cleanup some ugly casts in Array_SetValue*.
18990
18991 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18992
18993         * icall.c: the values array fro enums is of the correct type, now.
18994         Implement (correctly) getFullName instead of assQualifiedName for
18995         MonoType.
18996         * reflection.h, reflection.c: added mono_type_get_name ().
18997
18998 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18999
19000         * assembly.c, image.h: for each MonoImage, record from wich assembly
19001         it was loaded.
19002         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19003         Make Type.Assembly work.
19004
19005 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19006
19007         * debug-symfile.h: use char* instead of gpointer to avoid
19008         unnecessary casts.
19009
19010         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19011
19012         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19013         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19014
19015 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19016
19017         * icall.c (mono_message_init): impl. (code cleanup)
19018         (ves_icall_InternalExecute): impl. FieldGetter
19019
19020         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19021         defined we call all (non-static)methods through the vtable. 
19022
19023 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19024
19025         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19026         finalizer even though the memory is still referenced (and the chunk of
19027         memory is not freed).
19028
19029 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19030
19031         * assembly.c: fix brokeness.
19032
19033 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19034
19035         * class.c: kill some warnings. Check explicit interface method
19036         implementation also without considering the namespace.
19037         Load also literal strings in static class data.
19038
19039 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19040
19041         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19042         (default_assembly_name_resolver): Make the resolver take the
19043         "base" directory where the assembly was originally defined, so we
19044         can load DLLs that are in the same directory as the assembly that
19045         is being referenced.
19046
19047 2002-03-28  Dick Porter  <dick@ximian.com>
19048
19049         * file-io.h: 
19050         * file-io.c:
19051         * socket-io.c: 
19052         * unicode.h: 
19053         * unicode.c: Warning cleanups
19054
19055 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19056
19057         * object.h, reflection.h: use the correct type instead of MonoObject.
19058
19059 2002-03-28  Martin Baulig  <martin@gnome.org>
19060
19061         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19062         (mono_debug_update_symbol_file): Initialize classes if necessary.
19063
19064 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19065
19066         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19067         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19068
19069 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19070
19071         * assembly.h: fix function prototype.
19072         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19073         * mono-endian.h: use const cast.
19074
19075 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19076
19077         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19078
19079 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19080
19081         * loader.c: don't assert when a typeref can't be loaded, give
19082         a chance to the runtime to trow an exception instead.
19083         * loader.h: fix warning.
19084
19085 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19086
19087         * class.c (mono_class_proxy_vtable): added proxy support
19088
19089 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19090
19091         * icall.c: removed last of PAL calls, added System.Environment
19092         * file-io.h, file-io.c: MonoIO implementation
19093         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19094
19095 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19096
19097         * appdomain.c: do not use the byte marker in ldstr table lookup.
19098         * debug-helpers.c: allow two ':' to separate class and method name.
19099         * object.c: allocate arrays bounds with the GC, too.
19100         * verify: add a few more checks.
19101
19102 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19103
19104         * reflection.c: output also literal strings. Allocate parameter data
19105         with GC_malloc() (thanks, Martin, for catching this!).
19106
19107 2002-03-26  Martin Baulig  <martin@gnome.org>
19108
19109         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19110         include the `this' offset in the `param_offsets'.
19111
19112 2002-03-25  Martin Baulig  <martin@gnome.org>
19113
19114         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19115         mono_debug_get_class() function to get the classes. Added new
19116         relocation types for arrays and strings.
19117         (mono_debug_get_class): New static function to search in all
19118         referenced assemblies for a metadata token.
19119
19120         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19121
19122 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19123
19124         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19125         hold gc-allocated objects. Make the string heap a stream like the
19126         others. Removed duplicated code when writing stream info.
19127         Added asserts to catch possible buffer overflows. Set the sorted map
19128         for tables that need sorting. Added some documentation.
19129
19130 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19131
19132         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19133         for interned strings and vtables.
19134
19135 2002-03-24  Martin Baulig  <martin@gnome.org>
19136
19137         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19138         it in the array since it was created with g_slist_prepend().
19139
19140 2002-03-24  Martin Baulig  <martin@gnome.org>
19141
19142         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19143         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19144         (mono_debug_method_from_token): Renamed to
19145         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19146         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19147
19148         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19149         relocation types.
19150
19151         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19152
19153 2002-03-24  Martin Baulig  <martin@gnome.org>
19154
19155         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19156         (mono_debug_method_from_token): New func.
19157
19158         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19159         New interncall, calls mono_debug_local_type_from_signature().
19160         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19161         calls mono_debug_method_from_token().
19162
19163 2002-03-23  Martin Baulig  <martin@gnome.org>
19164
19165         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19166         specifies the number of bytes to be converted, not the array size.
19167         Return the number of chars, not the number of bytes.
19168         (ves_icall_iconv_get_chars): The `byteCount' argument
19169         specifies the number of bytes to be converted, not the array size.
19170
19171 2002-03-23  Martin Baulig  <martin@gnome.org>
19172
19173         * reflection.h (MonoReflectionSigHelper): New type.
19174
19175         * reflection.c (mono_reflection_sighelper_get_signature_local),
19176         (mono_reflection_sighelper_get_signature_local): New functions.
19177
19178         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19179         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19180         interncalls.
19181
19182 2002-03-23  Martin Baulig  <martin@gnome.org>
19183
19184         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19185         is_writeable is set.
19186         (mono_raw_buffer_update): New function to write the modified map
19187         back to disk.
19188
19189         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19190
19191         * debug-symfile.c (mono_debug_update_symbol_file): Call
19192         mono_raw_buffer_update() when done writing.
19193
19194 2002-03-23  Martin Baulig  <martin@gnome.org>
19195
19196         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19197
19198         * debug-symfile.c: Added support for arguments and local variables.
19199
19200 2002-03-23  Dick Porter  <dick@ximian.com>
19201
19202         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19203         protected by ifdefs, hence breaking the w32 build.
19204
19205 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19206
19207         * object.c: implement is_interned() the right way.
19208
19209 2002-03-21  Martin Baulig  <martin@gnome.org>
19210
19211         * debug-symfile.[ch]: New files to handle debugging information
19212         files. There's also support to dynamically update these symbol
19213         files to include machine dependent information.
19214
19215 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19216
19217         * threads.c (mono_thread_create): new function to create thread
19218         from C
19219
19220 2002-03-20  Martin Baulig  <martin@gnome.org>
19221
19222         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19223         method is a constructor.
19224         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19225         points to ves_icall_InternalInvoke().
19226
19227 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19228
19229         * file-io.c: Flush shouldn't throw exceptions.
19230
19231 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19232
19233         * file-io.c: FileStream flush support; FileSetLength now
19234         restores file pointer.
19235
19236 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19237
19238         * class.c: set image for pointer classes.
19239
19240 2002/03/19  Nick Drochak <ndrochak@gol.com>
19241
19242         * sysmath.c: Forgot one.
19243
19244 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19245
19246         * sysmath.c: Avoid redefining existing names.
19247
19248 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19249
19250         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19251         handled by runtime as icall rather than dllimport from libm.so
19252         * file-io.c, file-io.h: fixed handle argument type.
19253
19254 2002-03-18  Dick Porter  <dick@ximian.com>
19255
19256         * reflection.c (mono_image_get_type_info): rename interface to
19257         iface, because of "#define interface struct" on windows.
19258
19259 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19260
19261         * class.c, class.h: rename and export mono_ptr_class_get().
19262         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19263         * reflection.c, reflection.h, icall.c: better/saner type name
19264         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19265         method signatures.
19266
19267 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19268
19269         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19270
19271         * icall.c (ves_icall_InternalInvoke): impl.
19272
19273 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19274
19275         * reflection.c: output the interface map table, too.
19276
19277 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19278
19279         * class.c (class_compute_field_layout): separate computation of 
19280         static field layout
19281
19282 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19283
19284         * icall.c: added System.Buffer support.
19285         * file-io.c: moved file icalls from PAL to FileStream.
19286
19287 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19288
19289         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19290
19291 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19292
19293         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19294
19295 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19296
19297         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19298
19299 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19300
19301         * debug-helpers.{c,h}: moved here from monograph some useful functions
19302         to locate a method by name/signature in a class or image. Included
19303         also a small and flexible IL disassembler.
19304
19305 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19306
19307         * reflection.c: fixup tokens in methods with small header size, too.
19308
19309 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19310
19311         * object.c (mono_string_to_utf8): remove assert(!error), instead
19312         print a warning. 
19313
19314 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19315
19316         * icall.c: update to the new mono_Array_class_get interface.
19317
19318 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19319
19320         * appdomain.c, object.c: Boehm-GC enable.
19321         * icall.c: make get_data_chunk() support split data requests.
19322         Ensure a class is initialized in more cases. Return only the first
19323         property found in GetProperties() or the compiler gets confused. 
19324         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19325         * reflection.h, reflection.c: add fixup mechanism for field and method
19326         tokens. Initialize assembly->typeref in a single place. Output
19327         properties after events. Support custom attributes for events, too.
19328         Typo fix for paramter custom attrs.
19329
19330 2002-03-07  Martin Baulig  <martin@gnome.org>
19331
19332         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19333
19334 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19335
19336         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19337
19338 2002-03-06  Martin Baulig  <martin@gnome.org>
19339
19340         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19341         non-zero lower bounds. See testcases #F10-#F13.
19342
19343 2002-03-05  Martin Baulig  <martin@gnome.org>
19344
19345         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19346
19347         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19348         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19349         here.
19350         (ves_icall_System_Array_SetValue): Likewise.
19351         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19352         as argument and does the actual work. This function is used when copying a
19353         multi-dimensional array.
19354         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19355         now do all the widening conversions of value types.
19356         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19357
19358 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19359
19360         * class.c: remove some magic numbers and use the smbolic names,
19361         instead. Added init_events() to load event info at class init time.
19362         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19363         and mono_metadata_methods_from_event().
19364         * reflection.h, reflection.c: added support for writing out the evnets
19365         related information.
19366
19367 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19368
19369         * reflection.h, icall.c: use a different method (GetInterfaces)
19370         to gather interface info and add isbyref, isprimitive and
19371         ispointer to the ves_icall_get_type_info() return value.
19372
19373 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19374
19375         * class.h: stared adding support for events.
19376         * icall.c: split find_members implementation. Added debug icall to get
19377         the address of an object.
19378         * reflection.c: handle TypeBuilders in mono_type_get_object().
19379
19380 2002-03-01  Martin Baulig  <martin@gnome.org>
19381
19382         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19383         ArgumentOutOfRangeException(), not an ArgumentException().
19384         (ves_icall_System_Array_GetLowerBound): Likewise.
19385         (ves_icall_System_Array_GetValue): Improved argument checking.
19386         (ves_icall_System_Array_SetValue): Improved argument checking.
19387
19388 2002-03-01  Martin Baulig  <martin@gnome.org>
19389
19390         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19391         called with invalid arguments rather than just dying with g_assert().
19392         (ves_icall_System_Array_SetValue): Likewise.
19393         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19394         raise a NotImplementedException instead.
19395         (ves_icall_System_Array_GetLength): Added argument checking.
19396         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19397
19398 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19399
19400         * object.h (mono_assert): new macros mono_assert and
19401         mono_assert_not_reached
19402
19403 2002-02-28  Martin Baulig  <martin@gnome.org>
19404
19405         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19406         and "System::String::IsInterned" to "System::String::_IsInterned".
19407
19408 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19409
19410         * icall.c: remove hacks for typebuilder. Added icall to create a
19411         modified type from a tybebuilder.
19412         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19413         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19414         to create a backing MonoClass for a TypeBuilder.
19415
19416 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19417
19418         * class.c, class.h: more refactoring of class init.
19419         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19420
19421 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19422
19423         * marshal.c, marshal.h: start of marshaling interface.
19424
19425 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19426
19427         * icall.c: fix order in assembly qualified name icall.
19428
19429 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19430
19431         * class.c: do not free str, since we store it in the hash table.
19432         * reflection.h: add label field to MonoILExceptionInfo.
19433         * reflection.c: handle references to more than one assembly. Handle
19434         case when there isn't a module created in the assembly.
19435
19436 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19437
19438         * class.c: Fix typo. Start refactoring of class init code.
19439
19440 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19441
19442         * appdomain.c: exit with 1 on error.
19443         * class.c: we already have the name in MonoClassField.
19444         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19445         MonoStreamHeader instead of an offset of image->raw_metadata.
19446
19447 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19448
19449         * appdomain.c (mono_init): Be even more descriptive about the error.
19450
19451 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19452
19453         * appdomain.c: give the user an informative message when corlib can't
19454         be loaded.
19455
19456 2002-02-26  Martin Baulig  <martin@gnome.org>
19457
19458         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19459         New icall to get the time zone data.
19460
19461 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19462
19463         * reflection.c: set virtual and raw size of section correctly.
19464         * threads.c: transfer domain information to newly created threads.
19465
19466 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19467
19468         * class.c: when instancing a class in a domain, load the default
19469         vaules for static fields from the constant table. Fix System.Enum to
19470         not be an enum.
19471         * icall.c: implement Object::GetType() internalcall. Implemented
19472         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19473         Fixed checking of binding flags in find_members().
19474         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19475         * reflection.c: handle enumerations when writing to the constant
19476         table. Use a different object cache for types.
19477
19478
19479 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19480
19481         * object.c (mono_object_isinst): fix for arrays
19482
19483         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19484
19485 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19486
19487         * object.c: don't use mprotect ()  and fix intern pool hash table
19488         lookup for big endian systems.
19489
19490 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19491
19492         * icall.c: change type_is_subtype_of () signature.
19493
19494 2002-02-21  Mark Crichton  <crichton@gimp.org>
19495
19496         * rand.c, rand.h: Added random number generator for
19497         System.Security.Cryptography classes.
19498
19499         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19500
19501         * icall.c: Added System.Security.Cryptography calls.
19502
19503 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19504
19505         * class.c, icall.c, metadata.c: better support for pointer types.
19506         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19507         * reflection.c: Add support for getting custom attrs for properties
19508         and simplify some code.
19509
19510 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19511
19512         * icall.c: change getToken () and add custom attribute GetBlob()helper
19513         method.
19514         * reflection.h: add custom attrs array to the reflection builder structures.
19515         * reflection.c: encode and emit custom attributes for all the relevant
19516         reflection objects. Cache fieldref and methodref tokens. Change
19517         mono_image_create_token() interface to take a MonoDynamicAssembly.
19518         More complete custom attributes decoder. Load custom attributes for
19519         Assembly, Field, Method and Constructor objects, too. Make the
19520         returned array an Attribute[] one, not object[]. Added
19521         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19522         custom attribute constructor.
19523
19524 2002-02-20  Dick Porter  <dick@ximian.com>
19525
19526         * icall.c:
19527         * rawbuffer.c:
19528         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19529         problem code out for now).
19530
19531 2002-02-19  Radek Doulik  <rodo@ximian.com>
19532
19533         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19534
19535 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19536
19537         * icall.c: register the GetCustomAttributes method.
19538         * object.c, object.h: add mono_string_new_len ().
19539         * reflection.h, reflection.c: added mono_runtime_invoke(),
19540         mono_install_runtime_invoke(). Added
19541         mono_reflection_get_custom_attrs () to load custom attributes and
19542         create the attribute objects.
19543
19544 2002-02-19  Dick Porter  <dick@ximian.com>
19545         * threads-dummy-types.c:
19546         * threads-dummy-types.h:
19547         * threads-dummy.c:
19548         * threads-dummy.h:
19549         * threads-pthread-types.c:
19550         * threads-pthread-types.h:
19551         * threads-pthread.c:
19552         * threads-pthread.h:  Deleted obsolete files
19553
19554 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19555
19556         * class.c (mono_class_vtable): runtime init the class when we
19557         allocate static class data.
19558
19559         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19560
19561         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19562         and String - but we will need generic marshalling support in the
19563         future. 
19564         (mono_init): set the domain name in a ms compatible way
19565
19566         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19567         String[].
19568
19569 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19570
19571         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19572         for sizes
19573
19574         * appdomain.c (mono_domain_unload): impl.
19575
19576 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19577
19578         * appdomain.c, object.c: fix intern pool implementation.
19579         * class.c: fix alignment code.
19580
19581 2002-02-16  Radek Doulik  <rodo@ximian.com>
19582
19583         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19584         and s2 > s1, just copy lower bytes to be compatible with little
19585         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19586         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19587
19588         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19589         force big_endian to be 1 for big endian machines 
19590         (ves_icall_iconv_new_decoder): ditto
19591
19592 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19593
19594         * socket-io.c (convert_sockopt_level_and_name): If the system
19595         doesn't define SOL_IP or SOL_TCP, get them by hand using
19596         getprotobyname() and caching the values (because this could be a
19597         slow operation).
19598         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19599         Use the appropriate struct when the system does support it. Ie,
19600         not all systems have struct ip_mreqn so use struct ip_mreq when
19601         appropriate.
19602
19603 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19604
19605         * reflection.c: handle finally clauses.
19606
19607 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19608
19609         * socket-io.c: use g_snprintf() instead of snprintf.
19610
19611 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19612
19613         * reflection.c (mono_param_get_objects): Cast second argument to
19614         mono_method_get_param_names to a const char** to silence the
19615         compiler warning.
19616
19617         * appdomain.c (mono_domain_assembly_open): Put parens around the
19618         truth statement in the for-loop.
19619
19620         * unicode.c (iconv_convert): Got rid of a compiler warning about
19621         int i being unused when the system has a new iconv.
19622         (iconv_get_length): Same.
19623
19624         * image.c (load_class_names): Cast the second argument to
19625         g_hash_table_insert() to char* to hush compiler warnings about the
19626         arg being a const.
19627         (mono_image_open): Same here.
19628
19629         * socket-io.c: Don't conditionally include sys/filio.h or
19630         sys/sockio.h here anymore since we now get them from
19631         io-layer/io-layer.h
19632         (inet_pton): If the system doesn't support inet_aton, implement
19633         using inet_addr and also #define INADDR_NONE if it isn't defined
19634         by the system.
19635
19636 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19637
19638         * metadata.c, metadata.h: added function to get packing and size info
19639         of a typedef.
19640         * reflection.h, reflection.c: handle field RVA data. Save info about
19641         the table layout if needed. Assign typedef indexes to all the types
19642         before dumping the info about them to avoid forward reference problems.
19643
19644 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19645
19646         * socket-io.c (convert_sockopt_level_and_name): ifdef
19647         SO_ACCEPTCONN because it is not defined on my system (old debian)
19648
19649 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19650
19651         * opcode.c: use stddef.h to get NULL.
19652
19653 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19654
19655         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19656         for FIONBIO, FIONREAD and SIOCATMARK.
19657         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19658         define INADDR_NONE and besides, inet_addr() is deprecated and
19659         should not be used. Use inet_pton() instead - it also has the
19660         added bonus that it can easily handle IPv6 addresses as well.
19661         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19662
19663 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19664
19665         * decimal.c: remove _MSC_VER conditional.
19666
19667 2002-02-13  Dick Porter  <dick@ximian.com>
19668
19669         * socket-io.c: 
19670         * icall.c: Internal calls for Blocking, Select, Shutdown,
19671         GetSocketOption and SetSocketOption
19672
19673 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19674
19675         * assembly.cs: better resolver: use it instead of some kludgy
19676         code.
19677
19678 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19679
19680         * reflection.c: the best way to speed-up the compiler is to avoid
19681         infinite loops.
19682
19683 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19684
19685         * class.c (mono_class_vtable): changed the object layout
19686         (obj->vtable->class). 
19687         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19688
19689 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19690
19691         * assembly.c: look for assemblies in the assembly dir, too.
19692
19693 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19694
19695         * class.c: fix thinko in mono_class_from_type().
19696
19697 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19698
19699         * exception.h, exception.c: added TypeLoadException.
19700         * object.h, object.c: added mono_array_clone ().
19701         * icall.c: handle throwOnError in AssemblyGetType().
19702         Added Array.Clone().
19703         * opcode.h, opcode.c: use a single value for the opcode val.
19704         Compile fix for non-gcc compilers.
19705
19706 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19707
19708         * opcodes.c, opcodes.h: export interesting info about opcodes.
19709
19710 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19711
19712         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19713         icalls. 
19714
19715         * class.c (class_compute_field_layout): set element_class for enums
19716         (mono_class_create_from_typedef): set element_class for normal classes
19717
19718         * icall.c (ves_icall_System_Enum_get_value): impl.
19719
19720         * class.c (mono_class_create_from_typedef): do not set valuetype
19721         flag for System.ValueType and System.Enum
19722
19723 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19724
19725         * unicode.c (iconv_convert): fix big endian problem.
19726
19727 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19728
19729         * class.c: add asserts if we are ever going to scribble over memory.
19730         * socket-io.c: not all systems have AF_IRDA defined.
19731
19732 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19733
19734         * class.c (class_compute_field_layout): do not consider static
19735         fields to compute alignment
19736
19737 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19738
19739         * appdomain.c (mono_appdomain_get): impl.
19740         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19741
19742 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19743
19744         * icall.c: ignore "file://" prefix when loading an assembly.
19745
19746 2002-01-23  Dick Porter  <dick@ximian.com>
19747
19748         * socket-io.c:
19749         * icall.c:
19750         * Makefile.am: Added socket support
19751
19752 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19753
19754         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19755         code back.  This should return the assemblies that are loaded by
19756         the runtime on behalf of an application domain. 
19757
19758         The current implementation is still broken, it just returns every
19759         assembly loaded, but until we get real applications domain this
19760         will do.
19761
19762 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19763
19764         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19765         AppDomain object.
19766
19767 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19768
19769         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19770         the mono_class_from_name lookup.
19771         (ves_icall_get_parameter_info): ditto.
19772         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19773         method.
19774         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19775
19776 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19777
19778         * class.c: load also nested classes on class init.
19779         System.ValueType instance methods gets passed boxed
19780         values, unless methods in derived classed that get a pointer to the
19781         data.
19782         * icall.c: use better name parsing code in GetType().
19783         * image.c, image.h: add mono_image_loaded ().
19784         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19785         * reflection.c, reflection.h: added mono_reflection_parse_type().
19786
19787 2002-01-22  Veronica De Santis <veron78@interfree.it>
19788
19789         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19790         * threads.c : Added the implementation of internal calls for events
19791         * threads.h : Added prototypes of internal calls for events
19792         
19793 2002-01-21  Radek Doulik  <rodo@ximian.com>
19794
19795         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19796
19797 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19798
19799         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19800         (mono_class_value_size): use min_align
19801
19802 2002-01-20  Dick Porter  <dick@ximian.com>
19803
19804         * threads.h:
19805         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19806         so it compiles on w32.
19807
19808 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19809
19810         * metadata.c (mono_type_stack_size): impl.
19811
19812         * class.c (mono_class_get_field): impl. memberref token
19813
19814 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19815
19816         * icall.h : Added the internal calls mapping for CreateMutex_internal
19817                     and ReleaseMutex_internal.
19818         * threads.h : Added the prototype of mutexes internal calls.
19819         * threads.c : Added the implementations of mutexes internal calls.
19820
19821 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19822
19823         * metaparse.h: removed unused file.
19824         * reflection.c, reflection.h: added stream_data_align () function 
19825         to align data in streams and keep stream aligned. Add support for
19826         exception support in method headers.
19827
19828 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19829
19830         * unicode.c: make iconv_convert () return the number of bytess written
19831         in the output buffer.
19832
19833 2002-01-15  Dick Porter  <dick@ximian.com>
19834         * threads.c: Make the runtime's idea of infinite timeouts coincide
19835         with the class library's
19836
19837         Fix a particularly egregious bug in mono_thread_cleanup(). That
19838         code was so utterly bogus it must have been written on a Monday.
19839
19840 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19841
19842         * reflection.h: add subtypes field to TypeBuilder.
19843         * reflection.c: encode constants for literal fields.
19844         Handle subtypes. Fix user string token (and add a zero byte)
19845         at the end.
19846         
19847 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19848
19849         * class.c (mono_class_init): bug fix: assign slot numbers for
19850         abstract methods.
19851
19852 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19853
19854         * reflection.c: don't try to output a code RVA for abstract methods.
19855         Small fixes for method header format. Output parameter info to the
19856         ParamDef table. Save method overriding info to MethodImpl table.
19857         Fix property support. Allow typedef.extends to be a type in the
19858         building assembly.
19859         * verify.c: fix off-by-one error.
19860
19861 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19862
19863         * class.c: fix mono_class_from_mono_type () for szarray types.
19864         Remove unused cache check in mono_class_from_type_spec().
19865         * icall.c: *type_from_name () functions handle simple arrays and byref.
19866         * reflection.c: handle byref and szarray types. Handle methods without
19867         body (gets P/Invoke compilation working). Handle types and fields in
19868         get_token ().
19869         * reflection.h: add rank to MonoTypeInfo.
19870
19871 2002-01-10  Dick Porter  <dick@ximian.com>
19872
19873         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19874         internal calls
19875
19876 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19877
19878         * icall.c: initialize class in type_from_handle ().
19879         Loop also in parent classes for get_method ().
19880         * reflection.c: properly encode class and valuetype types.
19881         Start on encoding TypeBuilder types. Handle fieldrefs.
19882         Use correct length when registering a user string.
19883         Handle ConstructorBuilder and MonoMethod in get_token ().
19884         Make mono_type_get_object () aware of cached types.
19885         * object.c: back out change to mono_string_new ().
19886
19887 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19888         * object.c: mono_string_new should return a NULL when the string 
19889         passed in is NULL -- not try to deference it.
19890         
19891 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19892
19893         * icall.c: hack to make IsSubType work for TypeBuilders.
19894         * reflection.c: emit constructors before methods.
19895         Retrieve param names in mono_param_get_objects().
19896
19897 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19898
19899         * Makefile.am: fix list of headers and sources so automake 1.5
19900         doesn't complain. Removed \# at end of list.
19901
19902 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19903
19904         * reflection.c: get token for a method ref. Set return type of
19905         constructor to void.
19906         * loader.c: debug message.
19907         * class.c: typo fix.
19908
19909 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19910
19911         * icall.c: fix array init with rank > 1. FindMembers
19912         loops in parent class as well.
19913         * image.c: do not insert nested types in name cache.
19914         * reflection.c: warning fix.
19915         * reflection.h: add override method (for interface impl).
19916
19917 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19918
19919         * metadata.c: fix customattr decoding.
19920
19921 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19922
19923         * rawbuffer.cs: Added native Win32 implementation, avoids using
19924         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19925
19926 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19927
19928         * class.c: make the low-level routines handle the cache.
19929
19930 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19931
19932         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19933
19934 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19935
19936         * class.c: fix mono_array_element_size() for objects.
19937         * class.h, class.c: add properties to MonoClass and load them
19938         at init time.
19939         * icall.c: check with isinst() when assigning a value to an array
19940         instead of requiring the classes to match exactly.
19941         Implemented icall for System.Type::GetType().
19942         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19943         enums. Handle bindingflags when looking for methods and fields.
19944         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19945         and mono_metadata_methods_from_property().
19946         * reflection.h, reflection.c: added structures for propreties,
19947         parameters and enums. Implemented mono_property_get_object() and
19948         mono_param_get_objects().
19949
19950 2001-12-18  Dick Porter  <dick@ximian.com>
19951
19952         * file-io.c: Use mono_string_to_utf16() instead of
19953         mono_string_chars()
19954
19955         * object.c: Added mono_string_to_utf16(), which copies the non
19956         NULL-terminated MonoString into a new double-null-terminated
19957         buffer.
19958
19959 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
19960
19961         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
19962
19963 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
19964
19965         * file-io.c: raise exceptions if handle is invalid.
19966
19967 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
19968
19969         * assembly.c: yet another check for mscorlib.
19970         * class.c, class.h: load nesting info for classes.
19971         * icall.c: many new functions to support the Reflection classes.
19972         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
19973         * reflection.h, reflection.c: mono_image_create_token(),
19974         mono_assembly_get_object(), mono_type_get_object(),
19975         mono_method_get_object(), mono_field_get_object(): methods to return
19976         objects that parallel the C representation of assemblies, types,
19977         methods, fields.
19978
19979 2001-12-11  Dick Porter  <dick@ximian.com>
19980
19981         * icall.c:
19982         * file-io.c: Internal calls for file IO.
19983
19984 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
19985
19986         * tabledefs.h: missing FileAttributes.
19987         * verify.h, verify.c: use is_valid_string () to simplify and check for
19988         valid strings more correctly. Fix warnings and speeling.
19989         Check more tables: Filed, File, ModuleRef, StandAloneSig.
19990         Check code: branches, maxstack, method calls.
19991
19992 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
19993
19994         * object.c (mono_object_allocate): removed static, so that the jit
19995         can allocate value types.
19996
19997         * icall.c (ves_icall_System_DateTime_GetNow): impl.
19998
19999 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20000
20001         * class.c: init enum types right away and register the
20002         token->MonoClass map in mono_class_create_from_typedef ().
20003         * verify.h, verify.c: first cut of the verifier.
20004         * pedump.c: add --verify switch to verify metadata tables.
20005         * tabledefs.h: add some missing enums.
20006
20007 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20008
20009         * class.c (mono_install_runtime_class_init): impl.
20010         (mono_class_init): renamed mono_class_metadata_init to
20011         mono_class_init, also removed the metadata_inited flag
20012
20013         * object.c (mono_object_isinst): use faster algorithm
20014
20015 2001-11-30  Radek Doulik  <rodo@ximian.com>
20016
20017         * mono-endian.h: reverted last change
20018         added function prototypes
20019
20020         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20021         add mono-endian.c back
20022
20023         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20024         for unaligned access, I've mistaked it with endianess. I am
20025         sorry.
20026         (mono_read16): fix reverted endianess
20027         (mono_read64): ditto
20028         (mono_read32): ditto
20029
20030 2001-11-30  Dick Porter  <dick@ximian.com>
20031
20032         * exception.c: Implement mono_exception_from_name()
20033
20034 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20035
20036         * metadata.h, metadata.c: remove params_size and locals_size and their
20037         calculation from the metadata code: they are only usefult to the
20038         interp.
20039
20040 2001-11-29  Radek Doulik  <rodo@ximian.com>
20041
20042         * object.c (mono_ldstr): swap bytes here, it's probably not the
20043         best place, but works for me now, I'll redo it once I know mono
20044         better, also note that I add PROT_WRITE and don't reset back, also
20045         note that it's only affects big endians, so x86 should be OK
20046
20047         * mono-endian.h (read16): use just glib macros for both endians
20048
20049         * mono-endian.c: removed as glib macros are used in in
20050         mono-endian.h so we don't need to care about endianess for read
20051         macros as glib does that for us already
20052
20053 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20054
20055         * class.h, class.h: take minimum alignment into consideration so
20056         that the fields of a class remain aligned also when in an array.
20057
20058 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20059
20060         * loader.h, loader.c: add mono_method_get_param_names().
20061         * class.c: 0-init class fields.
20062
20063 2001-11-26  Dick Porter  <dick@ximian.com>
20064
20065         * icall.c:
20066         * threads-types.h:
20067         * threads.c: New file that handles System.Threading on all platforms
20068
20069         * object.c: 
20070         * object.h: Remove the synchronisation struct from MonoObject,
20071         replace it with a pointer that gets initialised on demand
20072
20073         * Makefile.am: Replace all the system-specific threading code with
20074         a single file that uses the new wrapper library
20075
20076 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20077
20078         * class.c, class.h: add mono_install_trampoline() so that the runtime
20079         can register a function to create a trampoline: removes the ugly
20080         requirement that a runtime needed to export arch_create_jit_trampoline.
20081         * object.h, object.c: added mono_install_handler() so that the runtime
20082         can install an handler for exceptions generated in C code (with
20083         mono_raise_exception()). Added C struct for System.Delegate.
20084         * pedump.c: removed arch_create_jit_trampoline.
20085         * reflection.c: some cleanups to allow registering user strings and
20086         later getting a token for methodrefs and fieldrefs before the assembly
20087         is built.
20088         * row-indexes.h: updates and fixes from the new ECMA specs.
20089
20090 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20091
20092         * class.h, class.c: add enum_basetype field to MonoClass.
20093         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20094         to get index in the constant table reated to a field, param or
20095         property.
20096         * reflection.h, reflection.c: handle constructors. Set public-key and
20097         version number of the built assembly to 0.
20098         * row-indexes.h: update from new ECMA spec.
20099
20100 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20101
20102         * class.h, class.c: add a max_interface_id to MonoClass.
20103         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20104         since it's used to do that. Added mono_type_type_from_obj().
20105         Make GetType() return NULL instead of segfaulting if the type was not
20106         found. Handle simple arrays in assQualifiedName.
20107         * object.h: add a struct to represent an Exception.
20108         * reflection.c: output call convention in method signature.
20109         Add code to support P/Invoke methods and fixed offsets for fields.
20110
20111 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20112
20113         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20114         the value.
20115         * icall.c: use mono_array_addr instead of array->vector: fixes the
20116         reflection image writing.
20117         * reflection.c: init call convention byte to 0 in method signature.
20118         Encode the property signature. Don't output property-related methods
20119         twice. Really process the properties for a type (don't cast a field to
20120         a property, my mom always told me that).
20121         Fix 64 bit issues in pointer alignment in a different and more
20122         readable way.
20123
20124 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20125
20126         * loader.h: Removed type class from MonoDefaults, added monotype
20127
20128         * loader.c: Loaded MonoType, removed loading of Type
20129
20130         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20131         and fills in System.Type._impl with a RuntimeTypeHandle rather
20132         than the actual MonoClass *
20133
20134         (ves_icall_type_from_handle): change from type_class to
20135         monotype_class
20136
20137         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20138         implemented
20139
20140         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20141         implemented
20142
20143         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20144
20145         (ves_icall_System_Reflection_Assembly_GetType): implemented
20146
20147         (ves_icall_System_MonoType_assQualifiedName): implemented
20148
20149         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20150
20151 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20152
20153         * assembly.c (mono_assembly_open): Implement a cache for the
20154         assemblies. 
20155
20156         (mono_assembly_close): only destroy the assembly when the last
20157         reference is gone.
20158         
20159 2001-11-09  Dick Porter  <dick@ximian.com>
20160
20161         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20162
20163 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20164
20165         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20166
20167 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20168
20169         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20170         from Martin Weindel.
20171         * object.h: add mono_string_chars ().
20172
20173 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20174
20175         * reflection.c (build_compressed_metadata): Eliminates warnings
20176         and uses 64-bit clean code.
20177
20178         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20179         (mono_type_equal): Change signature to eliminate warnings.
20180
20181 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20182
20183         * icall.c, loader.c: remove the internalcall array constructors.
20184         Changes to match the new MonoArray structure.
20185         * object.h, object.c: an array object doesn't allocate an extra
20186         vector. Add mono_array_new_full () to create jagged arrays easily.
20187
20188 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20189
20190         * metadata.h, metadata.c: add mono_metadata_field_info () to
20191         retreive all the info about a field from vairous tables.
20192         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20193         * class.h, class.c: augment MonoClassField with more info.
20194         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20195         policy and load a field's RVA if needed.
20196
20197 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20198
20199         * class.c (mono_class_metadata_init): create a trampoline for all
20200         virtual functions instead of actually compiling them.
20201
20202 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20203
20204         * class.h, class.c: include name in MonoClassField.
20205         * class.c: fix fundamental type of System.Object and System.String.
20206         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20207         tokens in ldtoken.
20208         * icall.c: remove internalcalls for the Reflection stuff that is now
20209         done in C# code.
20210         * loader.c: mono_field_from_memberref () implementation.
20211         * mono-endian.c: thinko (s/struct/union/g).
20212         * object.c, object.h: make the mono_string_* prototypes actually use
20213         MonoString instead of MonoObject.
20214         * reflection.c, reflection.h: updates for changes in the reflection
20215         code in corlib: we use C structures that map to the actual C# classes.
20216         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20217         fat method header if needed and use the info from the ILGenerator for
20218         methods. Handle fields in types. Misc fixes.
20219
20220 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20221
20222         * class.c (mono_class_metadata_init): bug fix: always allocate
20223         space for static class data
20224
20225 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20226
20227         * class.c (mono_compute_relative_numbering): use relative
20228         numbering to support fast runtime type checks.
20229
20230 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20231
20232         * class.c (mono_class_create_from_typeref): added debugging output
20233         to print class name when MonoDummy is returned instead of real class
20234
20235 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20236
20237         * class.c (mono_class_metadata_init): interface offset table now
20238         contains pointers into the vtable - this is more efficient for the jit
20239
20240 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20241
20242         * class.c (mono_class_metadata_init): use a temporary vtable (the
20243         old algorithm only worked for the interpreter, but not for the jit)
20244
20245 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20246
20247         * loader.c (method_from_memberref): use mono_class_get to get the
20248         class of an array instead of using System.Array directly.
20249         (mono_get_method): also add MEMBERREF methods to the method cache
20250         which usefull for arrays.
20251
20252 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20253
20254         * pedump.c (arch_compile_method): added to compute vtable entry
20255
20256         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20257         number of interfaces.
20258         
20259         * class.h: merged MonoArrayClass into MonoClass
20260
20261         * class.c (mono_class_create_from_typedef): compute the vtable size and
20262         allocate space to include the vtable inside MonoClass
20263         (mono_class_metadata_init): initialize the vtable
20264
20265 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20266
20267         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20268         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20269         * image.c: endian fixes by Laurent Rioux.
20270         * object.h, object.c: rename MonoStringObject to MonoString and
20271         MonoArrayObject to MonoArray. Change some function names to conform to
20272         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20273         guint16* as first argument, so don't use char*.
20274         Provide macros to do the interesting things on arrays in a portable way.
20275         * threads-pthread.c: updates for the API changes and #include <sched.h>
20276         (required for sched_yield()).
20277         * icall.c: updates for the API changes above.
20278         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20279         platforms that need them.
20280
20281 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20282
20283         * class.c: set the correct type for all the fundamental
20284         type when loading the class.
20285
20286 2001-10-05  Dick Porter  <dick@ximian.com>
20287
20288         * threads-pthread.c (pthread_mutex_timedlock): Simple
20289         compatibility version for C libraries that lack this call.
20290
20291 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20292
20293         * class.c: MonoTypes stored in MonoClass are stored as
20294         fundamental MonoTypes when the class represents a
20295         fundamental type (System.Int32, ...).
20296         The TypeHandle return by ldtoken is a MonoType*.
20297         * icall.c: ves_icall_get_data_chunk () write out all the
20298         PE/COFF stuff. Implement ves_icall_define_method (),
20299         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20300         * image.c: properly skip unknown streams.
20301         * loader.h, loader.c: add type_class to mono_defaults.
20302         * metadata.c, metadata.h: export compute_size () as
20303         mono_metadata_compute_size () with a better interface.
20304         Typo and C&P fixes.
20305         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20306         * reflection.c, reflection.h: many cleanups, fixes, output method
20307         signatures and headers, typedef and typeref info, compress the metadata
20308         tables, output all the heap streams, cli header etc.
20309         * row-indexes.h: typo fixes.
20310
20311 2001-10-04  Dick Porter  <dick@ximian.com>
20312
20313         * object.h: Add a synchronisation mutex struct to MonoObject
20314
20315         * object.c (mono_new_object): Initialise the object
20316         synchronisation mutexes
20317
20318         * icall.c: System.Threading.Monitor internal calls
20319         
20320         * threads-pthread.h:
20321         * threads-pthread.c: System.Threading.Monitor internal calls
20322
20323         * threads-types.h: New file, includes the system-specific thread
20324         structures
20325         
20326         * threads-pthread-types.h:
20327         * threads-pthread-types.c: New files, handle pthread-specific
20328         synchronisation types
20329
20330         * threads-dummy-types.h: 
20331         * threads-dummy-types.c: New files of dummy support for
20332         thread-specific types
20333
20334         * metadata.c:
20335         * image.c:
20336         * pedump.c: include mono-endian.h not endian.h
20337         
20338         * Makefile.am: More threads files.
20339         Name mono-endian.h not endian.h
20340
20341 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20342
20343         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20344         stuff and implement a few more bits.
20345         * icall.c: a field needs to be dereferenced twice. Do not use the same
20346         name for two variables in the same scope.
20347         * image.c, image.h: cleanups.
20348
20349 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20350
20351         * class.c (mono_class_metadata_init): bug fix: compute the right size
20352
20353 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20354
20355         * icall.c: implemented some of the Reflection internalcalls.
20356         * image.c, image.h: start writing out the PE/COFF image.
20357         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20358         that does the reverse than decode_blob_size ().
20359         * object.c: use mono_metadata_encode_value (). Move here
20360         temporary implementation of mono_string_to_utf8 ().
20361         * rawbuffer.c: make malloc_map static.
20362
20363 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20364
20365         * metadata.c: fix type comparison for arrays.
20366         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20367         Added a couple of new classes to monodefaults.
20368         * icall.c: added a couple of Reflection-related internalcalls.
20369         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20370         Added a byval_arg MonoType to MonoClass.
20371
20372 2001-09-28  Dick Porter  <dick@ximian.com>
20373
20374         * icall.c:
20375         * threads-pthread.h: 
20376         * threads-pthread.c: Implemented internal calls for
20377         LocalDataStoreSlot operations.  Applied mutexes around all shared
20378         data.  Reworked the thread creation and Start() operations to
20379         avoid a race condition.
20380         
20381         * threads-dummy.h:
20382         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20383
20384 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20385
20386         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20387
20388 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20389
20390         * class.c, loader.c: warn and return NULL instead of erroring out.
20391         * icall.c: added System.AppDomain::getCurDomain().
20392         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20393
20394 2001-09-25  Dick Porter  <dick@ximian.com>
20395
20396         * threads-pthread.h:
20397         * threads-pthread.c: Implemented timed thread joining and added
20398         System.Threading.Thread::Join_internal internal call
20399
20400         * icall.c: Added System.Threading.Thread::Join_internal internal call
20401
20402         * threads-dummy.h:
20403         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20404
20405 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20406
20407         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20408         mono_string_intern () to implement the semantics of the ldstr opcode
20409         and the interning of System.Strings.
20410         * icall.c: provide hooks to make String::IsIntern and String::Intern
20411         internalcalls.
20412
20413 2001-09-23  Dick Porter  <dick@ximian.com>
20414
20415         * threads-dummy.c: 
20416         * threads-dummy.h: New files of dummy threading routines
20417
20418         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20419         support code based on system specifics
20420
20421         Rename PTHREAD_LIBS to THREAD_LIBS
20422         
20423 2001-09-23  Dick Porter  <dick@ximian.com>
20424
20425         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20426         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20427         internal calls.
20428         (mono_thread_init): Set up a Thread object instance to return when
20429         the main thread calls Thread.CurrentThread
20430         (mono_thread_cleanup): Wait for all subthreads to exit
20431
20432         * icall.c: New internal calls for System.Threading.Thread::Sleep
20433         (including Schedule) and CurrentThread
20434
20435         * threads.h: New file, to insulate thread-specific stuff from the
20436         rest of the code
20437
20438 2001-09-21  Dick Porter  <dick@ximian.com>
20439
20440         * threads-pthread.h: 
20441         * threads-pthread.c: New file, for handling pthreads-style
20442         threading support.  Start() now starts a new thread and executes
20443         the ThreadStart delegate instance.
20444
20445         * icall.c: Added the internalcall for
20446         System.Threading.Thread::Start_internal
20447
20448         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20449
20450 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20451
20452         * loader.c: work around the different signatures for delegates
20453         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20454
20455 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20456
20457         * class.h, class.c: add mono_class_get_field_from_name ().
20458         * *: Fix C comments and other ANSI C issues.
20459
20460 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20461
20462         * endian.h, assembly.c: fix some endianness issues.
20463
20464 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20465
20466         * loader.h, load.c: add delegate_class to mono_defaults.
20467         Handle runtime provided methods in mono_get_method ().
20468
20469 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20470
20471         * loader.c (mono_get_method): use pinvoke for internal call
20472
20473         * icall.c: use pinvoke for internal call
20474
20475         * loader.c (method_from_memberref): set the method name
20476
20477 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20478
20479         * metadata.c: help the compiler generate better code for
20480         mono_class_from_mono_type ().
20481
20482 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20483
20484         * class.c (mono_class_metadata_init): delayed computing of the
20485         class size to mono_class_metadata_init ()
20486
20487 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20488
20489         * class.c, class.h: add an interfaces member to MonoClass.
20490         * image.c, image.h: add assembly_name field to MonoImage
20491         from the assembly table.
20492         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20493
20494 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20495
20496         * class.c: Handle Array in mono_class_from_mono_type ().
20497         * metadata.c, pedump.c: some endian fixes.
20498
20499 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20500
20501         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20502         * metadata.c: fix small problem introduced with the latest commit.
20503
20504 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20505
20506         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20507         We don't need a MonoMetadata pointer anymore to compare signatures in
20508         mono_metadata_signature_equal (), update callers.
20509         Reduced memory usage an number of allocations for MonoMethodHeader and
20510         MonoMethodSignature.
20511
20512 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20513
20514         * metadata.c: added compare for szarray.
20515
20516 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20517
20518         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20519         and add a couple more types to it and mono_defaults. Give an hint on
20520         classes that need implementing in our corlib and are referenced
20521         in mscorlib.
20522
20523 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20524
20525         * class.h, class.c: keep track if a class is also an Enum.
20526         * loader.c: Implement a couple more types for use in libffi
20527         marshalling. Gives better diagnostics when failing to dlopen
20528         a library. Set method->klass for P/Invoke methods, too.
20529
20530 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20531
20532         * class.c, class.h: add a MonoType this_arg to MonoClass that
20533         represents a pointer to an object of the class' type that
20534         can be used by the interpreter and later the type cache.
20535         Add best guess alignment info for valuetype objects.
20536
20537 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20538
20539         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20540         into MonoType: one less level of indirection and allocation and
20541         simplifies quite a bit of code. Added cache for MonoTypes that are
20542         used frequently, so that we don't need to allocate them all the time.
20543
20544 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20545
20546         * class.c (mono_class_create_from_typedef): System.Enum is also a
20547         value type, although it does not derive from System.ValueType
20548         (maybe a bug in the ms compiler?)
20549
20550         * metadata.c (mono_type_size): return the right size for value types
20551
20552         * loader.c (mono_get_method): only initialize method header if not abstract
20553
20554         * class.c (mono_class_from_mono_type): use mono_default values. 
20555
20556 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20557
20558         * *: use MonoClass pointers instead of <type_tokens>
20559         
20560         * class.h: new flag: metadata_inited.
20561
20562         * class.c (mono_class_metadata_init): impl.
20563         (mono_class_instance_size): impl.
20564         (mono_class_data_size): impl.
20565
20566 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20567
20568         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20569         MonoClass now has the name and name_space fields. 
20570         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20571         mono_get_method () takes and optional MonoClass as argument.
20572         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20573         instead that takes advantage of a map from class names to typedef
20574         tokens in MonoImage.
20575
20576 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20577
20578         * metadata.c: zero is not a valid alignment boundary.
20579         Merge MONO_TYPE_VOID in default decoding code.
20580
20581 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20582
20583         * image.h: merged MonoMetadata into MonoImage
20584
20585         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20586         identify the type of elements.
20587
20588 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20589
20590         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20591         * cil-coff.h: split MonoMSDOSHeader and add size info.
20592         * image.c: add some consistency checks.
20593         * metadata.c: fix row size computation: one programmer
20594         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20595         add explanation for the locator routine.
20596         Fix decoding of size in method header.
20597         
20598 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20599
20600         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20601         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20602         function from gnome-libs.  This uses the right path separator
20603         based on the OS, and also works around a bug in some systems where
20604         a double slash is not allowed. 
20605         (default_assembly_name_resolver): Use g_concat_dir_and_file
20606         (mono_assembly_open): ditto.
20607
20608 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20609
20610         * metadata.c (mono_metadata_signature_equal): impl.
20611
20612         * *: void is now a realy MonoType (instead of using NULL)
20613         
20614         * metadata.c (do_mono_metadata_parse_type): use
20615         mono_metadata_parse_type to parse void value.
20616
20617 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20618
20619         * metadata.c, metadata.h: in the signature and method header store
20620         only the space required for holding the loca vars and incoming arguments.
20621
20622 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20623
20624         * metadata.c (do_mono_metadata_parse_type): treat void like any
20625         other type (instead of assigning NULL);
20626
20627 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20628
20629         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20630
20631 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20632
20633         * image.c (do_mono_image_open): added a cache for arrays.
20634
20635 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20636
20637         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20638         decode a single column from a row in a metadata table and changes
20639         to take advantage of it in the typedef locator (gives a nice speed up).
20640         Store offset info for function params.
20641
20642 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20643
20644         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20645
20646 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20647
20648         * assembly.c: how could mono_assembly_close () had ever worked?
20649         * metadata.c, metadata.h: provide offset info for local vars.
20650         Implement mono_type_size () to take care of alignment as well
20651         as size (it was mono_field_type_size in cli/class.c before).
20652
20653 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20654
20655         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20656
20657         * assembly.h (CORLIB_NAME): set to corlib.dll
20658
20659         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20660
20661 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20662
20663         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20664         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20665         tokentype.h: massive namespace cleanup.
20666
20667 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20668
20669         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20670
20671 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20672
20673         * metadata.c (mono_metadata_free_type): added check for type !=
20674         NULL (void) before calling mono_metadata_free_type()
20675
20676 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20677
20678         * metadata.h, row_indexes.h: added header with enumerations to use
20679         to index in the columns from tables in metadata and to decode coded
20680         tokens: we should start using this instead of embedding magic numbers
20681         all over the code.
20682
20683 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20684
20685         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20686         Move metadata_t info from cli_image_info_t to MonoImage, where
20687         it's easily accessible. Changed all the uses accordingly.
20688         Added the method and class caches to MonoImage.
20689         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20690         and mono_metadata_decode_value () signature to be more consistent
20691         with the other parse functions (and simplify code). Taken advantage
20692         of zero-length array allocation with GCC. Removed reduntant (and
20693         wrong) MonoFieldType struct and use MonoParam instead. Changed
20694         mono_metadata_parse_field_type () to use common code for parsing.
20695         Added mono_metadata_typedef_from_field () and
20696         mono_metadata_typedef_from_method () to lookup a typedef index from a
20697         field or method token.
20698         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20699
20700 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20701
20702         * metadata.c (mono_metadata_parse_field_type): Implement. 
20703         (do_mono_metadata_parse_type): Split engine from
20704         mono_metadata_parse_type, so that we can create smaller structures
20705         for things that just have one pointer to the MonoType (look at
20706         the MonoFieldType)
20707
20708 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20709
20710         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20711         as Jan Gray found out, it is incorrect. 
20712
20713 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20714
20715         * assembly.c: Implement asssembly loading.  This loads an image
20716         and loads all the referenced assemblies.  Come to think of it, we
20717         could always do lazy loading of the assemblies. 
20718
20719         * image.c (mono_image_open): Keep loaded images in a hashtable.
20720
20721         * image.h (MonoImage): Add reference count.
20722
20723 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20724
20725         * assembly.c (mono_assembly_open): Keep track of the file name in
20726         case the assembly has no ASSEMBLY table.
20727
20728         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20729         from get.c here.
20730
20731 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20732
20733         * metadata.c, metadata.h: decode local vars in method header
20734         parse function. Change callers accordingly.
20735
20736 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20737
20738         * metadata.h, cil-coff.h: protect against multiple inclusion.
20739         Added some new structures to hold information decoded from metadata:
20740         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20741         and relevant decoding/free functions.
20742         * metadata.c: implement decoding functions. Add warning for out of bounds
20743         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20744         all the info about a method signature and invocation. Remove check on
20745         uninitialized local var in parse_mh() and fix memory leak.
20746
20747 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20748
20749         * metadata.h: More macros.
20750
20751         * tokentype.h: New file.
20752
20753 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20754
20755         * assembly.c: added a consistency check and initialize
20756         some structures with g_new0().
20757         * metadata.c: fixed a couple more bugs in table size computation
20758         and add other checks for out-of bound access to metadata.
20759
20760 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20761
20762         * metatada.c: fix bugs computing table sizes. Spew a
20763         warning when index in string heap is out of bounds.
20764
20765 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20766
20767         * metadata.h: Add a couple of macros to manipulate tokens. 
20768
20769 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20770
20771         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20772         cli_section_tables).
20773
20774 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20775
20776         * metadata.c (mono_metadata_user_string): New function, provides
20777         access to the UserString heap. 
20778
20779 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20780
20781         * metadata.c: Add inline documentation.
20782
20783 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20784
20785         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20786         files. 
20787
20788 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20789
20790         * typeattr.h: New file, TypeAttribute flags. 
20791
20792 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20793
20794         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20795         mono_assembly_ensure_section): Section loading code.
20796         (load_section_tables): Load the sections.
20797
20798         * mono/metadata/metadata.c (mono_metadata_locate_token,
20799         mono_metadata_locate): Functions to locate the information
20800         definition given a token or a table and an index.
20801         (mono_metadata_compute_table_bases): New.
20802         (compute_size): New function to compute the sizes of the various
20803         tables.
20804
20805         * mono/metadata/metadata.h: Finish listing the different index
20806         types. 
20807
20808         * mono/metadata/pedump.c: Improve to dump new information.
20809
20810 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20811
20812         * mono/metadata/metadata.c: Entered all the tables matching
20813         Beta2. 
20814
20815         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20816
20817
20818