Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
3
4         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
5
6 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
7         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
8         giving precedence to the methods with a fully qualified name
9         (InterfaceName.MethodName) when building the interface sections
10         of the vtable.
11
12 2007-02-16  Dick Porter  <dick@ximian.com>
13
14         * threadpool.c (append_job): Fix fast-path array handling, so it's
15         less likely the array will grow exponentially when the load is
16         heavy.
17
18 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
19
20         * metadata-internals.h, loader.c: fix dllmap lookup order
21         for non-function maps, too, and prepare for fallback code.
22
23 2007-02-12  Robert Jordan  <robertj@gmx.net>
24
25         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
26         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
27         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
28         GlobalFree. Fixes a part of bug #77075.
29
30 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
31
32         * loader.c: implemented typedef parent in field memberref.
33
34 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
35
36         * marshal.c: Fix warnings and remember to call Release on
37         IUnknown of RCW.
38         
39         Code is contributed under MIT/X11 license.
40
41 2007-02-10  Miguel de Icaza  <miguel@novell.com>
42
43         * class-internals.h: Add MonoHandleRef definition, and
44         handleref_class to mono_defaults. 
45
46         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
47         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
48
49         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
50         (do nothing on this stage)
51         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
52         (emit_marshal_handleref): New method, used for argument handling
53         of HandleRefs. 
54
55 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
56
57         * class.c (mono_class_setup_parent): Lazily init com types.
58         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
59         init com types.
60         * object.c (mono_remote_class_vtable): Lazily init com types.
61         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
62         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
63         * domain-internals.h: Expose mono_init_com_types.
64         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
65         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
66         Add support for COM Callable Wrapper marshalling.
67         * marshal.h: Add icall definitions.
68         * gc.c: Handle freeing of CCWs in finalizer code.
69         
70         Code is contributed under MIT/X11 license.
71
72 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
73
74         * reflection.c: changed all the signature encoding code to use
75         a variable-sized buffer.
76
77 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
78
79         * marshal.c: locking fixes: never take the loader lock
80         or other runtime locks when holding the marshal lock
81         (fixes bug#80664).
82
83 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
84
85         * marshal.c: make the delegate function pointer mapping
86         work for the moving GC.
87
88 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
89
90         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
91         for bug #80618.
92
93 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
94
95         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
96         gmodule.
97
98 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
99
100         * threadpool.c: made the code moving-GC safe.
101
102 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
103
104         * assembly.c, boehm-gc.c, class-internals.h, class.c,
105         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
106         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
107         warning cleanup.
108         * reflection.c: warning cleanup, some threading and moving GC fixes.
109
110 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
111
112         * class.c, loader.c: create the needed Set/Get/Address array methods
113         as well as the .ctors in mono_class_init (), fixes bug #80567.
114
115 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
116
117         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
118         we doesn't decrease its alignment. Should fix the sparc build.
119
120 2007-01-24  Dick Porter  <dick@ximian.com>
121
122         * socket-io.c
123         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
124         Create the returned object if we need to ignore an unsupported
125         socket option.  Fixes a segfault reported by Atsushi.
126
127 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
128
129         * class.c, object.c: restrict GC-tracked fields to
130         UIntPtr fields used inside corlib, so we provide better
131         type info to the GC and also allow broken packing as in
132         bug #80580.
133
134 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
135
136         * sgen-gc.c: removed duplicated function.
137
138 2007-01-19  Miguel de Icaza  <miguel@novell.com>
139
140         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
141         value that means that the value is not supported, but that we
142         should not return a failure, but instead report this as a
143         successful operation.
144
145 2007-01-19  Raja R Harinath  <rharinath@novell.com>
146
147         Fix tests/bug79956.2.il
148         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
149         (mono_generic_class_get_class): If the generic definition in an
150         enum, copy over other fields related to it.
151
152 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
153
154         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
155         genericinst enums (bug #79215).
156
157 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
158         * class.c: Fix bug 80307.
159
160 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
161
162         * image.c: if the file table is not present, try to load
163         all the modules, since we don't have info about them
164         having or not metadata (bug #80517).
165         * assembly.c: allow mono_assembly_load_references () to
166         work for netmodules.
167
168 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
169
170         * image.c, metadata-internals.h, object.c: execute module
171         cctors when running on the 2 runtime if present (bug #80487).
172
173 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
174
175         * icall.c: optimized InitializeArray() on bigendian.
176
177 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
178
179         * icall.c: fix for the broken ARM FPA double format.
180
181 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
182
183         * icall.c: handle endian issues for r4 and r8 types, too, in
184         the InitializeArray() icall.
185
186 2007-01-15  Miguel de Icaza  <miguel@novell.com>
187
188         * loader.c (mono_loader_error_prepare_exception): Clear the error
189         once we have extracted the information from it, do this before we
190         call into the JIT's class loading mechanisms.
191
192         * object.c (mono_class_create_runtime_vtable): Do not clear the
193         loader error before calling mono_class_get_exception_for_failure
194         as the loader error is needed inside
195         mono_class_get_exception_for_failure to throw the error (thinko).
196
197         Fixes #80521
198         
199 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
200
201         * reflection.c: align fields rva data so it's faster to load at
202         runtime.
203
204 2007-01-12  Raja R Harinath  <rharinath@novell.com>
205
206         Prepare to simplify GenericMethod handling.
207         * class-internals.h (mono_method_get_context): New accessor function.
208         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
209         rather than directly accessing '->context' field.
210
211         * class-internals.h (_MonoGenericParam.method): Move ...
212         (_MonoGenericContainer): ... here.  Add into union with klass field.
213         * class.c, icall.c, loader.c, metadata.c, reflection.c:
214         Update to changes.
215
216 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
217
218         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
219         the wrapper type enum and reduce relocations.
220
221 2007-01-12  Raja R Harinath  <rharinath@novell.com>
222
223         * reflection.c (inflate_mono_method): Reuse method instantiation
224         from the generic method, if available.
225
226 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
227
228         * marshal.c (emit_marshal_variant): Fix conv_arg
229         type in last commit, based on whether parameter is byref.
230         
231 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
232
233         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
234         marshalling.
235         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
236         MONO_TYPE_OBJECT back for VARIANT support.
237
238 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
239
240         * marshal.c, marshal.h, icall-def.h: Implement 
241         Marshal.ReAllocCoTaskMem.
242
243 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
244
245         * marshal.c: memory retention fixes: use the proper
246         image cache for runtime_invoke method lookups.
247
248 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
249
250         * mempool.c: added code to help debug mempool allocations.
251
252 2007-01-11  Dick Porter  <dick@ximian.com>
253
254         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
255         support (experimenting with faking it with IP_MTU_DISCOVER for
256         systems that don't have IP_DONTFRAGMENT.)
257         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
258         icall.
259
260         * icall-def.h: new System.Net.Sockets.Disconnect icall.
261
262         * socket-io.h: Add new fields to MonoSocketAsyncResult
263         corresponding to the new ones in Socket.cs.
264
265 2007-01-11  Raja R Harinath  <rharinath@novell.com>
266
267         Fix IronPython regression mentioned in #80249
268         * metadata.c (do_mono_metadata_parse_generic_class): Clear
269         'cached_context' field, since it may have been initialized as a
270         side-effect of metadata parsing.
271
272         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
273         (_MonoGenericClass.cached_class): Move here and rename from lone
274         remaining field of ...
275         (_MonoInflatedGenericClass): ... this.  Remove.
276         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
277         to changes.
278
279         Fix mcs/tests/test-128.cs regression.
280         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
281         2007-01-10 change below.
282         [MONO_TYPE_OBJECT]: Recurse into array case.
283
284 2007-01-11  Raja R Harinath  <harinath@gmail.com>
285
286         * class-internals.h (mono_get_inflated_generic_class): Remove.
287         * class.c (mono_get_inflated_generic_class): Remove.
288         (mono_generic_class_get_class): Rename from
289         mono_class_create_generic.
290         (mono_class_from_mono_type) [GENERICINST]: Use it.
291         * reflection.c, metadata.c: Update to changes.  Use
292         'mono_class_from_mono_type'.
293
294 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
295
296         * reflection.c: use passed type when encoding an array element
297         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
298
299 2007-01-09  Robert Jordan  <robertj@gmx.net>
300
301         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
302         result arguments (someDelegate.EndInvoke (unrelatedAres)).
303         Fixes bug #80392.
304
305 2007-01-09  Raja R Harinath  <rharinath@novell.com>
306
307         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
308
309         * object.c (set_value): Avoid aliasing between type->data.klass
310         and type->data.generic_class.
311
312         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
313
314 2007-01-08  Raja R Harinath  <rharinath@novell.com>
315
316         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
317         between type->data.klass and type->data.generic_class.
318
319 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
320
321         * marshal.c: In MS.NET, StringBuilder objects are not copied by
322         value in out parameters.
323
324 2007-01-08  Raja R Harinath  <rharinath@novell.com>
325
326         Simplify invariant for MonoGenericClass::klass field.
327         * class.c (mono_class_create_generic): Verify 'klass' is null.
328         * metadata.c (do_mono_metadata_parse_generic_class): Don't
329         initialize 'klass' field.
330
331 2007-01-05  Raja R Harinath  <rharinath@novell.com>
332
333         Ongoing work to avoid redundant data and simplify invariants.
334         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
335         'generic_class', and change type to a GenericInst.
336         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
337         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
338
339 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
340
341         * class.c : skip io-layer under PLATFORM_WIN32.
342
343 2007-01-03  Tor Lillqvist  <tml@novell.com>
344
345         Fix #80305: In a bundled executable, look in the bundled exe
346         assembly to determine the runtime version. Add the possibility to
347         bundle also the machine.config file.
348         
349         * assembly.c (mono_assembly_open_from_bundle): Make
350         non-static. Allow being called even if we have no bundled
351         assemblies, and return NULL right away in that case.
352
353         * domain-internals.h: Declare mono_assembly_open_from_bundle()
354         here.
355
356         * domain.c (app_config_parse): Take an assembly exe file name as
357         parameter instead of a config file name. Check for a bundled
358         config file for that assembly by calling
359         mono_config_string_for_assembly_file() (see below) before looking
360         for one in the file system.
361         (get_runtimes_from_exe): Corrsponding change to call of
362         app_config_parse().
363         (get_runtimes_from_exe): Check for bundled assembly exe file first
364         by calling mono_assembly_open_from_bundle(). If no bundled
365         assembly exe file is found, call mono_image_open() as before to
366         look it up in the file system.
367
368         * mono-config.c: Add variable bundled_machinec_onfig.
369         (mono_config_string_for_assembly_file): New function.
370         (mono_config_for_assembly): Move code snippet that looks for a
371         bundled assembly .config file into the above new function. Call
372         it.
373         (mono_register_machine_config, mono_get_machine_config): New
374         functions to set and retrieve
375
376         * assembly.h: Declare mono_register_machine_config().
377
378         * mono-config.h: Declare mono_get_machine_config() and
379         mono_config_string_for_assembly_file().
380
381         * icall.c: No declaration of environ necessary on Win32. It is
382         declared (as a macro expanding to a function call) in stdlib.h.
383         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
384         New internal mono function. Returns the value of
385         mono_get_machine_config() as a Mono string.
386
387         * icall-def.h: Add get_bundled_machine_config().
388
389 2007-01-04  Raja R Harinath  <rharinath@novell.com>
390
391         Remove redundant field
392         * class-internals.h (_MonoGenericContext.container): Remove field.
393         * loader.c (mono_method_get_signature_full): Don't parse a
394         "container" for a signature parse when the signature is inflated
395         immediately.
396         (method_from_methodspec): Likewise, for a generic_inst.
397         * class.c, metadata.c, reflection.c: Update to changes.
398
399 2006-01-04  Raja R Harinath  <rharinath@novell.com>
400
401         * class-internals.h (_MonoGenericClass): Rename 'context' field to
402         'cached_context', and change semantics -- it starts off NULL, and
403         is initialized on demand.
404         * class.c (mono_generic_class_get_context): New accessor to
405         replace 'context' field accesses.
406         (mono_class_get_context): New helper.
407         (*): Update to changes.
408         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
409
410 2007-01-03  Miguel de Icaza  <miguel@novell.com>
411
412         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
413         before the memcpy.   Fixes Marshal2 regression.
414
415 2007-01-02  Jb Evain  <jbevain@gmail.com>
416
417         * blob.h: add a MONO_TYPE_ENUM definition
418         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
419         fix the encoding of arrays of enums in custom attributes.
420
421         Fixes #79666.
422
423 2007-01-01  Miguel de Icaza  <miguel@novell.com>
424
425         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
426         string is null terminated, but only cut the string short if it
427         overflows the buffer.   
428         
429         (mono_string_to_byvalstr): Also fix this routine.   The code here
430         was not properly terminating a string (it was only terminated
431         because of the previous catch-all memset). 
432
433         I left the memset, because I do not know if applications expect
434         the runtime to clear this region. 
435
436         Fixes #79944.
437
438         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
439         Clear the error before returning to unmanaged code to prevent the
440         runtime from being confused later on (fixes  80420).
441         (ves_icall_type_from_name): Always call mono_loader_clear_error
442         after parsing a type that could have failed.
443         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
444
445         * loader.c (mono_loader_clear_error): Fix indentation.
446
447 2006-12-28  Martin Baulig  <martin@ximian.com>
448
449         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
450
451 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
452
453         * reflection.c: patch from Rolf Bjarne Kvinge to fix
454         getting a token for an EnumBuilder.
455
456 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
457
458         * reflection.c: be more careful in case resource generation
459         fails to create the data array.
460
461 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
462
463         * sgen-gc.c: write barrier for clone and fix unregister handles.
464
465 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
466
467         * reflection.c: some fixes needed in the generics code for the moving GC.
468
469 2006-12-22  Robert Jordan  <robertj@gmx.net>
470
471         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
472         account. Fixes bug #80299.
473
474 2006-12-21  Raja R Harinath  <rharinath@novell.com>
475
476         Fix WaitHandle usage in delegates.
477         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
478         * object.c (mono_wait_handle_new): Use the property set method to
479         initialize the handle.
480         (mono_wait_handle_get_handle): New.
481         * threadpool.c (mono_async_invoke): Use it.
482         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
483         Likewise.
484         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
485
486 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
487
488         * marshal.c (emit_marshal): Call emit_marshal_variant and
489         emit_marshal_com_interface when applicable.
490         (emit_marshal_variant, emit_marshal_com_interface): Add
491         methods for this case and remove if's from emit_marshal_object.
492         
493 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
494
495         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
496
497 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
498
499         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
500         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
501         and GlobalFree on Windows. Remove FIXME.
502
503 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
504
505         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
506         implementation for managed objects.
507
508 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
509
510         * object.c: implemented code to be used for checking
511         that no reference field overlaps with non-references.
512
513 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
514
515         * threadpool.c: fix queue code to be compatible with the
516         moving GC.
517
518 2006-12-18  Miguel de Icaza  <miguel@novell.com>
519
520         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
521         in structures by throwing ArgumentNullException.
522
523         (emit_marshal_safehandle): Also when they are null parameters.
524
525         (emit_marshal_safehandle): Add support for ref
526         SafeHandles parameters
527
528 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
529
530         * profiler.c: updated to use the mono-dl API instead of
531         gmodule.
532
533 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
534
535         * profiler.c: updated to use the mono-dl dynamic loading
536         API instead of gmodule.
537
538 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
539
540         * profiler.c: use readlink, older versions of glib don't have
541         g_file_read_link ().
542
543 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
544
545         * profiler.c: try to detect the path to mono if libc fails to provide
546         a useful name (bug #80286).
547
548 2006-12-16  Raja R Harinath  <rharinath@novell.com>
549
550         Fix #80242
551         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
552         instance, use the generic type definition instead.
553         (ves_icall_Type_GetNestedTypes): Likewise.
554         * class.c (mono_class_create_generic): Always set the
555         nested_classes of a generic instance to NULL, even if the generic
556         type definition has nested types.
557
558 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
559
560         * marshal.c (mono_string_from_bstr): Revert previous Windows change
561         and fix on Linux.
562         
563 2006-12-15  Miguel de Icaza  <miguel@novell.com>
564
565         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
566         my arguments were in the wrong order.   I also fixed the Windows
567         version which seems to have had the same issue.
568
569         (mono_free_bstr): On Unix, this is g_free.
570         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
571         conversions (for the tests in corlib to pass).
572
573 2006-12-14  Miguel de Icaza  <miguel@novell.com>
574
575         * marshal.c (emit_ptr_to_object_conv): For now, ignore
576         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
577         exception if a ref SafeHandle in a struct has changed).
578         
579         (emit_struct_conv): Do not perform layout checks for classes
580         derived from SafeHandle, as those are specially handled. 
581
582         (emit_object_to_ptr_conv): Add support for
583         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
584
585         (emit_marshal_safehandle): Implement conversion of return values
586         of safehandles (MARSHAL_ACTION_CONV_RESULT).
587         
588         * threads.c: WaitHandle now is compiled with two different handles
589         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
590         for 2.0.
591         
592         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
593         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
594         these routines to cope with both kinds of fields.
595
596 2006-12-12  Miguel de Icaza  <miguel@novell.com>
597
598         * metadata.c (mono_type_to_unmanaged): Handle the case where
599         type->data.klass is a SafeHandle, and in that case, return the
600         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
601         MONO_MARSHAL_CONV_SAFEHANDLE. 
602
603 2006-12-11  Miguel de Icaza  <miguel@novell.com>
604
605         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
606         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
607         calling emit_marshal_object.
608
609         (emit_marshal_safehandle): Implement marshalling of
610         SafeHandle parameters (no ref support yet).
611
612         (MarshalAction): Document the defines as I implement
613         them for SafeHandle.
614
615         (emit_marshal_object): indentation police.
616
617         * class-internals.h: Define MonoSafeHandle.
618         Add safehandle_class to MonoDefaults type.
619
620         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
621         list of classes to check for fields. 
622
623         * domain.c (mono_init_internal): Add SafeHandle to the list of
624         mono_defaults loaded.
625
626 2006-12-15  Raja R Harinath  <rharinath@novell.com>
627
628         Fix #80253
629         * reflection.c (mono_reflection_bind_generic_parameters): If the
630         generic type definition is a type builder, ensure that it is fully
631         initialized before instantiating it.  Kill some dead code.
632
633 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
634
635         * object.c: clear the loader_error () before loading
636         more metadata stuff (bug #80258).
637
638 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
639
640         * icall.c, icall-defs.h: type modifiers icalls for
641         parameters and properties.
642
643 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
644
645         * object.c, icall.c: fixed warnings.
646
647 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
648
649         * marshal.c: fixed a couple of leaks and coding style in a few places.
650
651 2006-12-08  Dick Porter  <dick@ximian.com>
652
653         * process.c: Cope with NULL ProcessStartInfo arguments on windows
654         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
655         80173.
656
657 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
658
659         * process.c: ProcessStartInfo may have only filename set and
660         arguments can be NULL.
661
662 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
663
664         * icall.c: fix leak found by Robert Jordan.
665
666 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
667
668         * marshal.c, marshal.h: generate managed method to access an element
669         of a multi-dimensional array.
670
671 2006-11-30  Paolo Molaro (lupus@ximian.com)
672
673         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
674
675 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
676
677         * icall.c: back out GetFields () fix until the serialization code is
678         fixed to not depend on the incorrect behaviour.
679
680 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
681
682         * profiler.c: provide defaults if none are set.
683
684 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
685
686         * Makefile.am, attrdefs.h: new public header file with
687         constants for attributes for use by embedders.
688
689 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
690
691         * icall.c: GetFields () fix for bug #80064.
692
693 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
694
695         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
696         removed long unused icalls.
697
698 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
699   
700         * marshal.c: 
701                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
702                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
703                 can be generated without a delegate class.
704                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
705         
706         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
707
708 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
709
710         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
711         #80069.
712
713 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
714
715         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
716         icall-def.h: added icalls needed by System.GC.
717
718 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
719
720         * loader.c: ensure the class in catch clauses is handled
721         correctly for generics methods (fixes bug#79980).
722
723 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
724
725         * monitor.h, monitor.c: added mono_locks_dump () function
726         to help debug deadlocks involving managed locks.
727
728 2006-11-13  Dick Porter  <dick@ximian.com>
729
730         * file-io.c (get_file_attributes): If the file is a symlink try
731         and get the stat data for the target, but also add the
732         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
733         the specs for the windows symlink support, but will probably have
734         to be reworked when I have test data from a vista machine.  Fixes
735         bug 79887.
736
737 2006-11-13  Dick Porter  <dick@ximian.com>
738
739         * gc.c (mono_domain_finalize): 
740         * marshal.c (mono_delegate_begin_invoke): 
741         * threadpool.c (socket_io_init, mono_thread_pool_init)
742         (mono_thread_pool_finish): 
743         * monitor.c (mono_monitor_try_enter_internal): 
744         * threads.c (mono_thread_resume, mono_thread_init)
745         (mono_thread_suspend_all_other_threads)
746         (mono_thread_execute_interruption): 
747         * appdomain.c (mono_domain_unload): Check for NULL error returns
748         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
749         75733.
750
751 2006-11-11  Miguel de Icaza  <miguel@novell.com>
752
753         * process.c
754         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
755         Only close the handle if the value of the handle is not
756         INVALID_HANDLE_VALUE.  This just makes the process a bit more
757         robust.
758
759         Improvement for #75733, so that we do not run into this problem. 
760
761         
762         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
763         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
764         internal variables.  Fixes #79462 
765         
766
767 2006-11-09  Dick Porter  <dick@ximian.com>
768
769         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
770         Use poll() not select().  Fixes bug 79397.
771
772 2006-11-09  Raja R Harinath  <rharinath@novell.com>
773
774         Fix #79872
775         * assembly.c (mono_assembly_load_from_full): Check that the given
776         image has an assembly manifest.
777
778 2006-11-09  Ankit Jain  <jankit@novell.com>
779
780         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
781         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
782         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
783
784 2006-11-07  Dick Porter  <dick@ximian.com>
785
786         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
787         Put the old resolver behaviour back for pre-2.0 profiles.
788
789 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
790
791         * threadpool.c: precise GC and locking fixes.
792
793 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
794
795         * class.c: don't load types that have an explicit unaligned
796         managed reference. Provide better info in the TypeLoad exception.
797         Part of the fix for bug #79744.
798         * object.c: use the correct check for class type load issues.
799
800 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
801
802         * class.c: enforce alignment of fields with managed references
803         even when Pack=1 is forced by the user (bug #77788).
804
805 2006-11-03  Dick Porter  <dick@ximian.com>
806
807         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
808         If the address reverse lookup fails, return it as the hostname
809         anyway.  Fixes bug 79721.
810
811 2006-11-03  Dick Porter  <dick@ximian.com>
812
813         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
814         Fix build on Windows.
815
816 2006-11-02  Dick Porter  <dick@ximian.com>
817
818         * icall-def.h: 
819         * object-internals.h: 
820         * exception.c (mono_get_exception_thread_interrupted): 
821         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
822         Fixes bug 74525.
823
824         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
825         Check for pending Thread.Interrupt.
826
827 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
828         * loader.c: Fixed bug 79684.
829
830 2006-10-27  Dick Porter  <dick@ximian.com>
831
832         * file-io.c (get_file_attributes): Force symlinks to directories
833         to be returned as a regular file.  Fixes bug 79733.
834 2006-10-26  Dick Porter  <dick@ximian.com>
835
836         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
837         CreateFile to open a directory then we need to set the
838         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
839
840 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
841
842         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
843         friends.
844
845 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
846
847         * sgengc.c: small cleanup of timer code.
848
849 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
850
851         * sgen-gc.c: fix some warnings and start adding support for
852         complete object removal on domain unload.
853
854 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
855
856         * assembly.c: build_assembly_name should not consider a version
857         number without build or revision number invalid. Fixes bug #79715.
858
859 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
860
861         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
862         call kernel32 function OutputDebugString directly.
863         
864         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
865         
866 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
867
868         * reflection.c: small cleanup, using a function to insert a MonoString
869         in the string heap.
870
871 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
872
873         * reflection.c: moving GC fixes.
874
875 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
876
877         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
878         all the objects with finalizers belonging to an unloading appdomain.
879
880 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
881
882         * sgen-gc.c: added ability to allocate even when the nursery is fully
883         pinned and fixed a couple of bugs.
884
885 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
886
887         * threads.h: Revert the last change for now.
888
889         * threads.h (mono_thread_get_pending_exception): Rename this to
890         mono_thread_get_undeniable_exception ().
891
892 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
893
894         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
895         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
896         when fname does not refer to valid assembly. This result in a more
897         meaningful error message.
898         * exception.c: added mono_get_exception_bad_image_format2 which 
899         constructs a BadImageFormatException using the ctor taking a custom
900         message and the file name. Passing in a NULL msg results in a default
901         message.
902         * exception.h: define mono_get_exception_bad_image_format2 function.
903         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
904         when file name pointed to an invalid IL image. Use 
905         mono_get_exception_file_not_found2 to construct FileNotFoundException,
906         as this results in a more meaningful error message.
907
908 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
909
910         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
911         #79465.
912
913 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
914
915         * metadata.c (mono_type_size): Change the align parameter to guint32 for
916         consistency with the other _size functions.
917         (mono_type_stack_size): Ditto.
918
919         * class.c object.c icall.c: Fix warnings caused by the above change.
920
921         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
922
923         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
924
925         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
926
927 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
928
929         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
930         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
931         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
932         threadpool.h, threads-types.h: mark more internal functions.
933
934 2006-10-11  Dick Porter  <dick@ximian.com>
935
936         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
937         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
938         reproduce the bug even before applying the fix.)
939
940 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
941
942         * reflection.c: allow retrieving attributes for arguments in generic
943         methods (bug #79241).
944
945 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
946
947         * debug-mono-symfile.c: properly check fopen () result (found by
948         coverity).
949
950 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
951
952         * reflection.c: make error message clearer and fixed two
953         issuelets found by Coverity.
954
955 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
956
957         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
958
959 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
960
961         * object-internals.h, gc-internal.h, profiler-private.h:
962         mark internal functions.
963
964 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
965
966         * reflection.c: put data in the text section.
967         * icall.c: recognize more types in type_from_typename ().
968         * process.c, marshal.c: added some GC FIXMEs.
969
970 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
971
972         * loader.c: check for NULL before initializing.
973
974 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
975
976         * gc.c (finalizer_thread): Use a non-alertable wait here.
977
978         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
979         until the correct solution is found.
980
981 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
982
983         * reflection.c (mono_module_get_object): Avoid an assert when operating on
984         modules with no metadata. Fixes #79596.
985
986         * image.c (load_metadata_ptrs): Put back the error message when
987         the #- heap is encountered since the support is not complete yet.
988
989 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
990
991         * gc.c: do not allow the user to SuppressFinalize () a
992         delegate because it would leak the trampoline if present.
993
994 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
995
996         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
997         PropertyPtr table.
998
999 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1000
1001         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1002
1003         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1004
1005         * row-indexes.h: Add definitions for *Ptr tables.
1006
1007         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1008
1009         * metadata.c (mono_metadata_translate_token_index): New helper function to
1010         translate table indexes used in uncompressed metadata.
1011         (mono_metadata_decode_table_row): Ditto.
1012         (mono_metadata_decode_table_row_col): Ditto.
1013
1014         * metadata.c: Add table schema for *Ptr tables.
1015
1016         * class.c loader.c: Use the new helper function to access the affected metadata
1017         tables.
1018         
1019         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1020         #38532.
1021         
1022 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1023
1024         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1025         sequences which can be unbounded in size. Fixes #79583.
1026
1027 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1028
1029         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1030         static initialization.
1031
1032         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1033
1034         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1035
1036         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1037
1038         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1039         ctor fails, i.e. throw the same exception on subsequent accesses.
1040         
1041 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1042
1043         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1044         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1045         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1046         Handle marshalling of interfaces and VARIANTs contained in structs.
1047         
1048         Code is contributed under MIT/X11 license.
1049         
1050 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1051
1052         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1053         
1054         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1055         mempool.
1056
1057 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1058
1059         * console-io.c: ignore previous SIGINT handler.
1060
1061 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1062
1063         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1064         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1065         #79460, #79461, #79485.
1066
1067         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1068
1069         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1070         #79217.
1071
1072 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1073
1074         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1075         could be generated from it.
1076
1077 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1078
1079         * rand.c: fix read loop to correctly handle EINTR.
1080
1081 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1082
1083         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1084         internal calls are defined to keep methods closer to the declaring
1085         type and allow a significant reduction in runtime relocations and
1086         memory usage.
1087
1088 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1089
1090         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1091         exception message to have FileNotFoundException use the default
1092         assembly load error message. Fixes bug #79426.
1093         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1094
1095 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1096
1097         * threadpool.c: (start_thread_or_queue) use the root domain when
1098         creating the thread instead of the async object one.
1099
1100 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1101
1102         * class.c, object.c, class-internals.h, reflection.c:
1103         for arrays, store element_size inside MonoClass (speedup
1104         for array object creation).
1105
1106 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1107
1108         * icall.c: fixed CodeBase to use the file name and not the module
1109         name (bug #79365).
1110
1111 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1112
1113         * mono-debug.c, mono-debug.h: export find_method as
1114         mono_debug_find_method ().
1115
1116 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1117
1118         * debug-helpers.c, class-internals.h: added a few functions useful
1119         when debugging under gdb.
1120
1121 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1122
1123         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1124         characters that need special handling.
1125
1126 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1127
1128         * mono-config.c: make the os/cpu specification more flexible,
1129         allowing lists and negation.
1130
1131 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1132
1133         * marshal.c: COM Interop fixes. Handle case where method->klass.
1134         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1135         calling convention on non-windows platforms. This is for
1136         compatibility with XPCOM and MainWin COM.
1137         
1138         Code is contributed under MIT/X11 license.
1139         
1140
1141 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1142
1143         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1144         correctly. Fixes #79217.
1145
1146         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1147
1148 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1149
1150         * mono-config.c: allow both an os and cpu attribute for dllmap
1151         and dllentry elemnets to enable a single config file to be used
1152         for multiple architectures.
1153
1154 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1155
1156         * loader.c: MonoLoaderError was cleared too soon on load failure.
1157         Fixes bug #79424.
1158
1159 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1160
1161         * icall.c: use the defining class vtable when accessing a
1162         static field, not a pobblibly derived class.
1163
1164 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1165
1166         * icall.c string-icalls.c: Remove references to unicode.h.
1167
1168         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1169
1170         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1171
1172         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1173         indicating the image where custom marshaller types should be looked up.
1174         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1175         custom marshallers, instead of corlib. Fixes #79425.
1176
1177 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1178
1179         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1180
1181 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1182
1183         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1184         Implement Environment.ProcessorCount.
1185         
1186         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1187         Implement Environment.ProcessorCount.
1188         
1189         * icall.c: 
1190         Add Environment.ProcessorCount icall.
1191         
1192         Patch by Jason McFall.
1193
1194 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1195
1196         * assembly.c: don't append .exe/.dll when the filename already contains
1197         one of those extensions.
1198
1199 2006-09-12  Martin Baulig  <martin@ximian.com>
1200
1201         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1202         to array interfaces.
1203
1204 2006-09-11  Martin Baulig  <martin@ximian.com>
1205
1206         * reflection.c (mono_image_build_metadata): Create the
1207         MethodImpl's after emitting all types and methods, so we don't
1208         need another fixup pass for them.
1209
1210 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1211
1212         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1213         change.
1214
1215 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1216
1217         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1218         unload.
1219
1220 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1221
1222         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1223         args is not set. Fixes #78926.
1224
1225 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1226
1227         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1228
1229         * image.c (load_class_names): Move this to class.c, and rename it to 
1230         'mono_image_init_name_cache'.
1231         (load_modules): Fix a warning.
1232
1233         * class.c icall.c image.c: Initialize image->name_cache lazily.
1234
1235         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1236         on its name using information in the AOT file.
1237
1238         * class.c (mono_class_from_name): Use the new hook function.
1239
1240 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1241
1242         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1243         correctly.
1244
1245         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1246         Fixes #79289.
1247         
1248 2006-09-06  Martin Baulig  <martin@ximian.com>
1249
1250         * icall.c (mono_lookup_internal_call): Small fix.
1251
1252 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1253
1254         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1255         double g_free.
1256
1257 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1258
1259         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1260         when --debug is specified.
1261
1262 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1263
1264         * class.c (setup_generic_array_ifaces): Fix a warning.
1265
1266 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1267
1268         * Temporarily remove the patch to assemly.c that checks the
1269         assembly versions as it breaks our gacutil.
1270
1271 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1272
1273         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1274
1275         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1276         a net 1.0 runtime.
1277
1278         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1279         created using the default ctor. Fixes #79152.
1280         (mono_string_builder_to_utf16): Ditto.
1281
1282 2006-09-01  Martin Baulig  <martin@ximian.com>
1283
1284         Fix handling of the generic array interfaces.
1285
1286         * class-internals.h
1287         (MonoDefaults): Removed `generic_array_class' and added
1288         `generic_ilist' class.
1289
1290         * class.c
1291         (mono_bounded_array_class_get): Add the new generic array interfaces.
1292         (setup_generic_array_ifaces): New static method; create vtable
1293         entries for each method in the generic array interfaces.
1294
1295         * metadata.c
1296         (select_container): Allow "parent-less" generic methods.
1297
1298         * marshal.c
1299         (mono_marshal_get_generic_array_helper): New public method.
1300
1301         * icall.c
1302         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1303         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1304         moved the interncall into System.Array.
1305
1306 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1307
1308         A few more cases of avoiding work on types with ->byref set.
1309         Has the real fix for #79238
1310         * icall.c (is_generic_parameter): New helper.
1311         (ves_icall_Type_GetGenericParameterPosition): Use it.
1312         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1313         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1314         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1315         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1316         reference types.
1317         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1318         reference types.
1319         (ves_icall_Type_get_IsGenericInstance): Likewise.
1320         (ves_icall_Type_get_IsGenericType): Likewise.
1321
1322 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1323
1324         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1325         class if possible.
1326
1327         * mempool.h (mono_mempool_get_allocated): New helper function.
1328
1329         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1330         change.
1331
1332         * mempool.c: Fix warnings and the calculation of stats.
1333
1334         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1335
1336         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1337
1338         * loader.c (mono_get_method_from_token): Update method_count stat.
1339
1340         * class-internals.h (MonoStats): Add some stats.
1341
1342 2006-08-31 Robert Jordan  <robertj@gmx.net>
1343
1344         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1345         with managed variants.
1346         All code is contributed under the MIT/X11 license.
1347         
1348 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1349
1350         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1351         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1352
1353         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1354
1355         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1356         with cycles in classes.
1357
1358         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1359
1360         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1361         missing a [MarshalAs] directive. Fixes #79203.
1362
1363         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1364         klass->marshal_info. Fixes #79217.
1365
1366 2006-08-30  Martin Baulig  <martin@ximian.com>
1367
1368         Committing a patch from Joachim Ante <joe@otee.dk>:
1369         Add support for binary data symbol stores.
1370
1371         * debug-mono-symfile.c
1372         (mono_debug_open_mono_symbol_file): Renamed into
1373         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1374         arguments.
1375
1376         * mono-debug.c
1377         (mono_debug_open_image): Added `raw_contents' and `size' args.
1378         (mono_debug_init_2_memory): New public function.
1379
1380 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1381
1382         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1383
1384 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1385
1386         * appdomain.c: implement support for ShadowCopyFiles.
1387
1388 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1389
1390         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1391         when value is NULL (and should remove CID #51).
1392
1393 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1394
1395         * image.c: moved 2 functions to ../utils.
1396
1397 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1398
1399         * gc.c: cope with the target object of a GC handle being NULL
1400         (bug #78877).
1401
1402 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1403
1404         * class.c: recursively check parent's explicit implementations
1405         of interface methods (fixes bug #79125).
1406
1407 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1408
1409         * filewatcher.c: Avoid warnings when building, do not redefine
1410         constants that are defined.
1411
1412         Remove warnings.
1413
1414 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1415
1416         * image.c: don't fail when the link points to an absolute path.
1417
1418 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1419
1420         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1421         Fix CID #3.
1422
1423 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1424
1425         * image.c (full_path): A new method used to obtain the actual path
1426         of an assembly even in the presence of symbolic links.  
1427
1428         This is necessary for the case where we are running a binary that
1429         has been GACed, but we are using the "published" path name
1430         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1431         file in the GAC.
1432
1433         This was the source of the failure for the `xsp' command with the
1434         recent AppDomain changes, as far as the runtime was concerned,
1435         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1436         $prefix/mono/gac/blah/version/blah.exe.
1437
1438         (do_mono_image_open): use full path
1439
1440 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1441
1442         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1443
1444 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1445
1446         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1447         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1448
1449 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1450
1451         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1452         small structures. Fixes #78990.
1453
1454 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1455
1456         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1457
1458         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1459
1460 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1461
1462         * appdomain.c:
1463         * marshal.c: don't load all the assemblies from a domain into newly
1464         created ones. The new domains might have different rules and load
1465         assemblies from different locations. Fixes bug #76757.
1466
1467         Patch by Lluis. Conflicts resolved by Brian Crowell.
1468
1469 2006-08-16  Alp Toker  <alp@atoker.com>
1470
1471         * socket-io.c: First half of the fix for #79084.
1472         Set sa_size to the length of the content, not that of the struct.
1473         Don't add NULL suffix to the content, this should be done in
1474         managed code if needed.
1475
1476 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1477
1478         Fix part of #79012
1479         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1480         mono_metadata_parse_type returns NULL.
1481
1482 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1483
1484         * normalization-tables.h : new file for string normalization data.
1485         * locales.c, locales.h, icall.c :
1486           added load_normalization_resource() for string normalization,
1487           and icall as well.
1488         * Makefile.am : added normalization-tables.h to the sources.
1489
1490 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1491
1492         * marshal.c: Add more helper functions to reduce code duplication and use them
1493         everywhere.
1494
1495 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1496
1497         * marshal.c: Fix non-x86 stdcall warnings.
1498         
1499         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1500         them everywhere.
1501
1502 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1503
1504         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1505         type check on multi-dimensional arrays. Fixes #79000.
1506
1507 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1508
1509         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1510         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1511         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1512         * class-internals.h: add is_com_object to class structure.
1513         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1514         null checks to COM object marshalling. Fix .ctor call on RCW.
1515         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1516         
1517         All code is contributed under the MIT/X11 license.
1518
1519 2006-08-09  Dick Porter  <dick@ximian.com>
1520
1521         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1522         racing mono_monitor_allocator_lock() somewhere, so don't delete
1523         the critical section for now.  Found by running and exiting
1524         monodevelop.
1525
1526 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1527
1528         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1529         (ves_icall_System_ComObject_FindInterface): Ditto.
1530         (ves_icall_System_ComObject_CacheInterface): Ditto.
1531
1532         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1533         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1534
1535 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1536
1537         * threadpool.c: treat pipes from process asynchronous reads as sockets
1538         when reading from them, so we get select/poll or epoll to wait for
1539         data.
1540
1541 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1542
1543         * loader.c: Fix a typo (CID #233) in the null check.
1544
1545 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1546
1547         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1548         Hopefully fixes #78949.
1549         
1550         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1551         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1552         bytes. Fixes #78972.
1553
1554 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1555
1556         * filewatcher.c: we need to set errno here.
1557
1558 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1559
1560         * filewatcher.c: let Win32Exception get the error value.
1561
1562 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1563
1564         * filewatcher.c: translate errno into win32 errors for Win32Exception
1565         to know what happened.
1566
1567 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1568
1569         * threadpool.c: Fix more warnings.
1570
1571         * assembly.c (search_loaded): Fix warnings.
1572
1573         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1574         (mono_async_invoke): Ditto.
1575
1576 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1577
1578         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1579         entries for __ComObject type in addition to ComImport types.
1580         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1581         about hash table.
1582         
1583         All code is contributed under the MIT/X11 license.
1584
1585 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1586
1587         * image.c: avoid tentative loading of modulerefs that contain
1588         no metadata (P/Invoke library names).
1589
1590 2006-07-28  Dick Porter  <dick@ximian.com>
1591
1592         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1593         mono_loader_lock() somewhere, so don't delete the critical section
1594         for now.  Found by running and exiting monodevelop.
1595
1596 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1597
1598         * filewatcher.c: define the inotify syscalls when we're building on
1599         linux and have sys/syscall.h. The build system might not have support
1600         for inotify but the target system might have it.
1601
1602 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1603
1604         * domain.c: Documentation updates.
1605
1606         * loader.c (mono_free_method): Do not release the method
1607         information if we are being profiled, as profilers will use this
1608         information at shut down to present some data to the user.
1609
1610         This is needed so that the profiler does not crash, as the
1611         profiler tends to keep MonoMethods around, and they might become
1612         invalid if we free these.
1613
1614         (mono_get_method_constrained): Return the original CIL stream
1615         method as well, so verification can be performed against it.
1616
1617 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1618
1619         * filewatcher.[ch]: support for inotify file system watcher.
1620         * icall.c: add new internal calls for the inotify file system watcher.
1621
1622 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1623
1624         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1625         #78888.
1626
1627 2006-07-20  Dick Porter  <dick@ximian.com>
1628
1629         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1630         warning.
1631
1632 2006-07-20  Dick Porter  <dick@ximian.com>
1633
1634         * threads.c (start_wrapper): Do the thread cleanup while we still
1635         hold a reference to its object.  Fixes bug 78123.
1636
1637 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1638
1639         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1640         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1641           "managed-to-managed".
1642         * icall.c: Redirect string constructors that take sbyte* to
1643           ves_icall_System_String_ctor_RedirectToCreateString.
1644         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1645           to CreateString () methods with matching signature.
1646         * reflection.c: Use original security informations for
1647           MONO_WRAPPER_MANAGED_TO_MANAGED.
1648         * security-manager.c: Use original security informations for
1649           MONO_WRAPPER_MANAGED_TO_MANAGED.
1650         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1651           that is a placeholder and only its address should be used.
1652         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1653           that is a placeholder and only its address should be used.
1654
1655 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1656
1657         Begin implementing COM Interop.
1658         * appdomain.c: Increment corlib version.
1659         * class.c: Set ComImport classes' parent to __ComObject.
1660         * loader.c: Mark cominterop methods as such.
1661         * domain.c: Add __ComObject class to MonoDefaults structure.
1662         * image.c: Add 2 hashtables to the image for COM Interop related methods
1663         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1664         using the mempool allocator
1665         
1666         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1667         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1668         declaration for mono_metadata_type_dup_mp.
1669         
1670         * debug-helpers.c: Added strings for two additional wrapper types
1671         * object.c: Create proxy objects for ComImport classes
1672         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1673         and added __ComObject class to MonoDefaults structure.
1674         
1675         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1676         MonoComInteropProxy and MonoComObject.
1677         
1678         * marshal.c: Added support for COM Interop
1679         (signature_cominterop): Converts managed signature to corresponding
1680         unmanaged COM signature.
1681         (cominterop_get_function_pointer): gets unmanaged function pointer via
1682         COM object vtable
1683         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1684         (cominterop_get_method_interface): returns interface type that method is defined on
1685         (mono_mb_emit_cominterop_call): emits native call to function pointer
1686         gotten from vtable
1687         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1688         that matches signature of unmanaged function.
1689         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1690         (cominterop_get_invoke): forwards call from proxy to __ComObject
1691         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1692         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1693         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1694         
1695         * marshal.h: Added Marshal icall declarations.
1696         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1697         so we can access them in finalizer
1698         
1699 2006-07-14  Dick Porter  <dick@ximian.com>
1700
1701         * object.c (mono_type_initialization_cleanup): Fix a race
1702         condition by temporarily commenting out the critical section
1703         deletion.
1704
1705 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1706
1707         * reflection.c (create_custom_attr): Fix some warnings.
1708         (create_custom_attr_data): Ditto.
1709         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1710         types. Fixes #78855.
1711
1712 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1713
1714         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1715
1716         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1717
1718 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1719
1720         * reflection.c (resolve_object): Add support for DynamicMethod.
1721
1722         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1723         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1724
1725 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1726
1727         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1728         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1729
1730 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1731
1732         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1733         Fixes #77888.
1734
1735 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1736
1737         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1738         slightly: remove a shadow local variable.
1739
1740 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1741
1742         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1743         definition that introduces the virtual function slot.
1744         Also fix Coverity #105.
1745
1746 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1747
1748         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1749         for dynamic assemblies. Fixes #78724.
1750
1751 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1752
1753         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1754         Fixes #78722.
1755
1756 2006-06-21  Martin Baulig  <martin@ximian.com>
1757
1758         * reflection.c
1759         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1760         fixes #76484.
1761
1762 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1763
1764         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1765
1766 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1767
1768         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1769         nor TYPEREFs.
1770         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1771         Inflate result if necessary.
1772         (mono_class_get_full): Remove old version.  Rename from
1773         'mono_class_get' and add 'context' argument.  Pass it to
1774         ..._create_from_typespec.
1775         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1776         (mono_ldtoken): Revert change below.
1777
1778 2006-06-20  Martin Baulig  <martin@ximian.com>
1779
1780         * class.c (mono_ldtoken): Don't pass the generic context to
1781         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1782
1783 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1784
1785         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1786         and later freeing it. Fixes #78638.
1787
1788 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1789
1790         * icall.c (mono_class_get_throw): Revert over-zealous error
1791         throwing, the caller for mono_class_get_throw will cope with
1792         errors when classes are not properly initialized already.
1793
1794         The code still copes with loader exceptions though.
1795
1796         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1797         
1798 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1799
1800         Fixes the `make run1' version of RuntimeAbort (to be commited,
1801         source is in Bugzilla).
1802         
1803         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1804         FALSE on class loading failure instead of returning true.
1805
1806         * class.c (mono_class_create_from_typedef): It is possible for
1807         mono_metadata_interfaces_from_typedef_full to fail if a class is
1808         not found, cope with this.
1809         
1810
1811 2006-06-14  Dick Porter  <dick@ximian.com>
1812
1813         * socket-io.c: 
1814         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1815         4.1.1
1816
1817 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1818
1819         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1820
1821 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1822
1823         * icall.c: Another fix for building mono in Visual Studio.
1824
1825 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1826
1827         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1828         
1829 2006-06-09  Martin Baulig  <martin@ximian.com>
1830
1831         * debug-mono-symfile.c: Put this back and really fix it this
1832         time. Sorry for all the trouble.
1833
1834 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1835
1836         * icall.c (mono_class_get_throw): Fix a warning.
1837         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1838         ReflectionTypeLoadException if needed. Fixes #78606.
1839
1840         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1841         (mono_class_init): Ditto.
1842
1843         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1844         ref_only exceptions.
1845         (mono_loader_clear_error): Make this work even if there is no error.
1846
1847 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1848
1849         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1850         Marshal.GetComSlotForMethodInfo using internal call.
1851
1852 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1853
1854         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1855         a function for signalling it.
1856
1857         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1858         a referenced assembly is not found.
1859
1860         * loader.c (mono_loader_error_prepare_exception): Add support for 
1861         LOADER_ERROR_ASSEMBLY. Fix formatting.
1862
1863 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1864
1865         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1866         for VARIANT marshalling on windows and increment corlib version
1867         since Variant struct was added.
1868
1869 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1870
1871         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1872         stack trace line information:
1873
1874         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1875         (Martin) when looking up B which is between A and C, return A not C.
1876
1877         Bug is #78573.
1878
1879         Thanks to Alexander Olk for tracking this down.
1880
1881 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1882
1883         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1884         
1885         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1886         avoid clobbering its value.
1887         (mono_string_to_lpstr): Fix a warning on windows.
1888
1889 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1890
1891         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1892
1893         * reflection.c loader.c: Removed references to 'dummy' flag.
1894
1895         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1896
1897         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1898         it gets GC tracking.
1899
1900         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1901         GC tracking.
1902         
1903         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1904
1905         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1906
1907         * appdomain.c: Bump corlib version.
1908
1909 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1910
1911         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1912         CEE_STIND_REF when working with object references.
1913
1914 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1915
1916         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1917         Fixes #78539.
1918
1919 2006-05-30  Miguel de Icaza  <miguel@novell.com>
1920
1921         * loader.c (method_from_memberref): Fix argument value for
1922         mono_loader_set_error_method_load (I was passing the MonoClass
1923         instead of the class name char *).
1924
1925 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1926
1927         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1928         CEE_STIND_REF when working with object references.
1929
1930 2006-05-30  Martin Baulig  <martin@ximian.com>
1931
1932         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
1933         mono_method_full_name() change and replace the ':' with a '.'
1934         here.
1935
1936 2006-05-30  Martin Baulig  <martin@ximian.com>
1937
1938         * debug-mono-symfile.c
1939         (mono_debug_symfile_lookup_location): Fix the algorithm:
1940         when looking up B which is between A and C, return A not C.
1941
1942 2006-05-29  Martin Baulig  <martin@ximian.com>
1943
1944         * mono-debug.h
1945         (MonoDebugMethodInfo): Make the typedef public.
1946         (MonoDebugSourceLocation): New public struct.
1947
1948         * mono-debug.c
1949         (mono_debug_source_location_from_address): Removed.
1950         (mono_debug_source_location_from_il_offset): Removed.
1951         (mono_debug_il_offset_from_address): Removed.
1952         (mono_debug_address_from_il_offset): Removed.
1953         (mono_debug_lookup_method): New public function.
1954         (mono_debug_lookup_source_location): New public function; replaces
1955         the old mono_debug_source_location_from_*() functions; see the
1956         inline documentation.
1957         (mono_debug_free_source_location): New public function.
1958         (mono_debug_print_stack_frame): New public function; see the
1959         inline documentation.
1960
1961         * debug-mono-symfile.c
1962         (mono_debug_find_source_location): Renamed into
1963         mono_debug_symfile_lookup_location(); only take a
1964         `MonoDebugMethodInfo *' and an `offset' argument; added inline
1965         documentation.
1966         (mono_debug_find_method): Renamed into
1967         mono_debug_symfile_lookup_method().
1968
1969 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
1970
1971         * assembly.c (mono_assembly_open_full): Dont overwrite the status
1972         returned by mono_image_open_full ().
1973
1974         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
1975         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
1976         #78517.
1977
1978         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
1979         #78518.
1980
1981 2006-05-27  Miguel de Icaza  <miguel@novell.com>
1982
1983         * class.c (mono_class_from_typeref): handle missing images
1984         earlier, deals with bug #78418.   Refactor code; 
1985
1986         Fix a warning introduced in my previous commit (some stale code
1987         from before I revisited my patch).
1988
1989         * class.c (mono_class_create_from_typedef): On failure, remove the
1990         class from the MonoImage->class_cache as the class is not
1991         initialized;   Fixes the leak pointed out by Paolo.
1992
1993 2006-05-25  Dick Porter  <dick@ximian.com>
1994
1995         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
1996         DeleteCriticalSections until I figure out which one may still be
1997         sometimes locked when mono_thread_cleanup is called.
1998
1999 2006-05-24  Dick Porter  <dick@ximian.com>
2000
2001         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2002         of mono_thread_manage and back into its own function, so it can be
2003         called after the finalizer thread has finished.
2004
2005         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2006
2007 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2008
2009         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2010         Fixes #78495.
2011
2012         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2013         with non-blittable elements.
2014         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2015
2016 2006-05-24  Martin Baulig  <martin@ximian.com>
2017
2018         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2019         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2020
2021         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2022         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2023         `mono_debugger_event_handler' to NULL.
2024
2025 2006-05-24  Martin Baulig  <martin@ximian.com>
2026
2027         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2028
2029 2006-05-24  Martin Baulig  <martin@ximian.com>
2030
2031         * mono-debug-debugger.h
2032         (mono_debugger_create_notification_function): Added
2033         `MonoCodeManager *' argument.
2034
2035 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2036
2037         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2038
2039 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2040
2041         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2042         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2043         implementation.
2044
2045 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2046
2047         * icall.c: precise GC support: objects can't be stored in unmanaged
2048         memory anymore, even if they are kept alive by other references: since
2049         they can move the GC needs to be able to always find them.
2050
2051 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2052
2053         * object.c: precise GC support for static fields. Support
2054         for moving GCs: write barriers and pinned allocation for interned
2055         strings.
2056
2057 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2058
2059         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2060         structure.
2061
2062 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2063
2064         * class.c, gc.c: sgen and precise GC updates.
2065
2066 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2067
2068         * marshal.h, marshal.c: added write barrier wrapper and precise type
2069         fixes.
2070
2071 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2072
2073         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2074         support.
2075
2076 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2077
2078         * reflection.c: precise and sgen GC updates.
2079
2080 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2081
2082         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2083
2084 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2085
2086         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2087
2088 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2089
2090         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2091         MONO_TYPE_OBJECT. Fixes #78462.
2092
2093 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2094
2095         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2096         and blittable types.
2097
2098 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2099
2100         * class.c (mono_class_get_exception_for_failure): Implement parts
2101         of a TODO: if the loader error is set (instead of the class
2102         error), we return a Loader exception that can be properly thrown
2103         elsewhere.
2104
2105         This was exposed by some Winforms 2.0 code that I tried to run
2106         (Atsushi pointed me to it).
2107
2108 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2109
2110         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2111         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2112         
2113         * marshal.c (emit_marshal_vtype): Add limited support for 
2114         UnmanagedType.LPStruct. Fixes #78427.
2115
2116         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2117         Applied a patch from kangaroo to fix #77523.
2118
2119 2006-05-17  Martin Baulig  <martin@ximian.com>
2120
2121         * threads.c
2122         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2123         (debugger_thread_created): Removed.
2124         (debugger_thread_exited): Removed.
2125
2126 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2127
2128         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2129
2130         * object-internals.h (MonoReflectionResource): Sync with managed version.
2131
2132 2006-05-12  Wade Berrier <wberrier@novell.com>
2133
2134         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2135
2136 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2137
2138         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2139         functions try to allocate from the image mempool.
2140
2141 2006-05-12  Dick Porter  <dick@ximian.com>
2142
2143         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2144
2145 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2146
2147         * object.c: The FieldGetter and FieldSetter methods require the full
2148         name of the class, not only the name. Fixes bug #78277.
2149
2150 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2151
2152         * loader.c (method_from_memberref): Do not pass the NULL klass to
2153         mono_loader_set_error_() methods.  Pass the non-NULL value
2154         (class). 
2155
2156 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2157
2158         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2159         (mono_assembly_close): Null out assembly->image->references after freeing it.
2160
2161         * image.c (mono_image_close): Free image->references.
2162         
2163         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2164
2165 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2166
2167         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2168         before checking if it's NULL (g_assert).
2169
2170 2006-05-10  Martin Baulig  <martin@ximian.com>
2171
2172         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2173         I thought I already killed that two months ago, but now it somehow reappeared.
2174
2175 2006-05-10  Martin Baulig  <martin@ximian.com>
2176
2177         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2178
2179 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2180
2181         * reflection.c: Allocate memory for dynamically created methods in the image
2182         mempools.
2183
2184 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2185
2186         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2187         don't use the ad pointer before checking if it's NULL (g_assert).
2188
2189 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2190
2191         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2192         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2193
2194         * marshal.c: Allocate all signatures from mempools.
2195
2196         * marshal.c: Allocate some more signatures from mempools.
2197
2198 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2199
2200         * object.c (mono_load_remote_field): The code used to provide a
2201         temporary variable for returning results if the user did not
2202         provide a result pointer.  But our temporary variable was allocted
2203         on the satck.
2204
2205         Fix calling code to always pass a result area.   Coverity ID 103.
2206
2207 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2208
2209         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2210         value, not the old. Fixes #78312.
2211         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2212
2213         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2214         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2215         per-image cache.
2216
2217         * assembly.c (mono_assembly_close): Free image->references.
2218
2219         * assembly.c (mono_assembly_names_equal): Fix a warning.
2220         (mono_assemblies_cleanup): Cleanup more global data.
2221
2222         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2223
2224         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2225         ptr_cache and image->modules.
2226
2227         * image.c (mono_image_init): Allocate array_cache lazily.
2228         
2229 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2230
2231         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2232         behavior was changed recently and has bad side effects.
2233
2234 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2235
2236         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2237         
2238         * assembly.c (mono_assembly_close): Remove a debug printf.
2239
2240         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2241
2242         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2243         to also allow for temporary references between mono_image_open ()/close ().
2244
2245         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2246
2247 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2248
2249         * marshal.c: Fix support for dynamic methods.
2250
2251         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2252
2253         * marshal.c (mono_marshal_cleanup): New cleanup function.
2254
2255         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2256         image mempools.
2257
2258         * class.c (mono_class_init): Fix leaking class->nested_classes.
2259
2260         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2261
2262         * image.c (mono_image_init): Initialize the new cashes.
2263
2264         * image.c (mono_image_close): Destroy the new cashes.
2265
2266         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2267
2268         * mempool.c (mono_mempool_strdup): New helper function.
2269
2270         * class-internals.h: Add prototype for mono_loader_unlock ().
2271
2272         * domain.c (mono_jit_info_table_find): Fix a warning.
2273         (mono_debugger_check_runtime_version): Ditto.
2274
2275         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2276         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2277         functions to these modules.
2278
2279         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2280         metadata modules.
2281         
2282         * marshal.c (mono_free_bstr): Fix a warning.
2283
2284         * assembly.c (mono_assembly_open_full): Fix another small leak.
2285
2286         * object.c: Fix some unload leaks in the remoting code.
2287
2288         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2289         function.
2290
2291         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2292
2293         * reflection.c: Fix some unload leaks in dynamic assemblies.
2294
2295 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2296
2297         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2298         * marshal.h: Add BSTR support on Win32
2299         * icall.c: Add BSTR icalls
2300         * metadata.h: Add BSTR enums
2301
2302 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2303
2304         Work to catch the crash from #76795 and turn it into an
2305         exception.   As I stubbed out pieces of the VisualBasic support,
2306         I found a number of places where the code was failing and I added
2307         checks to those places. 
2308         
2309         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2310         function return a status code.  If we fail to parse the signature
2311         from mono_metadata_parse_generic_inst, return FALSE.
2312
2313         * loader.c (mono_get_method_from_token): If we fail to load the
2314         method (mono_class_get) return NULL.   
2315
2316         * (method_from_memberref): Return NULL if we are unable to parse
2317         the method signature
2318
2319         (mono_loader_error_prepare_exception): Since we now use the
2320         loader_error flag internally to stop processing, and obtaining
2321         exceptions that might be thrown will walk this code path the
2322         proper way of going from a MonoLoaderError into a
2323         MonoException was convoluted.   This new routine encapsulates the
2324         process of turning the error into an exception and *clearing* the
2325         error afterwards.
2326         
2327 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2328
2329         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2330         with missing assemblies), and to cope with:
2331
2332                 * Missing fieldref from a non-existing assembly.
2333                 * Missing methodref from a non-existing assembly.
2334
2335         The first batch of work to address *some* of the issues from 76661.
2336         
2337         * object.c (mono_class_create_runtime_vtable): If we fail to
2338         initialize the class raise the exception here. 
2339
2340         * metadata.c (mono_class_get_overrides_full): If any methods fail
2341         to load return the failure to the caller.
2342
2343         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2344         flagging assemblies that failed to load.   
2345
2346         Do not crash if we are unable to load the assembly.
2347
2348         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2349         assemblies. 
2350
2351         * loader.c (mono_loader_set_error_type_load): Change the
2352         convention to always pass unallocated strings, so we make our own
2353         copies (I know our own code had duplicated strings before, but
2354         this keeps the normal conventions).
2355         (method_from_memberref): Call mono_loader_set_error_method_load
2356         for all possible failures of loading the class. 
2357         Remove assert, turn into a loader error.
2358
2359         (mono_loader_error_to_exception): Move this routine from mini
2360         (mini_loader_error_to_exception) there was no need to have that in
2361         mini. 
2362
2363         * class.c (mono_class_from_typeref): If we were not able to load
2364         the assembly with mono_assembly_load_reference, call the
2365         mono_loader_set_error_type_load to register the problem.
2366
2367         (mono_class_setup_fields): If we fail to load the type from
2368         mono_metadata_parse_type_full, call mono_class_set_failure and
2369         break from the loop.
2370
2371         If class->exception_type is set, we do not layout the fields as
2372         that might crash the runtime, and instead return (from breaking
2373         from the previous loop).
2374
2375         (mono_class_setup_vtable): This now returns a boolean indicating
2376         whether the table was properly setup.   The decision is driven by
2377         mono_class_get_overrides_full which might run into non-existing
2378         methods. 
2379         
2380         (mono_class_init): Returns TRUE on success or FALSE if there was a
2381         problem in loading the type (incorrect assemblies, missing
2382         assemblies, methods, etc).
2383
2384         When we call mono_class_setup_fields we also check for a potential
2385         error inside this call (either a class exception or a general
2386         loader exception).
2387
2388         (mono_class_create_from_typedef): If the parent fails to load
2389         (calling mono_class_get_full) return NULL.
2390         
2391         ** Important **
2392
2393         calls to mono_metadata_parse_type_full should be checked
2394         everywhere and set the mono_class_set_failure
2395         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2396
2397         The current patch checks the places where my manually constructed
2398         tests show the errors are showing up, but we should do it
2399         everywhere. 
2400
2401         ** Important2 **
2402
2403         mono_class_init return values should be tested everywhere, like
2404         the previous case this is something that we should audit
2405         everywhere and not only on the cases exposed by the tests I
2406         created. 
2407
2408 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2409
2410         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2411         boolean parameter and instead pass the information on `options'
2412         parameter (FileOptions).
2413
2414         * icall.c: Register the new signature for MonoIO.Open.
2415
2416         * debug-helpers.c (dis_one): Trying to understand how coverity
2417         works.  Fix Run 5, item 78.
2418
2419 2006-04-26  Dick Porter  <dick@ximian.com>
2420
2421         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2422         dereference.
2423
2424 2006-04-25  Martin Baulig  <martin@ximian.com>
2425
2426         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2427
2428         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2429         debugger_thread_created().
2430         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2431         special way.
2432         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2433         (mono_debugger_finalize_threads): New function; undo the effects
2434         of mono_debugger_init_threads().
2435         (mono_debugger_create_all_threads): Removed.
2436
2437 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2438
2439         * image.c (mono_image_close): Tidy up trace messages.
2440
2441         * assembly.c (mono_assembly_close): Ditto.
2442
2443         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2444         no longer references an already freed assembly. Fixes #78168.
2445
2446 2006-04-21  Dick Porter  <dick@ximian.com>
2447
2448         * threads.c (mono_thread_detach): Fix reference counting when
2449         detaching threads.
2450
2451 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2452
2453         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2454         #78155.
2455
2456 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2457
2458         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2459         (mono_type_to_stind): Ditto.
2460
2461         * marshal.c: Use the new helper functions to simplify code.
2462
2463         * image.c (mono_image_close): Add some code for help debug assembly unloading
2464         problems.
2465
2466         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2467         image mempool.
2468
2469         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2470         assembly was already loaded in another appdomain. Fixes #78083.
2471
2472 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2473
2474         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2475         referenced assemblies.
2476         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2477
2478         * domain.c (mono_domain_free): Add a trace message.
2479
2480         * appdomain.c (add_assemblies_to_domain): Ditto.        
2481
2482         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2483         field.  
2484
2485 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2486
2487         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2488
2489 2006-04-12  Martin Baulig  <martin@ximian.com>
2490
2491         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2492         `USE_INCLUDED_LIBGC'.   
2493
2494 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2495
2496         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2497         the patch contains ../ and a small directory name later. Hopefully fixes
2498         #78035.
2499
2500 2006-04-10  Martin Baulig  <martin@ximian.com>
2501
2502         Clean up the debugger's thread-handling code.
2503
2504         The debugger's thread-handling code has been moved from
2505         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2506         over the `threads' hash, keep track of exiting threads and also
2507         use proper locking.
2508
2509         We can now debug XSP and XSP based applications with the debugger.
2510
2511         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2512
2513         * threads.h
2514         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2515         (mono_install_thread_callbacks): Likewise.      
2516
2517         * threads.c (mono_thread_callbacks): Removed.
2518         (debugger_thread_created, debugger_thread_exited): New static functions.
2519         (start_wrapper): Call debugger_thread_created().
2520         (thread_cleanup): Call debugger_thread_exited().
2521         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2522         (mono_debugger_init_threads): New public function.
2523         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2524         iterate directly over the `threads' hash and also use proper locking.
2525
2526         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2527
2528         * mono-debug-debugger.h
2529         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2530
2531 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2532
2533         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2534         argument type=array. Fixes #78057.
2535
2536 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2537
2538         * culture-info-table.h : regenerated. Fixed bug #69652.
2539
2540 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2541
2542         * loader.c metadata.c: Reapply a variant r59116.
2543         
2544         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2545
2546         * class.c (mono_class_setup_interface_offsets): New internal function.
2547
2548         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2549         interfaces too. Fixes #77398.
2550
2551         * reflection.c (encode_cattr_value): Add support for 
2552         parameter type=object, argument type=array.
2553         (load_cattr_value): Ditto. Fixes #77916.
2554
2555         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2556         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2557
2558         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2559         a byval char array and CharSet is Ansi.
2560
2561         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2562
2563 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2564
2565         * metadata.c: Add some locking comments.
2566         
2567         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2568         mempool.
2569         (mono_metadata_free_method_signature): Don't free the signature itself.
2570
2571         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2572
2573         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2574         reference the same MonoImage.
2575         (mono_assembly_load_from_full): Add an assert.
2576
2577 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2578
2579         * image.c (mono_image_close): Don't put the image we are about to free into the
2580         loaded_images_guid_hash.
2581
2582         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2583         to reduce code duplication.
2584
2585         * marshal.c: Register the native functions called by this module as icalls, to
2586         somewhat centralize the creation of MonoMethodSignature's.
2587
2588         * loader.c (mono_method_signature): Add a cache for method signatures.
2589
2590         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2591         the parameter attributes of a method.
2592         (mono_metadata_parse_method_signature_full): Refactored the computation of
2593         parameter attributes into a separate function. Also avoid one allocation in
2594         most cases.
2595
2596         * assembly.c (mono_assembly_close): Ditto.
2597
2598         * image.c (mono_image_close): Log trace messages with INFO level.
2599
2600         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2601
2602         * image.c reflection.c: Correct reference counting of image modules.
2603         
2604         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2605         of this function from the image mempool.
2606         
2607         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2608         to allow more cached types to be used.
2609
2610         * mono-debug.c (mono_debug_add_method): Appled patch from
2611         David S. Miller  <davem@sunset.davemloft.net>: Access 
2612         minfo->lexical_blocks[] entry elements using read32().
2613
2614 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2615
2616         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2617         methods as it is allocated from the mempool.
2618
2619         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2620         image mempool.
2621
2622         * metadata-internals.h: Add comments describing the reference counting scheme
2623         used for MonoImage and MonoAssembly.
2624
2625         * image.c assembly.c reflection.c: Rework reference counting of images and 
2626         assemblies so they are freed when the runtime is shut down. Free some 
2627         additional memory structures when an image is unloaded.
2628         
2629 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2630
2631         * class.c loader.c reflection.c: Allocate more data structures in
2632         the image mempool.
2633
2634 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2635
2636         * icall.c
2637         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2638         build on pre glib 2.4 systems.
2639
2640 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2641
2642         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2643
2644         * icall.c: Fix some warnings.
2645
2646 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2647
2648         * culture-info-table.h : regenerated.
2649
2650 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2651
2652         * threads.c, object-internals.h, verify.c: changed the culture caching
2653         code to use a normal MonoArray for storage so the GC can keep track of
2654         them easily. Fixed bits of the cache logic, too and simplified the
2655         code.
2656
2657 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2658
2659         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2660         thread for non-Boehm GCs.
2661
2662 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2663
2664         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2665         needed to keep track of the data for static fields.
2666
2667 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2668
2669         Fix #75172
2670         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2671         for interface classes.  Use 'num_methods' instead.
2672         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2673         before using '->vtable_size' field.
2674
2675 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2676
2677         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2678         doesn't contain managed pointers, so use a normal hashtable.
2679
2680 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2681
2682         * reflection.c, class-internals.h, domain.c: fixed handling of types
2683         used as values for objects in custom attributes (bug #77915):
2684
2685 2006-03-24  Martin Baulig  <martin@ximian.com>
2686
2687         * class.c (mono_class_setup_fields): Added support for generic
2688         instances; fixes #77580.
2689
2690 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2691
2692         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2693
2694 2006-03-24  Dick Porter  <dick@ximian.com>
2695
2696         * file-io.c (get_file_attributes): More stat macro breakage.
2697         Fixes bug 77759.
2698
2699 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2700
2701         * profiler.c: added the file=filename option in the default profiler
2702         to output the profile data to filename.
2703
2704 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2705
2706         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2707         bug #77877.
2708
2709 2006-03-22  Martin Baulig  <martin@ximian.com>
2710
2711         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2712         allocated `MonoClassField *' in `fb->handle'.
2713
2714 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2715
2716         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2717         allocate interface ID to save memory and allow better ID reuse on
2718         appdomain unload. setup_generic_vtable () removal from Martin.
2719
2720 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2721
2722         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2723         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2724         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2725         write barriers for reference stores with managed objects accessed with
2726         C structures in the runtime and in embedding programs.
2727
2728 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2729
2730         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2731         'interface_id' and 'max_interface_id' fields of MonoClasses
2732         representing open generic types.
2733
2734 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2735
2736         * object.h, object.c, icall.c: added functions to deal with
2737         storing valuetypes that contain references in managed objects.
2738         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2739         fixes and comments around uses of mono_array_addr ().
2740
2741 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2742
2743         * object.h, icall.c, monitor.c: object.GetHashCode ()
2744         implementation that supports the moving garbage collector.
2745
2746 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2747
2748         * icall.c, threads-types.h, threads.c: implemented finalizer for
2749         LocalDataStoreSlot.
2750
2751 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2752
2753         * metadata.c (mono_type_size): Add a fixme.
2754         (mono_type_stack_size): Ditto.
2755
2756         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2757         'type_forwarders' field.
2758
2759         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2760         attribute from net 2.0.
2761
2762         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2763         from class.c.
2764
2765         * class.c (mono_class_setup_fields): Fix a warning.
2766         
2767         * class.c (mono_class_from_name): Add support for assemblyref entries
2768         in the EXPORTEDTYPE table.
2769
2770         * reflection.c: Add support for handling type forwarders under net 2.0.
2771
2772         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2773         
2774 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2775
2776         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2777         overwriting entries in ModuleBuild->types, also clean up the code
2778         a little. Fixes #77774.
2779
2780 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2781
2782         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2783         load friend assembly info when present.
2784
2785 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2786
2787         Fix crasher on gtest-158.cs.
2788         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2789         the return value if the MonoClass we want is yet in an
2790         inconsistent state.
2791         * class.c (mono_class_create_from_typedef): Add an comment
2792         explaining an order dependency between mono_class_setup_parent and
2793         mono_class_setup_mono_type.
2794
2795 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2796
2797         * class.c: documentation updates and events bug fix.
2798
2799 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2800
2801         * class.c: some cleanup, locking fixes.
2802
2803 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2804
2805         * class.c: fix the generics code to setup nested
2806         type info to the instantiated type (bug #77770).
2807
2808 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2809
2810         * marshal.c: fixed a few type correctness issues.
2811
2812 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2813
2814         * loader.c: the Set/Get/Addrtess array methods should be public.
2815
2816 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2817
2818         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2819         
2820         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2821         info->wrapper.
2822
2823 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2824
2825         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2826
2827         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2828
2829         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2830         (mono_mempool_alloc0): Ditto.
2831
2832 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2833
2834         * socket-io.c:
2835         (create_object_from_sockaddr): it was allocating 4 extra bytes
2836         for the AF_UNIX data. Fixes bug #77747.
2837
2838 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2839
2840         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2841
2842 2006-03-09  Dick Porter  <dick@ximian.com>
2843
2844         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2845         Fixes bug 76966 again.
2846
2847 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2848
2849         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2850         names from r57532
2851         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2852
2853 2006-03-07  Martin Baulig  <martin@ximian.com>
2854
2855         * object.c
2856         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2857
2858 2006-03-07  Martin Baulig  <martin@ximian.com>
2859
2860         * class.c
2861         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2862         regression introduced in r56970; see gtest-252.cs.
2863
2864         * loader.c (mono_get_method_constrained): Correctly handle generic
2865         methods; see gtest-253.cs.
2866
2867 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2868
2869         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2870
2871 2006-03-04  Martin Baulig  <martin@ximian.com>
2872
2873         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2874         compute the parent type at runtime, just like we're already doing
2875         it for interfaces.
2876
2877         * reflection.c
2878         (mono_reflection_bind_generic_parameters): Don't compute the
2879         parent type anymore.
2880
2881         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2882
2883 2006-03-04  Martin Baulig  <martin@ximian.com>
2884
2885         * mono-debug-debugger.h
2886         (mono_debugger_create_notification_function): Allocate memory at
2887         runtime and return a pointer to it.
2888
2889 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2890
2891         * assembly.c: Fix windows build.
2892         
2893         * assembly.c: Fix build.
2894
2895         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2896
2897         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2898         
2899 2006-03-03  Dick Porter  <dick@ximian.com>
2900
2901         * process.c
2902         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2903         Check parameters before dereferencing them.  Fixes Aaron's part of
2904         bug 77393.
2905
2906 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2907
2908         Fix performance regression.
2909         * loader.c (find_method_in_class): Add 'from_class' argument.
2910         Rename 'klass' argument to 'in_class'.  The signature is compared
2911         against the method in 'in_class', and the corresponding method is
2912         returned from 'from_class'.
2913         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2914         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2915         type definition and generic instantiation in parallel.
2916         (mono_get_method_constrained): Update to changes.
2917
2918 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2919
2920         * threads.c: make sure the domain is correct, too when doing
2921         mono_thread_attach ().
2922
2923 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
2924
2925         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
2926         windows. Fixes #77683.
2927
2928 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2929
2930         * object.h, *: introduced specific way to set elements of an array
2931         of references to be used as write barrier. Still need to audit the
2932         uses of mono_array_addr.
2933
2934 2006-03-01  Miguel de Icaza  <miguel@novell.com>
2935
2936         * object-internals.h: New field to cache the assmebly name, patch
2937         from Tambet Ingo (tambet@ximian.com)
2938
2939 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2940
2941         * decimal.h, class-internals.h, metadata-internals.h,
2942         file-io.h: mark a few function declarations as internal, to
2943         reduce the number of PLT entries.
2944
2945 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2946
2947         * file-io.c: fix typo in warning message.
2948
2949 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
2950
2951         * loader.c: on unix, lookup the "*A" version of a function
2952         if charset is auto as a second option before failing.
2953
2954 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2955
2956         * class.h (mono_class_inflate_generic_method): Revert to two
2957         argument version.
2958         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
2959         (mono_class_inflate_generic_method_full): Add.
2960         * class.c (mono_class_inflate_generic_method_full): Rename from
2961         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
2962         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
2963         * loader.c, reflection.c: Update to changes.
2964
2965 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
2966
2967         * icall.c: const fixes and small improvements.
2968
2969 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2970
2971         * threadpool.c: for asynchronous connect(), enable the same workaround
2972         for BSD 6 as for the Mac. Fixes bug #77637.
2973
2974 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
2975
2976         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
2977         formatted classes. Fixes #77524.
2978
2979 2006-02-24  Raja R Harinath  <rharinath@novell.com>
2980
2981         * class.c (inflate_generic_type): Add a couple more
2982         micro-optimizations.
2983         (inflate_generic_context): Don't use the 'gmethod' from
2984         'inflate_with'.
2985         (mono_class_inflate_generic_method): If the method has generic
2986         parameters, but the passed-in context doesn't have a 'gmethod',
2987         create one.  Use the possibly simplified generic instantiation
2988         from the declaring class instead of the one passed in.
2989
2990 2006-02-24  Raja R Harinath  <harinath@gmail.com>
2991
2992         Make generic method signature and method header handling lazy.
2993         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
2994         (inflate_generic_header): Likewise.
2995         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
2996         parameter to avoid inflating types.
2997         (mono_get_inflated_method): Empty out.
2998         * class.h (mono_class_inflate_generic_method): Update to changes.
2999         * loader.c (mono_get_method_from_token): Don't parse signature for
3000         generic methods, nor methods of generic classes.
3001         (mono_method_signature): Rename from 'mono_method_signature'.
3002         Inflate signature on demand.
3003         (mono_method_get_header): Inflate method header on demand.
3004         * reflection.c: Update to changes.
3005
3006 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3007
3008         * metadata.c (mono_metadata_inflate_generic_inst): If the
3009         instantiation is closed, don't bother expanding it in the new
3010         context.
3011         * class.c (inflate_generic_class): If the generic instantiation
3012         doesn't change after inflation, return the argument itself.
3013         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3014         Add bounds checks.
3015         (inflate_generic_context): If neither the generic class nor the
3016         generic method instantiations change, return the original context.
3017         * reflection.c (mono_method_get_object): Do
3018         'mono_get_inflated_method' before accessing the ->klass field.
3019         (inflate_mono_method): Don't create a MonoGenericMethod unless
3020         necessary.
3021         (inflate_method): Don't pass a constructed type as the declaring
3022         type of a methodbuilder.
3023
3024 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3025
3026         * object.c: fix memory overwrite.
3027
3028 2006-02-22  Dick Porter  <dick@ximian.com>
3029
3030         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3031         it doesn't work any more.
3032         (mono_threads_request_thread_dump): Fix unused variable warnings.
3033
3034 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3035
3036         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3037         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3038         the public header file.
3039
3040 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3041
3042         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3043
3044 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3045
3046         * class-internals.h, object.c: reduce the size of MonoVTable
3047         and store the interface_offsets array at negative offsets.
3048
3049 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3050
3051         * metadata.c: tweak table descriptors data structures to reduce
3052         size and runtime relocations.
3053
3054 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3055
3056         * marshal.c: fix some types and opcodes to be type-safe
3057         in marshaling wrappers.
3058
3059 2006-02-21  Ankit Jain  <jankit@novell.com>
3060
3061         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3062
3063 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3064
3065         * metadata.c (get_constraints): Relax debugging checks for monodis.
3066
3067 2006-02-21  Ankit Jain  <jankit@novell.com>
3068
3069         * metadata.c (mono_metadata_load_generic_params): Move the code
3070         checking for ambiguous generic params from here to mono/dis/get.c
3071         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3072
3073 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3074
3075         Fix assertion triggered when compiling nemerle.
3076         * class.c (mono_get_shared_generic_inst): Rename from
3077         get_shared_inst and make non-static.
3078         * loader.c (mono_get_shared_generic_method): New.  Used to create
3079         the MonoGenericContext-equivalent of a MonoGenericContainer.
3080         (mono_get_method_from_token): Initialize the 'context' field of
3081         the created MonoGenericContainer.
3082         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3083         * metadata.c (get_constraints): Add sanity check.
3084         * class-internals.h: Add new internal methods.
3085
3086         * reflection.c (verify_safe_for_managed_space): New sanity check.
3087         Currently checks that owner-less generic parameters aren't allowed
3088         in managed space.
3089         (mono_type_get_object): Use it.
3090         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3091         that are now in mono_type_get_object.
3092         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3093
3094 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3095
3096         * metadata.c (mono_type_create_from_typespec): Rename from
3097         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3098         argument and caching of types in the generic container.
3099         (unwrap_arrays, find_generic_param): Remove.
3100         * metadata-internals.h: Update.
3101         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3102
3103 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3104
3105         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3106
3107         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3108         return values. Fixes #77581.
3109
3110         * class.c (mono_fnptr_class_get): Switch name and name_space.
3111
3112         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3113         classes and add support for [In, Out] attributes.
3114         (mono_marshal_free_asany): Ditto. Fixes #77524.
3115
3116 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3117
3118         * class.c (mono_class_from_generic_parameter): Make more robust to
3119         incomplete MonoGenericContainers from monodis.
3120
3121 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3122
3123         * class-internals.h: added some more exception types.
3124         * class.c, metadata.c: added a few checks to handle missing
3125         types.
3126
3127 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3128
3129         Use owner-less generic-params some more.
3130         * class.c (my_mono_class_from_generic_parameter): Remove.
3131         (mono_class_from_generic_parameter): Handle null image,
3132         param->name and param->owner.
3133         (mono_class_from_mono_type): Update.
3134         (mono_class_create_from_typespec): Remove 'container' parameter.
3135         If that parameter is non-null, the result is always inflated by
3136         'mono_class_get_full' anyway.
3137         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3138         parameter.
3139         (mono_class_get_full): Update.
3140
3141         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3142         instance is not open, don't bother inflating.
3143         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3144         parse metadata for inflated classes.
3145         (_mono_class_get): Change GenericContext* parameter to
3146         GenericContainer*.
3147         (mono_class_create_from_typespec): Likewise.  Simplify, and
3148         implement trivially.  All the cases are handled in
3149         mono_class_from_mono_type.  Don't inflate returned class.
3150         (mono_class_get_full): Delegate GENERICINST optimization to
3151         inflate_generic_type.
3152         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3153
3154 2006-02-16  Dick Porter  <dick@ximian.com>
3155
3156         * socket-io.c (create_object_from_sockaddr): Fix typo.
3157         (create_sockaddr_from_object): Check array lengths before
3158         potentially accessing items off the end.
3159         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3160         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3161         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3162         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3163         length checks to avoid wraparound overflows.
3164         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3165         contents of the array of sockets
3166         (hostent_to_IPHostEntry2)
3167         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3168         Check return value of inet_ntop ().
3169         (addrinfo_to_IPHostEntry): Fix typo
3170
3171 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3172
3173         Type metadata parsing doesn't use generic-instantiation information.
3174         * metadata.c (mono_metadata_parse_array_full): Change
3175         MonoGenericContext* parameter to MonoGenericContainer*.
3176         (mono_metadata_parse_type_full): Likewise.
3177         (mono_type_create_from_typespec_full): Likewise.
3178         (mono_metadata_parse_mh_full): Likewise.
3179         (mono_metadata_parse_generic_inst): Likewise.
3180         (do_mono_metadata_parse_generic_class): Likewise.
3181         (do_mono_metadata_parse_type): Likewise.
3182         * metadata-internals.h: Update to changes.
3183         * class.c (mono_class_find_enum_basetype): Likewise.
3184         (mono_class_setup_fields): Likewise.
3185         (mono_class_create_from_typespec): Likewise.
3186         * loader.c (method_from_methodspec): Likewise.
3187         (mono_get_method_from_token): Likewise.
3188         (mono_method_get_header): Likewise.
3189
3190 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3191
3192         * marshal.c: handle additional GENERICINST case (patch from
3193         Thong Nguyen <tum@veridicus.com>).
3194         Fix a few cases where LDIND_I/STIND_I was used for references.
3195
3196 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3197
3198         * reflection.c (mono_reflection_get_token): Remove unused variable.
3199
3200 2006-02-16  Martin Baulig  <martin@ximian.com>
3201
3202         * reflection.c (mono_reflection_get_token): Add support for fields
3203         in instantiated generic types.
3204
3205         * icall.c
3206         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3207
3208 2006-02-15  Martin Baulig  <martin@ximian.com>
3209
3210         * icall.c
3211         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3212         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3213         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3214         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3215
3216 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3217
3218         * class.c, metadata.c, metadata.h, object.c, icall.c,
3219         marshal.c: changed mono_type_get_underlying_type () to do
3220         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3221         Fixed handling of instantiated generic valuetypes (bug #75479).
3222
3223 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3224
3225         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3226         Delegate to mono_metadata_decode_value, and work on the returned value.
3227
3228         * icall.c (ves_icall_MonoType_GetGenericArguments):
3229         Add consistency check here too.
3230         
3231 2006-02-15  Ankit Jain  <jankit@novell.com>
3232
3233         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3234         char/short etc.
3235
3236 2006-02-15  Ankit Jain  <jankit@novell.com>
3237
3238         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3239         signed values, used only for representing lower bounds of arrays.
3240         (mono_metadata_parse_array_full): Use new
3241         mono_metadata_decode_signed_value to decode lower bounds.
3242
3243 2006-02-14  Martin Baulig  <martin@ximian.com>
3244
3245         * reflection.c
3246         (mono_reflection_get_token): Support "MonoGenericMethod" and
3247         "MonoGenericCMethod" and allow generic instances / methods.
3248
3249 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3250
3251         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3252         to obtain the terminal size using an ioctl.
3253
3254         * object.c (mono_nullable_init): Revert this as nullable reference
3255         types are not valid.
3256         (mono_nullable_box): Ditto.
3257
3258 2006-02-09  Dick Porter  <dick@ximian.com>
3259
3260         * threads.c (mono_thread_detach): Drop a reference to the thread
3261         we're detaching.
3262
3263 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3264
3265         * object.c (mono_nullable_init): Handle nullable reference types.
3266         (mono_nullable_box): Ditto. Fixes #77446.
3267
3268 2006-02-07  Martin Baulig  <martin@ximian.com>
3269
3270         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3271
3272 2006-02-07  Ankit Jain  <jankit@novell.com>
3273
3274         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3275         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3276         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3277         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3278         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3279         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3280
3281 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3282
3283         * class.c (mono_class_create_generic): Set type_token as well.
3284
3285         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3286         compatible with MS.
3287
3288 2006-02-02  Martin Baulig  <martin@ximian.com>
3289
3290         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3291         has never been used so far.
3292
3293 2006-02-02  Martin Baulig  <martin@ximian.com>
3294
3295         * mono-debug-debugger.h: Changed comment at the top of this file;
3296         the header is not installed, but it's safe to #include it from
3297         within the JIT.
3298
3299         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3300         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3301
3302 2006-02-02  Martin Baulig  <martin@ximian.com>
3303
3304         * mono-debug.h
3305         (MonoSymbolTable): Removed the `metadata_info' field.
3306
3307         * mono-debug.c
3308         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3309
3310         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3311         (mono_debugger_add_builtin_types): Removed.
3312         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3313         (mono_debugger_create_notification_function): We now operate on a
3314         pre-allocated area; take a `gpointer' and return `void'.
3315
3316         * mono-debug-debugger.c
3317         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3318         (mono_debugger_add_builtin_types): Removed.
3319
3320 2006-02-02  Martin Baulig  <martin@ximian.com>
3321
3322         * threads.c (mono_debugger_create_all_threads): New public method.
3323
3324 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3325
3326         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3327         breaks on several platforms.
3328
3329 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3330
3331         * assembly.c: the VS.NET build doesn't supply default values for
3332         MONO_ASSEMBLIES and MONO_CFG_DIR.
3333
3334 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3335
3336         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3337         helper function.
3338
3339         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3340
3341         * loader.c (method_from_memberref): Fix a warning.
3342
3343         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3344
3345         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3346         with explicit layout. Fixes #77433.
3347
3348 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3349
3350         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3351         max_interface_id is initialized before using it. Fixes #77398.
3352         (ves_icall_Type_GetInterfaces): Ditto.
3353
3354 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3355
3356         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3357         allocate memory for parameter attributes when parsing memberref
3358         signatures.
3359         * loader.c (mono_loader_set_error_method_load): Don't warn.
3360         (method_from_memberref): Ensure MissingMethodException gets thrown
3361         if method is not found.  Make warning more informative.
3362
3363 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3364
3365         Fix #77397
3366         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3367         return true if is byref.
3368         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3369         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3370         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3371
3372 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3373
3374         Fix tests/find-method.2.il
3375         * loader.c (find_method, find_method_in_class): Remove is_inflated
3376         argument.  Revert 2006-01-18 change.
3377         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3378         is generic, search for method in its generic definition.
3379         * class.c (mono_class_setup_vtable_general): Print generic
3380         arguments of generic types in debugging printf.
3381
3382 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3383
3384         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3385
3386         * threads.c (mono_threads_request_thread_dump): New helper function.
3387
3388 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3389
3390         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3391
3392 2006-01-25  Ankit Jain  <jankit@novell.com>
3393
3394         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3395         move definition to ..
3396         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3397         
3398 2006-01-25  Ankit Jain  <jankit@novell.com>
3399             Raja R Harinath  <rharinath@novell.com>
3400
3401         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3402         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3403         as necessary.
3404
3405 2006-01-25  Martin Baulig  <martin@ximian.com>
3406
3407         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3408         `MonoDebuggerThread' into debug-debugger.c.
3409
3410 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3411
3412         * profiler.c: fix printing of data.
3413
3414 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3415
3416         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3417           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3418
3419 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3420
3421         * object.c: fix deadlock related to string interning.
3422
3423 2006-01-23  Martin Baulig  <martin@ximian.com>
3424
3425         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3426
3427         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3428
3429 2006-01-23  Martin Baulig  <martin@ximian.com>
3430
3431         * mono-debug.h: Moved the prototypes of some functions which are
3432         used by the JIT here from mono-debug-debugger.h.
3433
3434 2006-01-21  Martin Baulig  <martin@ximian.com>
3435
3436         * Makefile.am: Don't install mono-debug-debugger.h.
3437
3438 2006-01-21  Martin Baulig  <martin@ximian.com>
3439
3440         * mono-debug-debugger.h: Enforce the private status of this header
3441         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3442         Moved some stuff from mono-debugger-jit-wrapper.h here.
3443
3444 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3445
3446         * class.c (mono_class_from_typeref): Add a sanity test to help
3447         catch lack of assembly load/search hooks.
3448
3449 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3450
3451         * marshal.c (emit_struct_conv): Relax the fields with same offset
3452         check even more. Fixes #77230.
3453
3454 2006-01-18  Martin Baulig  <martin@ximian.com>
3455
3456         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3457         argument; if false, we compare the uninstantiated signatures.
3458         (method_from_memberref): Compare the uninstantiated signatures;
3459         fixes #76417.
3460
3461 2006-01-18  Robert Jordan  <robertj@gmx.net>
3462
3463         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3464         Clear the weak link. Fixes bug #77170.
3465
3466         * gc.c (mono_gchandle_free):
3467         Reflect *-gc.c changes (tiny optimization).
3468
3469 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3470
3471         * metadata.c (mono_metadata_signature_dup): Applied patch from
3472         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3473         Fixes #77288.
3474
3475 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3476
3477         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3478         marshalling from native to managed code. Fixes #77230.
3479
3480 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3481
3482         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3483         connect. Fixes bug #77020.
3484
3485 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3486
3487         * class.c: fixed id assignement for nested interfaces (bug #77275).
3488         Added also better info for --print-vtable debugging.
3489
3490 2006-01-12  Martin Baulig  <martin@ximian.com>
3491
3492         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3493         interfaces on-the-fly; fixes #76625.
3494
3495         * class-internals.h
3496         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3497         don't need that anymore.
3498
3499 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3500
3501         * socket-io.c
3502         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3503         To avoid initing the nested_classes when not needed I turned the
3504         PeerCredData as a toplevel internal class, as it has to be shared
3505         anyways. 
3506
3507         Fixes the CASA issue.
3508
3509 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3510
3511         * domain.c: Accessors for MonoJitInfo
3512
3513         * profiler-private.h: Add jitinfo to the end jit hook
3514
3515         * profiler.[ch]: Define new hooks, called after jitting which give
3516         the MonoJitInfo that was compiled
3517
3518 2006-01-10  Martin Baulig  <martin@ximian.com>
3519
3520         * class.c (mono_class_setup_events): Add support for generic
3521         classes; fixes #76440.
3522
3523 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3524
3525         Fix #77160.
3526         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3527         on passed-in method.
3528
3529 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3530
3531         * object.c (mono_runtime_invoke_array): Add Nullable support.
3532
3533         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3534
3535 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3536
3537         * file-io.c: Don't consider sockets as directory and avoid an endless
3538         loop. Fix bug #76966.
3539
3540 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3541
3542         * object.c (mono_nullable_init): New helper function.
3543         (mono_nullable_box): Ditto.
3544
3545         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3546
3547         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3548
3549         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3550         
3551 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3552
3553         * class.c (mono_class_is_assignable_from): Make T assignable to 
3554         Nullable<T>.
3555
3556 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3557
3558         * appdomain.c: Bump corlib version to 46.
3559         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3560         serialization purpose) and changed ves_icall_System_Reflection_
3561         Assembly_get_code_base signature to accept a boolean (to escape, or 
3562         not, the assembly code base).
3563
3564 2005-12-23  Dick Porter  <dick@ximian.com>
3565
3566         * icall.c: 
3567         * threads-types.h: 
3568         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3569         CreateEvent icall now returns "created" boolean parameter.
3570
3571 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3572
3573         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3574         #76967.
3575
3576         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3577         when attr_klass is an interface. Fixes #77045.
3578
3579 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3580
3581         * marshal.c (emit_struct_conv): Fix previous patch.
3582         
3583         * marshal.c (emit_struct_conv): Add a check for fields with the same
3584         offset.
3585
3586 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3587
3588         Fix regression in Mono.C5.
3589         * class.c (mono_class_create_generic): If 'klass' is an interface
3590         set up the interface offsets.
3591         (mono_class_is_assignable_from): Don't throw away generic arguments.
3592
3593 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3594
3595         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3596         type parameters.
3597
3598 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3599
3600         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3601         dead store.
3602         (do_mono_metadata_parse_generic_class): Don't pass the current
3603         generic context when parsing the type being instantiated: it
3604         cannot use it, anyway.
3605
3606         * loader.c (method_from_memberref): Don't inflate a signature if
3607         it doesn't contain any type parameters.
3608
3609 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3610
3611         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3612
3613 2005-12-14  Martin Baulig  <martin@ximian.com>
3614
3615         * class.c
3616         (mono_type_get_name_recurse): Don't return null for type
3617         parameters and open generic classes.
3618         (mono_class_setup_methods): Don't exclude generic instances.
3619         (mono_get_unique_iid): Use different IDs for different
3620         instantiations of the same generic type.
3621         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3622         open generic instances; create a normal vtable for closed generic
3623         instances.
3624         (mono_class_setup_vtable_general): We're now also called for
3625         closed generic instances.
3626
3627         * reflection.c
3628         (mono_reflection_bind_generic_parameters): Correctly use
3629         mono_metadata_lookup_generic_inst() everywhere.
3630
3631 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3632
3633         * object.c (mono_class_create_runtime_vtable): Call 
3634         mono_class_setup_vtable ().
3635
3636         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3637         function.
3638         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3639         #76959.
3640
3641         * loader.c (mono_loader_set_error_type_load): Print the type load
3642         warnings to the console so they are more visible to the user.
3643         (mono_loader_set_error_method_load): Ditto.
3644
3645         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3646         is still broken.
3647         
3648         * reflection.c (ensure_runtime_vtable): Fix build.
3649
3650         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3651         doesn't work in all cases.
3652
3653 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3654
3655         * object.c (mono_array_new_full): Treat a single dimensional array
3656         with 0 lower bounds as an szarray. Fixes #76973.
3657
3658         * reflection.c (custom_attr_visible): Really fix this.
3659
3660 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3661
3662         * reflection.c (custom_attr_visible): Allow nested public attributes
3663         as well.
3664
3665         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3666         interface check.
3667
3668 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3669
3670         * class.c (set_generic_param_owner): Delete.
3671         (mono_class_create_from_typedef): Don't set ->owner field of
3672         generic parameters to "param containers" of enclosing classes.
3673         * reflection.c (mono_reflection_initialize_generic_parameter):
3674         Likewise.
3675
3676 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3677
3678         * reflection.c (custom_attr_visible): Fix build.
3679
3680 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3681
3682         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3683         private attributes.
3684         
3685         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3686         handling of null parameter defaults.
3687
3688 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3689
3690         * class.c (mono_class_from_generic_parameter): Don't set
3691         klass->generic_container.
3692         (my_mono_class_from_generic_parameter): Likewise.
3693
3694 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3695
3696         * reflection.c (load_public_key): Fix a warning.
3697         (method_encode_code): Fix unaligned accesses.
3698
3699 2005-12-07  Martin Baulig  <martin@ximian.com>
3700
3701         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3702
3703         * reflection.c
3704         (write_generic_param_entry): Encode our custom attrs.
3705
3706         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3707
3708 2005-12-07  Martin Baulig  <martin@ximian.com>
3709
3710         * reflection.c (encode_new_constraint): Removed; we don't use the
3711         `NewConstraintAttribute' anymore.
3712
3713 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3714
3715         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3716         not fire a TypeResolve event when Assembly.GetType () is called.
3717
3718 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3719
3720         Beginning of support for nullable types in the runtime. Parts of
3721         this patch are from Martin.
3722
3723         * appdomain.c (MONO_CORLIB_VERSION): Bump
3724
3725         * domain.c (mono_init_internal): get the nullable type
3726
3727         * class.c (mono_class_is_nullable): New method
3728         (mono_class_get_nullable_param): New mehod
3729         (mono_class_create_generic): In types T? set cast_class to T
3730
3731         * class-internals.h (MonoDefaults): new nullable default class
3732         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3733         new methods.
3734
3735 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3736
3737         * metadata.c (select_container): New.  Refactor code to select the
3738         appropriate GenericContainer given the type of generic parameter
3739         we are looking for.
3740         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3741         not a MonoGenericContext.  Use select_container.  Update parameters.
3742         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3743         and MONO_TYPE_MVAR.
3744         (unwrap_arrays): Remove duplicate tests.
3745         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3746         generic instantiated class to find any arguments that are generic
3747         parameters.
3748         (mono_type_create_from_typespec_full): Use find_generic_param to
3749         avoid evicting some generic instantiations from the typespec
3750         cache.
3751
3752 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3753
3754         * reflection.c: fixed writing of doubles on ARM FPA.
3755
3756 2005-12-02  Robert Jordan  <robertj@gmx.net>
3757
3758         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3759
3760 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3761
3762         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3763         least on SUSE 10 they are not the same (on debian, they are just the
3764         same thing).
3765
3766 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3767
3768         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3769         DeclaringType for VARs and MVARs.
3770         * class.c (set_generic_param_owner): Fix initialization of owner
3771         fields.
3772
3773 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3774
3775         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3776
3777 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3778
3779         * threadpool.c: workaround for a bug that shows up on the Mac:
3780         select()+connect() on a blocking socket is not like it should
3781         be, so we proceed to connect() in that case, wasting the I/O
3782         threadpool thread until connect succeedes. Fixes bug #75436.
3783
3784 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3785
3786         * threadpool.c: fix typo when setting file descriptor states.
3787
3788 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3789
3790         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3791         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3792         create a temporary signature container.
3793         (mono_metadata_parse_generic_param): Update to changes.
3794         (mono_type_create_from_typespec_full): Update to changes.
3795         * loader.c (method_from_memberref): Don't use a
3796         MonoGenericContainer while parsing a memberref signature.
3797         (method_from_methodspec): Remove dead-store of the 'container'
3798         variable.  It's overwritten before use.
3799
3800         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3801         checks tighter.
3802         (mono_metadata_parse_generic_param): Likewise.
3803         * loader.c (find_method_in_class): Does not need a
3804         MonoGenericContainer.  Use 'mono_method_signature' rather than
3805         'mono_method_signature_full'.
3806         (find_method, mono_get_method_constrained, method_from_memberref):
3807         Update to changes.
3808
3809         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3810         owner-less generic-parameters are never evicted from the typespec
3811         cache.
3812
3813         * loader.c (method_from_memberref): Don't use the current context
3814         when parsing signatures.
3815         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3816
3817         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3818         side-effects in g_assert.
3819         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3820         that we don't potentially lose information.
3821
3822 2005-11-26  Dick Porter  <dick@ximian.com>
3823
3824         * icall.c:
3825         * threads.c: icalls to implement basic (ie, not named)
3826         System.Threading.Semaphore.
3827
3828 2005-11-24  Dick Porter  <dick@ximian.com>
3829
3830         * process.c
3831         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3832         Use GetProcessId() if it's available.
3833
3834 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3835
3836         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3837
3838 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3839             Ankit Jain  <jankit@novell.com>
3840
3841         * loader.c (mono_get_method_from_token): Initialize 'method' field
3842         of all generic parameters before parsing the signature.  Remove
3843         code that "fixed"-up MVAR references.
3844
3845 2005-11-23  Ankit Jain  <jankit@novell.com>
3846
3847         * metadata.c (mono_metadata_has_generic_params):
3848         (mono_metadata_load_generic_param_constraints):
3849         (mono_metadata_load_generic_params): Move duplicate code ...
3850         (mono_metadata_get_generic_param_row): ... here. Returns the
3851         first row-id in GenericParam table for a given owner (token).
3852         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3853         prototype.
3854
3855 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3856             Ankit Jain  <jankit@novell.com>
3857
3858         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3859         comparing VARs too.
3860         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3861         type->data.generic_param only if the type is an MVAR.
3862         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3863         leak owner-less VARs and MVARs into managed space.
3864
3865 2005-11-21  Martin Baulig  <martin@ximian.com>
3866
3867         * class-internals.h
3868         (MonoMethod): Moved the `generic_container' here from
3869         `MonoMethodNormal' since we now also need it for
3870         `MonoMethodPInvoke';
3871         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3872         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3873         an union containing both `MonoMethodNormal' and
3874         `MonoMethodPInvoke'.
3875
3876         * loader.c
3877         (mono_get_method_from_token): Allow implementing generic methods
3878         as interncalls.
3879
3880         * threads.c
3881         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3882         icall.
3883
3884 2005-11-17  Dick Porter  <dick@ximian.com>
3885
3886         * icall.c: 
3887         * process.h: 
3888         * process.c: Split the Process Start_internal icall into
3889         ShellExecuteEx_internal and CreateProcess_internal, which are
3890         called depending on whether UseShellExecute is true.  Fixes bug
3891         76670.
3892
3893         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3894
3895 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3896
3897         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3898         'msize' parameters, use the information in 'mspec' instead.
3899         (emit_object_to_ptr_conv): Ditto.
3900
3901         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3902         fields out of order. Fixes #76733.
3903
3904 2005-11-17  Ankit Jain  <jankit@novell.com>
3905
3906         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3907
3908 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3909
3910         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3911           bug #76575.
3912
3913 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3914
3915         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3916         for types with non-auto layout. Fixes #76717.
3917
3918 2005-11-16  Ankit Jain  <jankit@novell.com>
3919
3920         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
3921         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
3922         if generic_context is null.
3923           (mono_metadata_generic_param_equal): param->owner can be null.
3924           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
3925         null.
3926
3927 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3928
3929         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
3930         the correct value.
3931
3932 2005-11-15  Martin Baulig  <martin@ximian.com>
3933
3934         * object.c (set_value): Use mono_class_from_mono_type() instead of
3935         the hack for generic instances; fixes #76136.
3936
3937 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
3938
3939         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
3940         fields.
3941
3942         * image.c (load_metadata_ptrs): Initialize the new fields.
3943
3944         * reflection.c (create_dynamic_mono_image): Ditto.
3945
3946         * reflection.c (build_compressed_metadata): Use the new fields.
3947
3948         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
3949         icall.
3950
3951         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
3952         icall.
3953         
3954 2005-11-15  Ankit Jain  <jankit@novell.com>
3955             Raja R Harinath  <harinath@gmail.com>
3956
3957         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
3958         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
3959         new per-generic_container cache if the cached MonoType's context matches
3960         the current context.
3961           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
3962         to the expected context.
3963           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
3964
3965 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3966
3967         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
3968         we changed the signature of an icall.
3969         * icall.c: Modify to mono_double_ParseImpl return true/false 
3970         depending on the success, instead of throwing the exception. This will
3971         help us in Double.TryParse methods.
3972         
3973 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
3974
3975         * marshal.c (emit_marshal_object): Throw an exception when
3976         marshalling 'object' instead of crashing. Fixes #76696.
3977
3978 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3979
3980         * class-internals.h: Add prototype for mono_type_get_full_name ().
3981
3982 2005-11-11  Dick Porter  <dick@ximian.com>
3983
3984         * threads.c (mono_thread_manage): Make sure the main thread has
3985         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
3986
3987 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3988
3989         * loader.c (mono_loader_set_error_type_load): Log a warning to the
3990         console about the missing type.
3991         (mono_loader_set_error_method_load): Ditto.
3992
3993 2005-11-09  Miguel de Icaza  <miguel@novell.com>
3994
3995         * mono-config.c (mono_get_config_dir): Set the system defaults if
3996         none is specified.
3997
3998         * assembly.c (mono_set_dirs): New API entry point to set the
3999         assembly and the config directory in one call
4000
4001 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4002
4003         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4004         the ftnptr was created from a delegate in a domain other than the
4005         current domain. Fixes #75377.
4006
4007         * exception.h exception.c: Add mono_get_exception_not_supported ().
4008
4009 2005-11-08  Martin Baulig  <martin@ximian.com>
4010
4011         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4012
4013 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4014
4015         * security-manager.h: Added definitions to deal with strongname key 
4016         pairs bigger (and smaller) than 1024 bits.
4017         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4018         adjust wrt the public key length being used.
4019
4020 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4021
4022         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4023           Windows build (r51396-51397).
4024
4025 2005-11-03  Martin Baulig  <martin@ximian.com>
4026
4027         * class.c (mono_class_setup_vtable_general): Also add generic
4028         methods to the vtable; fixes #76581.
4029
4030 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4031
4032         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4033         sure that we lookup GetString method from the System.Text.Encoding
4034         class, not the derived class or we get an empty method.
4035
4036         Fixed class #76612.
4037
4038 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4039
4040         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4041         if it has been previously set (embedders). 
4042
4043         Make mono_set_rootdir available also on Unix.
4044
4045 005-10-24  Robert Jordan  <robertj@gmx.net>
4046
4047         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4048
4049 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4050
4051         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4052         only calls which are made to native code use this flag.
4053
4054         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4055
4056 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4057
4058         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4059         Add support for FieldBuilders.
4060
4061 2005-10-29  Martin Baulig  <martin@ximian.com>
4062
4063         * mono-debug.c
4064         (mono_debug_using_mono_debugger): New public method; returns
4065         whether we're running inside the debugger.
4066
4067 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4068
4069         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4070         for Method/Constructor/FieldBuilders.
4071
4072 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4073
4074         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4075         and fields as well.
4076
4077 2005-10-26  Martin Baulig  <martin@ximian.com>
4078
4079         * mono-debug-debugger.c
4080         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4081
4082 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4083
4084         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4085         integer to isspace.
4086
4087 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4088
4089         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4090         when passing valuetypes byref. Fixes #76502.
4091
4092 2005-10-19  Jackson Harper  <jackson@ximian.com>
4093
4094         * profiler.c: Don't put a . in front of types that are not in a
4095         namespace.
4096
4097 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4098
4099         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4100
4101 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4102
4103         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4104         #76436.
4105         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4106
4107 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4108
4109         * assembly.c metadata-internals.h icall.c: Define an additional
4110         parameter for mono_assembly_name_parse_full, so we can avoid creating
4111         S.R.AssemblyName.Version when no version info wasn't passed.
4112         
4113 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4114
4115         * class.c (mono_type_get_full_name): Reimplement method that was
4116         removed. 
4117
4118         * image.c: Some docs
4119
4120 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4121
4122         * profiler.c (output_newobj_profile): Fix printing of Total memory
4123         on x86.
4124
4125 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4126
4127         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4128
4129 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4130
4131         * threads.c: remove debug output.
4132
4133 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4134
4135         * threads.c (mono_thread_manage): Fix crashes if more than 64
4136         threads need to be aborted. Hopefully fixes #75899.
4137
4138         * assembly.c (mono_stringify_assembly_name): New helper function.
4139
4140         * class.c: Use mono_stringify_assembly_name instead of the similar
4141         static function.
4142
4143         * assembly.h assembly.c: Add support for calling a postload search 
4144         hook if an assembly cannot be loaded.
4145
4146         * appdomain.c: Register new search hooks which call the AssemblyResolve
4147         events in AppDomain. Fixes #75231
4148
4149 2005-10-07  Martin Baulig  <martin@ximian.com>
4150
4151         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4152         methods without debug info.
4153
4154 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4155
4156         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4157         wrappers.
4158
4159 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4160
4161         * file-io.c: now that we return symlinks, use lstat and, when the file
4162         is a symbolic link, stat, to get the file attributes. Also avoid the
4163         conversion to/from utf16/external.
4164
4165 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4166
4167         * class.c (mono_class_layout_fields): Compute klass->has_references
4168         correctly if an embedded valuetype is not yet initialized. Fixes
4169         #76331.
4170
4171 2005-10-04  Martin Baulig  <martin@ximian.com>
4172
4173         * metadata.c
4174         (mono_metadata_load_generic_param_constraints): New public
4175         function; splitted the constraints loading out from
4176         mono_metadata_load_generic_params().
4177
4178         * class.c (mono_class_create_from_typedef): Call
4179         mono_metadata_load_generic_param_constraints() after setting up
4180         the type and creating our parent; fixes #75329.
4181
4182 2005-10-04  Martin Baulig  <martin@ximian.com>
4183
4184         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4185         non-dynamic parent classes.
4186
4187 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4188
4189         * file-io.c : win32 build fix (ETXTBSY seems not found).
4190
4191 2005-10-04  Martin Baulig  <martin@ximian.com>
4192
4193         * reflection.c
4194         (mono_image_get_methodspec_token): Make the cache actually work;
4195         fixes #75974.
4196
4197 2005-10-04  Martin Baulig  <martin@ximian.com>
4198
4199         * class.c (mono_class_name_from_token): Removed the unneccessary
4200         `MonoGenericContext *' argument.
4201
4202 2005-10-04  Martin Baulig  <martin@ximian.com>
4203
4204         * loader.c
4205         (method_from_methodspec): Make the caching work again; fixes the
4206         performance regression from #76262.
4207
4208 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4209
4210         * file-io.c:
4211         * file-io.h:
4212         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4213         GetFileSystemEntries that performs the same work but without going
4214         into io-layer, locking, etc.
4215
4216 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4217
4218         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4219         ThreadState_Stopped as well. Fixes #76047.
4220
4221 2005-09-29  Martin Baulig  <martin@ximian.com>
4222
4223         * class.c
4224         (inflate_generic_context): If the new context has a `gmethod', set
4225         its `container' that that gmethod's `container'.
4226
4227         * metadata.c
4228         (mono_metadata_parse_generic_param): Simplify things;
4229         `generic_container = generic_context->container;' is just fine.
4230
4231         * loader.c (method_from_methodspec): Code cleanups.
4232
4233 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4234
4235         * decimal.c: fix warning (and let gcc generate correct
4236         code on ARM with optimizations).
4237
4238 2005-09-28  Martin Baulig  <martin@ximian.com>
4239
4240         * loader.c
4241         (method_from_memberref): Added `MonoGenericContext *class_context'
4242         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4243         (method_from_methodspec): If we're a memberref, use the enclosing
4244         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4245
4246 2005-09-28  Martin Baulig  <martin@ximian.com>
4247
4248         * object.c (mono_runtime_invoke_array): Added support for
4249         MONO_TYPE_GENERICINST; fixes #75917.
4250
4251 2005-09-27  Martin Baulig  <martin@ximian.com>
4252
4253         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4254         `k->byval_arg.type' to determine the actual type.
4255
4256         * loader.c (method_from_methodspec): Removed some hacks.
4257
4258 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4259
4260         * class-internals.h (mono_field_is_deleted): Do the test for
4261         rtspecialname before we check the actual name of the field. This
4262         prevents us from dereferencing a pointer into the string table,
4263         saving us from accessing a few pages
4264
4265         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4266         macros. This will allow a deadlock debugger to easily be plugged
4267         in.
4268
4269 2005-09-27  Martin Baulig  <martin@ximian.com>
4270
4271         * loader.c (method_from_methodspec): Create a "signature"
4272         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4273
4274 2005-09-27  Martin Baulig  <martin@ximian.com>
4275
4276         * class.c
4277         (inflate_generic_class): Correctly set the new context's
4278         container.
4279
4280         * loader.c
4281         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4282         instead of a `MonoGenericContext *'.
4283         (mono_method_signature_full): Take a `MonoGenericContainer *'
4284         instead of a `MonoGenericContext *'.
4285
4286         * metadata.c
4287         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4288         instead of a `MonoGenericContext *'.
4289         (mono_metadata_parse_method_signature_full): Likewise.
4290
4291 2005-09-26  Martin Baulig  <martin@ximian.com>
4292
4293         * class.c
4294         (mono_class_from_generic_parameter): Set `klass->generic_container'
4295         (mono_class_from_generic_parameter): Likewise.
4296         (mono_bounded_array_class_get): We inherit the generic container
4297         from the element class.
4298
4299         * loader.c
4300         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4301         argument rather than computing it here.
4302         (method_from_memberref): Correctly set the generic context before
4303         parsing the signature.  Fixes #75681.
4304
4305 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4306
4307         * object.c (mono_class_has_special_static_fields): Fix warnings.
4308
4309 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4310
4311         * assembly.c: Add parse_public_key function, to
4312         par the public keys. Also added mono_assembly_name_parse_full,
4313         to define it the parsed key should be freed or not.
4314         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4315         to parse a long format assembly name.
4316         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4317         private, since calling it to preserve the key requires
4318         freeing it manually.
4319         
4320 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4321
4322         * locales.c : removed HAVE_ICU part.
4323
4324 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4325
4326         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4327         field_is_special_static if the klass has no special static fields.
4328
4329         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4330         (MonoCachedClassInfo): Likewise.
4331
4332         * object.c (mono_class_has_special_static_fields): New helper function.
4333
4334 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4335
4336         * class.c (mono_class_create_from_typedef): Don't call 
4337         interfaces_from_typedef_full for enums.
4338         (mono_class_create_from_typedef): Compute the base types of enums directly
4339         without calling mono_class_setup_fields ().
4340         (mono_class_find_enum_basetype): New helper function.
4341
4342         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4343         one place inside the string heap.
4344         
4345 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4346
4347         * class.c: locking fixes, code cleanups, some docs added.
4348         Allocate some data structures in the image mempool.
4349
4350 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4351
4352         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4353         the example code.
4354         
4355 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4356
4357         * class-internals.h, class.c, reflection.c: reduce memory taken by
4358         MonoClass.
4359
4360 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4361
4362         * metadata.c, metadata.h, loader.h: documentation updates, code and
4363         API cleanups.
4364
4365 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4366
4367         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4368         the example code.
4369
4370         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4371         page faults caused by the runtime while reading metadata.
4372
4373 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4374
4375         * socket-io.c: the field names were changed 3 months ago and no one
4376         realized until bug #76077 got filed!
4377
4378 2005-09-20  Martin Baulig  <martin@ximian.com>
4379
4380         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4381
4382 2005-09-20  Martin Baulig  <martin@ximian.com>
4383
4384         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4385         write the rank into the class entry.
4386
4387 2005-09-20  Martin Baulig  <martin@ximian.com>
4388
4389         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4390
4391 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4392
4393         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4394
4395         * icall.c (custom_attrs_defined_internal): New icall.
4396
4397         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4398         function.
4399         (mono_custom_attrs_construct_by_type): New helper function.
4400
4401 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4402
4403         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4404         terminate the resulting string. Fixes #76123.
4405
4406 2005-09-16  Martin Baulig  <martin@ximian.com>
4407
4408         * mono-debug.c
4409         (mono_debug_add_method): Ignore inflated methods for the moment.
4410
4411 2005-09-14  Martin Baulig  <martin@ximian.com>
4412
4413         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4414
4415 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4416
4417         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4418         return a success/failure indication.
4419         (mono_metadata_interfaces_from_typedef_full): Ditto.
4420         (get_constraints): Ditto.
4421
4422 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4423
4424         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4425         
4426         * marshal.c (emit_marshal_array): Add support for returning string
4427         arrays from delegates. Fixes #76063.
4428
4429         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4430
4431 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4432
4433         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4434         icall.
4435
4436 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4437
4438         * reflection.c icall.c: Fix after mono_get_exception_type_load
4439         signature change.
4440
4441         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4442         (mono_assembly_load_reference): Use the new helper.
4443
4444         * class-internals.h (MonoLoaderError): New structure containing 
4445         information about type loading errors.
4446
4447         * class-internals.h loader.c: Add APIs to store per-thread loader
4448         error information.
4449
4450         * loader.c class.c: Set the loader error if needed.
4451
4452         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4453
4454 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4455
4456         * decimal.c: fixed to handle the broken ARM fp format.
4457
4458 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4459
4460         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4461         broken.
4462
4463 2005-09-06  Martin Baulig  <martin@ximian.com>
4464
4465         * domain.c (supported_runtimes): Added v2.0.50727.
4466
4467 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4468
4469         * culture-info.h: reduce the size of some structures.
4470
4471 2005-09-05  Martin Baulig  <martin@ximian.com>
4472
4473         Reflect latest API changes in the August CTP.
4474
4475         * icall.c
4476         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4477         ("MonoType.HasGenericArguments"): Removed.
4478         ("MonoMethod.BindGenericParameters"): Renamed to
4479         "MakeGenericMethod".
4480         ("MethodBuilder.BindGenericParameters"): Renamed to
4481         "MakeGenericMethod".    
4482
4483 2005-09-05  Martin Baulig  <martin@ximian.com>
4484
4485         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4486
4487 2005-09-05  Martin Baulig  <martin@ximian.com>
4488
4489         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4490
4491         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4492         generic_container is non-NULL.
4493
4494 2005-09-05  Martin Baulig  <martin@ximian.com>
4495
4496         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4497
4498         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4499
4500 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4501
4502         * reflection.c (encode_locals,
4503         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4504         for large generic types.
4505
4506 2005-09-05  Martin Baulig  <martin@ximian.com>
4507
4508         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4509
4510         * class.c (mono_dup_array_type): New public method.
4511         (mono_metadata_signature_deep_dup): New public method.
4512         (dup_type): Correctly duplicate array and function types.
4513
4514 2005-09-05  Martin Baulig  <martin@ximian.com>
4515
4516         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4517
4518         * reflection.c (get_default_param_value_blobs): Handle generic types
4519         and generic methods.
4520
4521 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4522
4523         * class.c: Fixed error reporting (method/class were inversed) for 
4524         inheritance demands.
4525         * security-manager.c|h: Added the AppDomain when calling the managed
4526         System.Security.SecurityManager.InheritanceDemand method.
4527
4528 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4529
4530         * reflection.c (encode_marshal_blob): 'marshaltype' and
4531         'marshaltyperef' are alternate sources for the custom marshaler
4532         name.
4533
4534 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4535
4536         * class.c: fix creation of array classes with rank == 1
4537         (patch by Ankit Jain <jankit@novell.com>).
4538
4539 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4540
4541         * object.c: fix check for creating the bound data for arrays vs
4542         szarrays.
4543
4544 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4545
4546         * object.c: configuration file name is now based on the executable name,
4547         not the image name. Fixes bug #75931.
4548
4549 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4550
4551         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4552         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4553
4554 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4555
4556         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4557
4558 2005-08-24  Ankit Jain  <jankit@novell.com>
4559             Raja R Harinath  <rharinath@novell.com>
4560
4561         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4562           called by it recursively.
4563           (mono_class_init): Remove special case in pending_init handling, since it's
4564           superseded by the fix to mono_class_from_typeref.
4565
4566 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4567
4568         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4569         BROKEN_THREAD_START stuff.
4570
4571 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4572
4573         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4574         trampoline.
4575
4576         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4577         
4578         * object.c (mono_delegate_ctor): Replace the original function address with
4579         a delegate trampoline.
4580
4581 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4582
4583         * icall.c: add boolean argument to base64_to_byte_array and 
4584         InternalFromBase64String to control whether a whitespace-only string
4585         is allowed (or should casue a FormatException to be thrown). We need
4586         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4587         to match the MS behaviour in both profiles.
4588         * appdomain.c: Bump corlib version.
4589
4590 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4591
4592         This patch implements a big portion of publisher policy
4593         support, used to bind assembly versions and redirect
4594         one assembly from version A to version B.
4595
4596         * assembly.c:
4597         New GSList loaded_assembly_bindings, for storing the cached
4598         assembly bindings.
4599         (assembly_binding_maps_name): New static function for checking if a 
4600         assembly binding information maps an assembly name.
4601         (mono_assembly_binding_info_free): New function for freeing
4602         assembly binding information resources.
4603         (get_publisher_policy_info): New static function for retrieving 
4604         assembly binding information from a MonoImage.
4605         (compare_versions): New static function for comparing an assembly
4606         binding information data and the version of an assembly name.
4607         (check_policy_versions): New static function for checking if an
4608         assembly binding info mapping an assembly name is valid for it.
4609         (mono_assembly_load_publisher_policy): New static function for
4610         loading the 'policy.major.minor.MyAssembly' image for an assembly
4611         with an assembly name 'aname'.
4612         (mono_assembly_bind_version): New static function for updating
4613         assembly redirection.
4614         (mono_assembly_apply_binding): New static function for applying
4615         assembly binding.
4616         (search_binding_loaded): New static function for searching 
4617         loaded assembly binding infos in the cache domain.
4618         (mono_assembly_load_full): Don't apply assembly binding for
4619         reflection only assemblies.
4620
4621         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4622         which contains information about assembly binding. Also
4623         declare signature for mono_config_parse_publisher_policy ()
4624         function, used to retrieve pub policy info.
4625         
4626         * mono-config.c:
4627         (publisher_policy_start): New static function used to parse publisher 
4628         policy config files.
4629         (publisher_policy_parser): New static MonoParseHandler containing 
4630         the functions used when parsing config files.
4631         (mono_config_parse_publisher_policy): New function for parsing
4632         publisher policy files.
4633         
4634 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4635
4636         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4637
4638         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4639
4640         * object.c (mono_get_addr_from_ftnptr): New helper function.
4641
4642         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4643
4644         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4645
4646 2005-08-19  Dick Porter  <dick@ximian.com>
4647
4648         * threads.c, threads.h, appdomain.c, appdomain.h,
4649         profiler-private.h, monitor.c, object.c, object-internals.h,
4650         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4651         store the thread ID, so it can hold a 64 bit value if needed.
4652
4653 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4654
4655         * reflection.c (mono_reflection_create_dynamic_method): Store the
4656         handle class into the method references as well so ldtoken works in
4657         dynamic methods.
4658
4659         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4660         types.
4661
4662 2005-08-19  Ankit Jain <jankit@novell.com>
4663
4664         Fix #75847.
4665         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4666           here rather than using the method signature of a arbitrary function
4667           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4668           two arguments.
4669           Hack done with Harinath.
4670
4671 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4672
4673         * threadpool.c: disable printing stack traces when we get a exception
4674         in a threadpool thread. I need to do more testing to figure out which
4675         cases actually print this. Fixes bug #75828.
4676
4677 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4678
4679         * icall.c: there might be ignored whitespace after the last '='. This
4680         fixes length computation and bug #75840.
4681
4682 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4683
4684         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4685         well. Fixes #75809.
4686
4687         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4688         #75784.
4689         
4690         * reflection.c (create_custom_attr_data): Ditto.
4691
4692 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4693
4694         * locales.c, culture-info.h : removed RegionLCIDMap.
4695         * culture-info-tables.h : regenerated.
4696
4697 2005-08-16  Martin Baulig  <martin@ximian.com>
4698
4699         * class.c (mono_type_get_name_recurse): Small fix.
4700
4701 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4702
4703         * locales.c : indentation fixie.
4704
4705 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4706
4707         * object-internals.h,
4708           locales.h,
4709           locales.c,
4710           culture-info.h,
4711           icall.c : added RegionInfo table support.
4712         * culture-info-table.h : regenerated for region support.
4713
4714 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4715
4716         * reflection.c (resolve_object): handle all kinds of MonoMethod
4717         including generic ones
4718
4719 2005-08-12  Ankit Jain <jankit@novell.com>
4720
4721         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4722           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4723
4724 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4725
4726         * process.c: Don't close a thread handle when it's NULL. This is a
4727         workaround for bug #75733.
4728
4729 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4730
4731         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4732
4733 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4734
4735         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4736
4737 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4738
4739         * threadpool.c: if a work item in the thread pool has a callback that
4740         catches a exception, don't propagate it after invoking the callback.
4741         Fixes bug #75336.
4742
4743 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4744
4745         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4746
4747         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4748
4749         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4750
4751         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4752
4753 2005-08-03  Ankit Jain  <jankit@novell.com>
4754
4755         Fix #75683.
4756         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4757           PInvoke calling convention is 0.
4758
4759 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4760
4761         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4762         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4763
4764 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4765
4766         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4767         to handle threads not started by the GC (patch by Michael Meeks
4768         <michael.meeks@novell.com>).
4769
4770 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4771
4772         * reflection.c: Make buffer used in emitting types larger for some
4773         big generic types (patch by Michal Moskal).
4774
4775 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4776
4777         * mono-debug.c: Fix some (not all) alignment problems.
4778
4779 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4780
4781         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4782         Invoke mono_image_load_from_data_full passing the refonly
4783         parameter.
4784
4785         * assembly.c
4786         (mono_assembly_open_from_bundle): Add the refonly argument, 
4787         in order to pass it to other methods it calls to.
4788         (do_mono_assembly_open): Add the refonly argument, in order 
4789         to pass it to other methods it calls to.
4790         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4791         the refonly parameter to it.
4792
4793         * image.c: Add loaded_images_refonly_hash and
4794         loaded_images_refonly_guid_hash to cache the reflection
4795         only loaded images.
4796         (mono_images_init): Initialize the hash tables used for
4797         caching the reflection only images.
4798         (load_modules): Invoke mono_image_open_full passing the refonly
4799         parameter to load the modules the correct way.
4800         (build_guid_table): Add the refonly argument, to re-build the 
4801         correct hash table.
4802         (do_mono_image_open): Added the refonly argument, in order to
4803         define it for the loaded image.
4804         (mono_image_loaded_full): New function, which receives an
4805         additional parameter to look for the image in the refonly or
4806         non-refonly section.
4807         (mono_image_loaded): Updated, using mono_image_loaded_full.
4808         (mono_image_loaded_by_guid_full): The same case that happens
4809         with mono_image_loaded_full.
4810         (mono_image_loaded_by_guid): Likewise.
4811         (register_image): Use the ref_only variable inside MonoImage
4812         to decide in which hash table store the current image.
4813         (mono_image_open_from_data_full): Rename
4814         mono_image_open_from_data to mono_image_open_from_data_full,
4815         adding the refonly argument, to define the ref_only variable 
4816         inside MonoImage.
4817         (mono_image_open_from_data): Return 
4818         mono_image_open_from_data_full.
4819         (mono_image_open_full): Rename mono_image_open to
4820         mono_image_open_full, receiving the new refonly argument,
4821         to pass it to inner methods.
4822         (mono_pe_file_open): Update this function, to open
4823         a MonoImage as a non-refonly image.
4824         (mono_image_close): Use the refonly variable inside
4825         MonoImage to remove the image from the correct caches.
4826
4827         * image.h: Add the signatures of mono_image_open_full,
4828         mono_image_open_from_data_full, mono_image_loaded_full,
4829         mono_image_loaded_by_guid_full.
4830
4831         * metadata-internals.h: Add the ref_only field to 
4832         MonoImage.
4833         
4834 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4835
4836         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4837         Fix the last behavior, which used to load the assemblies and
4838         extract MonoReflectionAssemblyName information, instead of
4839         extract it from the metadata tables. Needed for Reflection
4840         Only assemblies.
4841         
4842 2005-07-29  Martin Baulig  <martin@ximian.com>
4843
4844         * mono-debug-debugger.c
4845         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4846         not initialized.
4847
4848         * mono-debug.c
4849         (mono_debug_address_from_il_offset): Check whether we have
4850         debugging support before attempting to take the lock.
4851         (mono_debug_source_location_from_address): Likewise.
4852         (mono_debug_source_location_from_il_offset): Likewise.
4853         (mono_debug_il_offset_from_address): Likewise.
4854         (mono_debug_address_from_il_offset): Likewise.
4855
4856 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4857
4858         * class.c (mono_class_from_name_case): Add support for dynamic images.
4859         Fixes #75650.
4860
4861         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4862         for #75479.
4863
4864 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4865         
4866         * reflection.c (mono_method_get_object): Fix warning.
4867
4868 2005-07-28  Martin Baulig  <martin@ximian.com>
4869
4870         * mono-debug.c
4871         (mono_debug_add_wrapper): Also write the wrapper type.
4872
4873 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4874
4875         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4876         
4877         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4878         data indicates the class has none.
4879
4880 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4881
4882         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4883         loader lock with the debugger lock. Prevents deadlocks for beagle.
4884
4885         Beagle can now run on an smp box for a weekend without any
4886         issues. Woohoo!
4887
4888 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4889
4890         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4891         in a module. Fixes #75629.
4892
4893 2005-07-26  Martin Baulig  <martin@ximian.com>
4894
4895         * mono-debug.c (mono_debug_add_wrapper): New static method.
4896         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4897         interncall or a wrapper.
4898
4899         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4900         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4901         (MONO_DEBUGGER_VERSION): Bump to 51.
4902
4903         * mono-debug-debugger.c
4904         (mono_debugger_add_type): Removed this empty function.
4905         (mono_debugger_add_method): Likewise.
4906
4907 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4908
4909         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4910         before accessing method->slot.
4911
4912 2005-07-21  Jb Evain  <jbevain@gmail.com>
4913
4914         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4915         Fixes #75010.
4916
4917 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4918
4919         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
4920         #75587.
4921
4922 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
4923
4924         * image.h image.c: Add mono_image_get_guid () API function.
4925
4926 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
4927
4928         There were issues when multiple threads tried to load
4929         assemblies. A deadlock was created between assemblies_mutex and
4930         mono_domain_assemblies_lock. This fixes the issue by making the
4931         assembly ref counting be lock free. See bug 75586.
4932         
4933         * image.c (mono_image_close): The add ref function here was using
4934         Interlocked operations while the unref was using a mutex and a
4935         --. I don't think this was ever a bug that would be exposed in a
4936         non-pendantic way (ie, by an embedder doing a ref on one thread
4937         and an unref on another), but for the sake of correctness, this is
4938         now Interlocked.
4939
4940         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
4941         (mono_assembly_load_reference): Call mono_assembly_addref rather
4942         than touching the refcount ourselves.
4943         (mono_assembly_close): Use InterlockedDecrement to unref the
4944         assembly. Don't acquire the lock unless it is actually needed.
4945
4946 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4947
4948         * class.c (mono_class_layout_fields): Fix calculation of has_references
4949         for generic types.
4950
4951 2005-07-12  Martin Baulig  <martin@ximian.com>
4952
4953         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4954
4955         * metadata.c
4956         (mono_type_hash): Provide better hashing for generic instances.
4957         (mono_generic_inst_hash): Improve hashing.
4958         (mono_generic_class_hash): Likewise.
4959
4960         * reflection.c (mymono_metadata_type_hash): Improve hashing for
4961         generic instances.
4962
4963 2005-07-12  Martin Baulig  <martin@ximian.com>
4964
4965         * reflection.c (mono_reflection_create_runtime_class): Remove the
4966         hack for generic type definitions and non-`Run' assemblies.
4967         (mono_reflection_bind_generic_parameters): Also use
4968         `klass->wastypebuilder' to check for TypeBuilders.
4969
4970 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4971
4972         * class.c (mono_class_layout_fields): Fix calculation of has_references
4973         for generic types.
4974
4975         * class.c (inflate_generic_class): Fix a leak.
4976         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
4977         for generic types.
4978
4979 2005-07-11  Martin Baulig  <martin@ximian.com>
4980
4981         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
4982         on error.
4983
4984 2005-07-11  Martin Baulig  <martin@ximian.com>
4985
4986         * loader.c (find_method): Also lookup in
4987         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
4988
4989 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4990
4991         * appdomain.c (mono_domain_unload): Don't free the error message
4992         before passing it to mono_get_exception_...
4993
4994         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
4995         
4996 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
4997
4998         * threads.c: try to better guess an available RT signal (bug #75387).
4999
5000 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5001
5002         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5003         and CACHE_OBJECT.
5004
5005 2005-07-07  Martin Baulig  <martin@ximian.com>
5006
5007         * class.c (mono_type_get_name_full): Return NULL for
5008         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5009         fixes #75408.
5010
5011 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5012
5013         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5014         exit the appdomain as well being aborted.
5015
5016         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5017         change back to the root domain after calling managed code. This enables
5018         appdomains using threadpools to be unloaded.
5019
5020 2005-07-07  Martin Baulig  <martin@ximian.com>
5021
5022         * class-internals.h
5023         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5024         into `MonoDynamicGenericClass' since we only need it for dynamic
5025         types.
5026
5027         * reflection.c (mono_class_bind_generic_parameters): We don't need
5028         to compute the `parent' here.
5029
5030 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5031
5032         * culture-info-table.h : regenerated.
5033
5034 2005-07-06  Martin Baulig  <martin@ximian.com>
5035
5036         * icall.c
5037         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5038
5039         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5040
5041 2005-07-06  Martin Baulig  <martin@ximian.com>
5042
5043         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5044         we're doing a signature-only comparision; fixes #74945.
5045
5046 2005-07-06  Martin Baulig  <martin@ximian.com>
5047
5048         * class-internals.h (MonoGenericClass): Moved some things out into
5049         a new `MonoInflatedGenericClass' type.  
5050         (MonoInflatedGenericClass): New type; the `klass' of a
5051         `MonoGenericClass' is now computed lazyly in
5052         mono_get_inflated_generic_class().      
5053
5054         * class.c (mono_get_inflated_generic_class): New public function.
5055         (mono_class_inflate_generic_method): Removed the unused
5056         `MonoClass *' argument.
5057         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5058         all the methods.
5059         (mono_class_create_generic): Make this static and merge it with
5060         mono_class_create_generic_2(); we're now called automatically from
5061         mono_get_inflated_generic_class().
5062
5063         * loader.c (mono_method_signature): Call
5064         mono_get_inflated_method() here.
5065
5066 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5067
5068         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5069         type of fields with RVA.
5070
5071         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5072         for this pseudo class.
5073         (my_mono_class_from_generic_parameter): Likewise.
5074         (mono_class_init): Allow interfaces to have cctors.
5075
5076 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5077
5078         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5079         lazily for AOT methods.
5080
5081 2005-07-05  Martin Baulig  <martin@ximian.com>
5082
5083         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5084         returns FALSE for a successful match, not TRUE.
5085
5086 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5087
5088         * loader.c (mono_method_get_index): Optimize this a bit.
5089
5090 2005-07-04  Martin Baulig  <martin@ximian.com>
5091
5092         * class.c
5093         (class_compute_field_layout): Move the check for generic type
5094         definitions into mono_class_layout_fields().  Fixes #74684.
5095         (mono_class_from_generic_parameter): Correctly compute
5096         `klass->parent'; fixes #75457.
5097
5098         * reflection.c (register_assembly, register_module): Make sure
5099         `domain->rejobject_hash' is already created.
5100
5101 2005-07-02  Martin Baulig  <martin@ximian.com>
5102
5103         * class-internals.h
5104         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5105         `MonoDynamicGenericClass'.      
5106
5107 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5108
5109         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5110         returned by a field getter is null, since null is a valid value.
5111
5112 2005-07-01  Martin Baulig  <martin@ximian.com>
5113
5114         * reflection.c (mono_reflection_generic_class_initialize): Update
5115         the `dgclass->fields [i].parent' to the correct class.
5116         (mono_image_get_fieldref_token): Use the declaring type, not the
5117         reflected type.
5118
5119 2005-07-01  Martin Baulig  <martin@ximian.com>
5120
5121         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5122
5123 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5124
5125         * threads.c (thread_cleanup): assert that thread != NULL
5126         (wait_for_tids_or_state_change): We were using the wrong variable
5127         when accessing wait->threads. `i' was always out of the bounds of
5128         the array.
5129
5130 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5131
5132         * loader.c: map user32 and kernel32 to libMonoSupportW
5133
5134 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5135
5136         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5137
5138 2005-06-28  Martin Baulig  <martin@ximian.com>
5139
5140         * loader.c (method_from_methodspec): Fix #75334.
5141
5142 2005-06-28  Martin Baulig  <martin@ximian.com>
5143
5144         Fix #74953 - Arrays now implement the generic IList<T> interface
5145         on the 2.0 platform.
5146
5147         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5148
5149         * reflection.c (mono_class_bind_generic_parameters): New public
5150         function; similar to mono_reflection_bind_generic_parameters(),
5151         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5152
5153         * domain.c (mono_init_internal): Try to initialize.
5154         `mono_defaults.generic_array_class' here; this'll only succeed if
5155         we're using the 2.0 corlib.
5156
5157         * icall.c
5158         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5159         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5160         (mono_lookup_internal_call): Added support for nested classes.
5161
5162         * loader.c
5163         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5164         we're an interncall and have generic arguments.
5165
5166         * class.c
5167         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5168         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5169         instance of System.Array.InternalArray<T> for arrays, so they
5170         implement the generic IList<T> interface.
5171
5172 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5173
5174         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5175         (chastamar@yahoo.com). Fixes #75374.    
5176
5177 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5178
5179         * culture-info-table.h: regenerated.
5180
5181 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5182
5183         * icall.c: handle spaces correctly for base64 strings.
5184
5185 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5186
5187         * *.c: Kill some warnings.
5188
5189 2005-06-23  Duncan Mak  <duncan@novell.com>
5190
5191         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5192         that this builds on Solaris 10 (x86).
5193
5194 2005-06-23  Martin Baulig  <martin@ximian.com>
5195
5196         * class.c
5197         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5198         generic type definitions.
5199
5200 2005-06-23  Martin Baulig  <martin@ximian.com>
5201
5202         Fix #75331.
5203
5204         * metadata.c (mono_class_get_overrides): Renamed to
5205         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5206         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5207         pass it to mono_get_method_full().
5208
5209 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5210
5211         * reflection.c (mono_reflection_create_runtime_class): take the
5212         mono_domain_lock in this method. Prevents deadlocks
5213
5214 2005-06-22  Martin Baulig  <martin@ximian.com>
5215
5216         * loader.c (method_from_methodspec): Fix #75330.
5217
5218 2005-06-22  Martin Baulig  <martin@ximian.com>
5219
5220         * reflection.c (type_get_qualified_name): Use
5221         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5222         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5223         argument; use it if we don't have an assembly name.
5224
5225 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5226
5227         * object.c: In mono_message_init, set "copy out" flag for in
5228         parameters with the [Out] flag.
5229
5230 2005-06-21  Martin Baulig  <martin@ximian.com>
5231
5232         * class.c
5233         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5234         and MONO_TYPE_PTR.
5235
5236 2005-06-21  Martin Baulig  <martin@ximian.com>
5237
5238         * class.c (mono_class_init): Don't initialize `class->fields' for
5239         generic instances since they're initialized again in
5240         compute_field_layout(). 
5241         (compute_field_layout): Set the field's `generic_info' here; fix
5242         #75320. 
5243
5244 2005-06-21  Martin Baulig  <martin@ximian.com>
5245
5246         * class-internals.h
5247         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5248
5249         * metadata.c (mono_metadata_generic_method_equal): Also
5250         distinguish the `generic_class'; fixes #75334.
5251
5252 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5253
5254         * domain.c:
5255         * appdomain.c:
5256         * domain-internals.h:
5257         * reflection.c: 'domain_assemblies' field is now protected by its own
5258         lock. Don't call into managed code to run the AssemblyLoad event if we
5259         now there are no registered delegates for it.
5260
5261 2005-06-20  Martin Baulig  <martin@ximian.com>
5262
5263         * class.c (mono_class_is_assignable_from): Use a custom version of
5264         mono_class_has_parent() to make things work for generic instances;
5265         fix #75300.
5266
5267 2005-06-20  Martin Baulig  <martin@ximian.com>
5268
5269         * loader.c (method_from_methodspec): Apply a patch from
5270         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5271
5272 2005-06-20  Martin Baulig  <martin@ximian.com>
5273
5274         * class.c (mono_class_init): Reverted Zoltan's last change; it
5275         breaks generics.
5276
5277 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5278
5279         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5280
5281 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5282
5283         * socket-io.c: fix the index in the socket array for writable/error
5284         sockets. Fixes bug #75306.
5285
5286 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5287
5288         * class.c (mono_class_init): Allow interfaces to have static ctors.
5289
5290 2005-06-17  Martin Baulig  <martin@ximian.com>
5291
5292         * loader.c (method_from_methodspec): Use `context->container' when
5293         parsing the `gmethod->inst'.
5294
5295 2005-06-17  Martin Baulig  <martin@ximian.com>
5296
5297         * class.c (mono_type_get_name_recurse): Don't add the assembly
5298         name for type arguments.
5299
5300 2005-06-15  Martin Baulig  <martin@ximian.com>
5301
5302         * reflection.c (mono_image_get_inflated_method_token): Encode
5303         correct klass; fixes #75260.
5304
5305 2005-06-13 Michal Moskal <malekith@nemerle.org>
5306
5307         * icall.c: Make GetCorrespondingMethod/Constructor take
5308         MonoReflectionMethod method not MonoMethod. Removed
5309         MonoType.GetCorrespondingField, and make
5310         MonoGenericType.GetCorrespondingField take name not
5311         MonoClassField.
5312
5313 2005-06-13  Michal Moskal <malekith@nemerle.org>
5314
5315         * reflection.c (field_encode_signature, encode_locals):
5316          Make sizes of buffers for types larger (for big generic types).
5317          (create_generic_typespec,
5318          mono_reflection_sighelper_get_signature_local,
5319          mono_reflection_sighelper_get_signature_field):
5320          Add asserts for too small buffers.
5321
5322 2005-06-15  Martin Baulig  <martin@ximian.com>
5323
5324         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5325         if our parent is not a dynamic type.
5326
5327 2005-06-15  Martin Baulig  <martin@ximian.com>
5328
5329         * class-internals.h (MonoTypeNameFormat): New enum.
5330
5331         * class.c
5332         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5333         (mono_type_get_full_name): Removed.
5334         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5335         argument instead of the boolean's.
5336
5337         * icall.c (ves_icall_System_MonoType_getFullName):
5338         Added `gboolean assembly_qualified'.    
5339
5340         * reflection.h
5341         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5342
5343         * reflection.c (mono_reflection_parse_type): Parse the new type
5344         name format.
5345
5346 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5347
5348         * icall.c: no need to convert from utf16 to utf8 and then back again
5349         after the call to GetLogicalDrives.
5350
5351 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5352
5353         * icall.c: frombase64. Fix problems exposed by new tests.
5354
5355 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5356
5357         * icall.c: added internal calls for converting char [] and strings in
5358         base64 into byte [].
5359
5360 2005-06-10  Martin Baulig  <martin@ximian.com>
5361
5362         * class.c (mono_class_create_generic_2): Read the nested classes
5363         from the metadata rather than from `gklass->nested_classes' since
5364         `gklass' might not be initialized yet.
5365
5366 2005-06-09  Duncan Mak  <duncan@novell.com>
5367
5368         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5369         all public headers. Fixes #74919.
5370
5371 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5372
5373         * domain.c: The key for proxy_vtable_hash is now a pointer
5374         array. Added new GHashFunc and GCompareFunc functions for this.
5375
5376         * class.h: The list of interfaces in MonoRemoteClass is known in
5377         advance and can't grow (we create a new MonoRemoteClass if needed),
5378         so now the interface array can be allocated together with
5379         MonoRemoteClass.
5380         
5381         * object.c: Added a new method create_remote_class_key.
5382         Fixed mono_remote_class so it does not depend on
5383         mono_upgrade_remote_class.
5384         Removed extend_interface_array.
5385         Added new method clone_remote_class(), which makes a copy of a remote
5386         class and adds a new interface or class to it.
5387         mono_upgrade_remote_class() now creates a new remote class (or gets
5388         it from the cache) if an vtable upgrade is needed. In this way
5389         we make sure that other objects sharing the same remote class
5390         don't get the new vtable with unwanted interfaces.
5391         
5392         * object-internals.h:
5393         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5394         
5395         * marshal.c: Track changes in mono_upgrade_remote_class().
5396
5397 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5398         * icall.c: Add runtime methods for obtaining members of inflated
5399         class, which were created from supplied non-inflated members. It
5400         is used in internal Get{Method,Constructor,Field} methods in
5401         System.Type
5402
5403 2005-06-09  Martin Baulig  <martin@ximian.com>
5404
5405         * reflection.c
5406         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5407
5408 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5409         * reflection.c (mono_image_basic_init): Define
5410         Version in MonoDynamicAssembly. 
5411         
5412 2005-06-08  Martin Baulig  <martin@ximian.com>
5413
5414         Fix #75136.
5415
5416         * loader.c
5417         (mono_method_signature_full): New public method; takes a
5418         `MonoGenericContext *'.
5419         (find_method): Use mono_method_signature_full() and pass the
5420         klass'es context to it.
5421
5422         * class.c (mono_class_is_inflated_method): Use
5423         mono_method_signature_full() and pass the context to it.
5424
5425 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5426
5427         * object.c: add proper locking in mono_remote_class_vtable(),
5428         fixes possible memory corruption.
5429
5430 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5431
5432         * marshal.c (mono_remoting_marshal_init): set
5433         initialized after initialization.
5434
5435 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5436
5437         * locales.c : hush.
5438
5439 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5440
5441         * object.c (extend_interface_array): fix really silly
5442         memory corrupting / comparison bug.
5443
5444 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5445
5446         * reflection.c: Functions added to support the creation
5447         of CustomAttributeData, which includes Attribute data
5448         used by ReflectionOnly methods.
5449
5450         * reflection.h:  mono_reflection_get_custom_attrs_data and
5451          mono_custom_attrs_data_construct added (functions exposed).
5452
5453          * icall.c: Added mono_reflection_get_custom_attrs_data
5454          as icall.
5455         
5456 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5457
5458         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5459         lupus's request.
5460
5461 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5462
5463         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5464
5465         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5466         dynamic DllImportAttribute.
5467
5468         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5469         dynamic DllImportAttribute.
5470
5471         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5472         Fixes #75162.
5473
5474 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5475
5476         * threads.c: avoid segfault when an unstarted thread is aborted.
5477
5478 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5479
5480         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5481         Returns the name and version of the runtime for reporting.
5482
5483 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5484
5485         * appdomain.c: bump corlib version.
5486         * object-internals.h: new field in MonoReflectionAssembly.
5487
5488 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5489
5490         * object-internals.h: Carlos forgot to add this field.
5491
5492 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5493
5494         * icall.c: Added create_version to create instances
5495         of Version of MonoReflectionAssemblyName. This change helps
5496         the AssemblyName tests to keep running fine.
5497         
5498 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5499   
5500         * object.c (mono_method_return_message_restore): A somehow less
5501         intrusive fix for #75138.
5502
5503 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5504
5505         * object.c (mono_method_return_message_restore): Fix computation
5506         of expected number of out args.
5507
5508 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5509
5510         * reflection.c (mono_image_get_method_info): Fix the case when the
5511         charset is empty.
5512
5513 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5514
5515         * object.c: Added missing null check in
5516           mono_method_return_message_restore.
5517
5518 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5519
5520         * reflection.c (mono_image_get_method_info): Handle the case when
5521         dllentry is empty.
5522
5523 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5524
5525         * object.c: When creating the vtable for a proxy, take into account
5526         all inherited interfaces, not only the ones registered in
5527         iclass->interfaces. This fixs bug #74996.
5528         Also, in mono_method_return_message_restore, verify that the array
5529         of out args has the expected lengh.
5530
5531 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5532
5533         * socket-io.c: update the timeout in Poll when the call is interrupte.
5534
5535 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5536
5537         * socket-io.c: support abort/suspend in Select_internal after last
5538         change.
5539
5540 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5541
5542         * threadpool.c: remove warning.
5543
5544 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5545
5546         * icall.c:
5547         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5548         removing the 1024 limit from select(). Runtime part of the fix for
5549         bug #71203.
5550
5551 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5552
5553         * socket-io.c: when resolving the addresses for the same
5554         host returned by gethostname(), get the local IPs from the interface
5555         list. Loopback addresses are discarded if the are interfaces up with
5556         non-loopback ones. Fixes bug #63265.
5557
5558 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5559
5560         * appdomain.c, verify.c, object-internals.h, reflection.c:
5561         bumped corlib number to 36, and added new extra_flags field
5562         to ReflectionMethodBuilder and friends.  Fixes #75060.
5563
5564 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5565
5566         * gc.c: register a new weak link only if the object is non-null
5567         (fixes bug#75047).
5568
5569 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5570
5571         * culture-info.h : short time pattern too.
5572
5573 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5574
5575         * culture-info.h : expand long time pattern string length.
5576
5577 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5578
5579         * culture-info-table.h : update (more French date format; #72788).
5580
5581 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5582
5583         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5584         the method is static. Fixes #75029.
5585
5586 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5587
5588         * reflection.c: Update the table_idx field of method builders after
5589         saving the module, since it can change. This is a workaround for
5590         bug #74914. 
5591
5592 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5593
5594         * culture-info-table.h : update (additional French date format).
5595
5596 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5597
5598         * icall.c (ves_icall_type_Equals): Revert last change.
5599         
5600         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5601
5602         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5603
5604 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5605
5606         * class-internals.h: Added executioncontext_class field to 
5607         MonoDefaults structure.
5608         * domain.c: Cache System.Threading.ExecutionContext class in 
5609         mono_defaults.
5610         * object.c: Capture the ExecutionContext for asynchroneous calls in
5611          mono_async_result_new.
5612         * object-internals.h: Added execution_context and original_context 
5613         fields to MonoAsyncResult. Added execution_context to MonoThread.
5614         * security-manager.c|.h: Added mono_get_context_capture_method to 
5615         return the capture method (if required by the security manager or by
5616         the framework version used).
5617         * threadpool.c: Apply capture (if present) ExecutionContext in 
5618         mono_async_invoke and revert to original context after it completes.
5619
5620 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5621
5622         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5623
5624 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5625
5626         * culture-info-table.h : zh-CHT related workaround.
5627
5628 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5629
5630         * marshal.c (emit_marshal_custom): Add some error checking and call the
5631         methods in the ICustomMarshaler interface. Fixes #74875.
5632         
5633         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5634         native->managed wrappers.
5635
5636 2005-05-12  Martin Baulig  <martin@ximian.com>
5637
5638         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5639         here and use the loader lock.
5640
5641         * mono-debug.c: Properly lock when the debugger is not attached.
5642         (mono_debug_init): Release the initial lock if we're not running
5643         in the debugger.
5644
5645 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5646
5647         * marshal.c (emit_marshal_custom): Pass through NULL values without
5648         calling the custom marshalling routines.
5649
5650         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5651         conversion in structures. Fixes #74882.
5652
5653 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5654
5655         * culture-info-table.h : zh-* cultures were missing.
5656
5657 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5658
5659         * threads.c: Added a new event background_change_event which is signaled
5660         when a thread changes its background mode.
5661         Moved here several checks previously done in managed code. The checks
5662         require the thread lock, and using the thread lock in managed code
5663         can result in deadlocks.
5664         Merged Start_internal and Thread_internal into a single method. Now 
5665         Thread_internal does all work of creating and starting a thread.
5666         Added icalls for setting and getting the state of the object. Moved from
5667         managed code to avoid locking there.
5668         Added wait_for_tids_or_state_change() which is called instad of
5669         wait_for_tids when waiting for non-backround threads to end. This method
5670         will return if one of the threads ends or the background_change_event
5671         is signaled.
5672         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5673         the background mode. This method signals the background_change_event
5674         event.
5675         * icall.c:
5676         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5677         removed Start_internal.
5678         
5679 2005-05-11  Martin Baulig  <martin@ximian.com>
5680
5681         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5682         to order of some fields to get proper alignment on 64-bit machines.
5683
5684 2005-05-11  Martin Baulig  <martin@ximian.com>
5685
5686         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5687         changes as they're broken and completely fuck up the debugger.
5688
5689         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5690
5691 2005-05-10  Martin Baulig  <martin@ximian.com>
5692
5693         * reflection.c (mono_reflection_generic_class_initialize): Don't
5694         call mono_class_setup_parent() here.
5695
5696 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5697
5698         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5699         send/receive timeout use an integer in milliseconds. We were using a
5700         struct timeval.
5701
5702 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5703
5704         * locales.c:
5705         (internal_get_cultures): reserve the first slot of the array for the
5706         InvariantCulture, which will be filled in managed code.
5707
5708 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5709
5710         * reflection.c (mono_image_fill_module_table): Initialize the
5711         GENERATION field as well.
5712
5713 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5714
5715         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5716         Monitor.Enter on the object.
5717
5718 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5719
5720         * threads.c: Enable the wait for running threads when exiting.
5721         * icall.c: Suspend all threads before exiting.
5722
5723 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5724
5725         * assembly.c (mono_assembly_load_reference): Fix warning.
5726
5727 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5728
5729         * threadpool.c: changed the default number of threads per cpu. From now
5730         on, the default will be 20 + (5 * number of cpus) instead of 50.
5731
5732 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5733
5734         * loader.c (mono_method_get_signature_full): Add locking here.
5735
5736 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5737
5738         * appdomain.c: Moved methods for parsing and freeing assembly
5739         names to assembly.c.
5740         * assembly.c, domain-internals.h: Created public methods for parsing
5741         assembly names. Fixed mono_assembly_load_with_partial_name:
5742         it now finds the best match, taking into account the version,
5743         token and culture specified in the partial name. Also return
5744         the latest version if no version information is specified.
5745
5746 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5747
5748         * threadpool.c: replace check for SocketAsyncCall class.
5749
5750 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5751
5752         * threadpool-internals.h:
5753         * Makefile.am: added threadpool-internals.h
5754
5755         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5756         that happen in threadpool threads (tested on MS).
5757         (mono_thread_pool_remove_socket): new function that dispatch any pending
5758         AIO call on a socket that is closing. By now only epoll really needs it,
5759         as select/poll wake up when the socket closes.
5760
5761
5762         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5763
5764 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5765
5766         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5767
5768 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5769
5770         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5771
5772 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5773
5774         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5775         has an abort request, convert it into a suspend request.
5776
5777 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5778
5779         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5780         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5781         is not supported yet.
5782
5783 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5784
5785         * image.c: register assemblies loaded from data (bundles) in the loaded
5786         assemblies hash. Fixes bug #74772.
5787
5788 2005-04-29  Martin Baulig  <martin@ximian.com>
5789
5790         * class.c (mono_type_get_name_recurse): Update to the new naming
5791         schema from the latest .NET 2.x beta2.
5792         (mono_class_setup_vtable_general): If we're a generic instance,
5793         copy the vtable from our generic type definition and inflate all
5794         the methods in it.
5795
5796         * loader.c (find_method): Update to the new naming schema from the
5797         latest .NET 2.x beta2.
5798
5799 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5800
5801         * class.c (mono_class_init): Add a mono_loader_unlock to the
5802         #74734 fix.
5803
5804 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5805
5806         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5807         suspend_all_other_threads () call for the time being, since it can hang.
5808
5809         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5810         the background threads to exit, since it can also hang.
5811
5812         * class.c (mono_class_init): Applied patch from Ankit Jain 
5813         (radical@gmail.com). Avoid pending init errors when a field refers
5814         to a nested class using a typeref. Fixes #74734.
5815
5816         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5817         this for dynamic modules.
5818
5819 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5820
5821         * threads.c: don't wait for threads that are in the process of aborting
5822         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5823         and waiting for background threads to finish. This makes xsp and
5824         mod-mono-server exit without random length delays and/or hangs.
5825
5826 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5827
5828         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5829
5830 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5831
5832         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5833         dynamic types to prevent infinite loops. Fixes #74727.
5834
5835         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5836         ..._is_assignable_to.
5837
5838 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5839
5840         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5841
5842 2005-04-25  Martin Baulig  <martin@ximian.com>
5843
5844         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5845
5846         * domain.c
5847         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5848
5849         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5850
5851         * reflection.c (build_compressed_metadata): Set metadata header
5852         version to 2.0.
5853
5854 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5855
5856         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5857         number into an integral and a decimal part. Fixes #70473.
5858
5859         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5860
5861 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5862
5863         * culture-info-table.h : reflected the latest locale-builder output.
5864
5865 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5866
5867         * threadpool.c: check for SuspendRequested too when deciding if
5868         mono_thread_interruption_checkpoint should be called.
5869
5870 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5871
5872         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5873         * threads.c: remove interruption_mutex and use Interlocked instead. When
5874         suspending all the threads, wait for all the suspended events at once.
5875         If we're shutting down and get an APC that is going to be queued,
5876         call mono_thread_execute_interruption immediately, as the thread might
5877         be sleeping on a pthread condition or mutex.
5878
5879         * icall.c: call mono_runtime_set_shutting_down before suspending the
5880         threads.
5881
5882         Fixes bug #74693. And now xsp is happier when exiting.
5883
5884 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5885
5886         * loader.c (mono_stack_walk): Fix #74690.
5887
5888 2005-04-22  Martin Baulig  <martin@ximian.com>
5889
5890         * mono-debug.h (MonoDebugMethodJitInfo): Added
5891         `MonoDebugMethodJitInfo *jit'.
5892
5893         * mono-debug.c (mono_debug_read_method): Cache the
5894         MonoDebugMethodJitInfo in `address->jit'.
5895         (mono_debug_free_method_jit_info): New public method.
5896
5897 2005-04-22  Martin Baulig  <martin@ximian.com>
5898
5899         * class.c (mono_class_is_assignable_from): Disallow
5900         type parameter -> interface.
5901
5902 2005-04-21  Dick Porter  <dick@ximian.com>
5903
5904         * threads.c (mono_thread_create): Turn an assertion into an error.
5905
5906 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5907
5908         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5909         
5910         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5911         Fix some gcc 4.0 warnings.
5912
5913 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5914
5915         * file-io.c: fix alt dir separator char on unix systems
5916         and cleanup (fixes bug #71214).
5917
5918 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
5919
5920         * marshal.c: Use CALLVIRT instead of CALL when dispatching
5921         a call to a remote domain, since the method may be an
5922         interface method in the client domain. This fixes bug #74192.
5923
5924 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5925
5926         * threadpool.c: recv/send are now performed before going back to managed
5927         code to save one transition.
5928
5929 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5930
5931         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
5932
5933         * metadata/threadpool.c: removed hack to workaround the bug above.
5934
5935         Fixes bug #74618.
5936
5937 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
5938
5939         * reflection.c reflection.h: Fix handling of parameter defaults in
5940         dynamic methods. Also fixes handling of parameter attributes.
5941         Fixes #74609.
5942
5943         * mono-debug.c (mono_debug_close_image): Fix warning.
5944
5945 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5946
5947         * socket-io.h: replaced old unused field with new 'blocking'.
5948         * threadpool.c: restore socket blocking state on windows(tm).
5949
5950 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
5951
5952         * icall.c: don't return the codebase in the AssemblyName[] returned by
5953         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
5954         * object-internals.h: Removed FIXME (fields were presents) and fixed
5955         versioncompat declaration.
5956
5957 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5958
5959         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
5960         not closed, so don't cleanup when it happens.
5961
5962 2005-04-13  Chris Toshok  <toshok@ximian.com>
5963
5964         * mono-debug-debugger.h: change prototype for
5965         mono_debugger_lookup_type.
5966
5967         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
5968         this function, although it should probably be named
5969         mono_debugger_init_type.
5970
5971 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5972
5973         * threadpool.c: fix non-AIO case.
5974
5975 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
5976
5977         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
5978         the built-in profiler to measure just JIT compilation times.
5979
5980 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5981
5982         * threadpool.c: the epollfd might be closed by another thread at
5983         any time, so ignore EBADF at treat it as a "we're closing" sign.
5984
5985 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5986
5987         * threadpool.c: release the semaphores with a count equals to the number
5988         of working threads in both IO and regular pools. Fixed typo that messed
5989         up the count of IO pool threads. Don't initialize the pipe handles if
5990         we're using epoll.
5991
5992 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5993
5994         * threadpool.c: some systems don't like a NULL when deleting the socket
5995         from epoll.
5996
5997 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5998
5999         * threadpool.c: fix semaphore allocation.
6000
6001 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6002
6003         * threadpool.c: added epoll() based implementation for asynchronous IO
6004         that is used instead of the default poll() when available.
6005         It can be disabled by setting MONO_DISABLE_AIO.
6006
6007 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6008
6009         * threadpool.c: windows needs 'closesocket' and instead of returning
6010         0 when the stream is closed while in select, it returns -1. Fixes bug
6011         #74573.
6012
6013 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6014
6015         * class.c (class_compute_field_layout): Fix the regression caused by
6016         the previous try.
6017
6018 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6019
6020         * threadpool.c: separate pool for socket async. IO.
6021         * threadpool.h: mono_max_worker_threads is not a global any more.
6022
6023 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6024
6025         * class.c (class_compute_field_layout): Fix #74549.
6026
6027 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6028
6029         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6030         use 2 connected sockets instead.
6031
6032 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6033
6034         * mono-config.c: Add new entry point for mkbundle
6035         mono_config_parse_memory. 
6036
6037 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6038
6039         * threadpool.c: removed another unused function.
6040
6041 2005-04-08  Ankit Jain  <radical@corewars.org>
6042
6043         * reflection.c (get_default_param_value_blobs): Add 'types'
6044         parameter to get the types encoded in the constant table.
6045         (mono_param_get_objects): Use the type from the constant table,
6046         not the type of the parameter, when creating default values.
6047         Handle null default values correctly.
6048
6049 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6050
6051         * file-io.c:
6052         * file-io.h:
6053         * threadpool.c:
6054         * threadpool.h:
6055         * icall.c:
6056         * socket-io.c: removed dead code for async IO.
6057
6058 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6059
6060         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6061
6062         * threadpool.c: intercept socket async. calls and pass them to a thread
6063         that is polling and dispatching the job items to the threadpool as
6064         socket become ready. Fixes bugs #71217, #71933.
6065
6066         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6067         between char and short/ushort arrays.
6068
6069         * socket-io.c: remove dead code.
6070
6071 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6072
6073         * locales.c,
6074           icall.c : removed InternalToUpper_Comp() and
6075           InternalToLower_Comp().
6076
6077 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6078
6079         * char-conversions.h : The tables were incorrectly generated. Should
6080           be generated against invariant culture.
6081
6082 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6083
6084         * object.c (mono_runtime_invoke_array): Fix return value when 
6085         passing pre-created valuetype objects to ctors.
6086
6087         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6088         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6089         Fixes #74338.
6090
6091 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6092
6093         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6094         only used with --security and hides the wrong corlib version error.
6095
6096 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6097
6098         * class.c: Changed mono_class_name_from_token so that types
6099         outside of a namespace don't have an initial period.  Improved
6100         the g_warning message used in _mono_class_get when loading
6101         fails.
6102         * assembly.c: In mono_assembly_load_reference, when an assembly
6103         can't be found, "No such file or directory" is misleading and
6104         unhelpful because a few paths were checked for the presence of
6105         the assembly.  When that happens (ENOENT), display a nicer
6106         message indicating the directories that were searched.  In all
6107         cases, the warning is made easier to read for non-hackers.
6108
6109 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6110
6111         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6112         project/solution.
6113         * appdomain.h|domain.c: Removed inline from functions.
6114         * appdomain.c: Reduced warnings when compiling on windows.
6115         * icall.c: Fixed output_debug declaration to gunichar2*.
6116         * mono-config.c: Reduced warnings when compiling on windows.
6117         * rand.c: Added missing "windows.h". Added missing return value.
6118         * rawbuffer.c: Added missing winsock2.h for windows.
6119         * sysmath.h: Added mono-compiler.h header to allow/ease 
6120         compilation with non-GCC compilers.
6121         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6122         Removed cast warnings.
6123
6124         Adapted from the work of J Lothian (for VC6).
6125
6126 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6127
6128         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6129         from default_path.
6130
6131 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6132
6133         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6134         the 2.0 profile.
6135
6136 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6137
6138         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6139         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6140         stuff, and it would probably use $(prefix)/share rather than
6141         $(prefix)/lib.
6142
6143 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6144
6145         * console-io.c: added 2 includes that might be missing.
6146
6147 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6148
6149         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6150         profile.
6151
6152         * reflection.c (create_custom_attr): Allocate the params array using
6153         alloca so it gets GC tracking.
6154
6155 2005-03-23  Chris Toshok  <toshok@ximian.com>
6156
6157         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6158         out some spew.
6159
6160 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6161
6162         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6163         changes to pick up any changes in prefix, etc.
6164
6165 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6166
6167         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6168         
6169         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6170         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6171
6172 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6173
6174         * class-internals.h object-internals.h class.c reflection.c: Extend the
6175         mono_lookup_dynamic_token () function to return the class of the
6176         token as well. 
6177
6178         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6179         well. Fixes #73848.
6180
6181 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6182
6183         * security-manager.c: Skip inheritance checks for intra-corlib
6184         class inheritance and method overrides. This skips a lot of checks
6185         and (anyway) permissions cannot work until corlib is loaded.
6186
6187 2005-03-23  Martin Baulig  <martin@ximian.com>
6188
6189         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6190         MONO_TYPE_GENERICINST.  
6191
6192 2005-03-23  Martin Baulig  <martin@ximian.com>
6193
6194         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6195
6196 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6197
6198         * class.c: added locking comments to some functions.
6199         Cache the interface offsets arrays (saves about 20 KB
6200         of runtime memory in a typical app).
6201         Reduce the time overhead in mono_class_setup_supertypes ().
6202
6203 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6204
6205         * icall.c: speedup and fix leaks in GetMethodsByName and
6206         GetPropertiesByName.
6207
6208 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6209
6210         * reflection.c: some locking fixes.
6211
6212 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6213
6214         * metadata.c: added missing break in case statement.
6215
6216 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6217
6218         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6219         typedbyref return values. Fixes #73941.
6220
6221 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6222
6223         * security-manager.c|h: Added demandunmanaged method and 
6224         suppressunmanagedcodesecurity class to MonoSecurityManager.
6225         Renamed aptc class to allowpartiallytrustedcallers.
6226
6227 2005-03-17  Martin Baulig  <martin@ximian.com>
6228
6229         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6230
6231 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6232
6233         * file-io.c: disabled file async. IO using aio_*. It uses the
6234         threadpool now. Workaround for bug #73718.
6235
6236 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6237
6238         * assembly.h, mono-config.c: added code to deal with bundled configs
6239         for bundled assemblies.
6240
6241 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6242
6243         * *.c, private.h: cleanup, removing old private.h header file.
6244
6245 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6246
6247         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6248         and throw_on_unmappable_char attributes.
6249
6250 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6251
6252         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6253         _ProcessName_internal.
6254
6255 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6256
6257         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6258         #73631.
6259
6260         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6261         are no longer used.
6262
6263 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6264
6265         * object.c (compute_class_bitmap): Add support for generics. Fixes
6266         #73527.
6267
6268 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6269
6270         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6271
6272 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6273
6274         * filewatcher.c: commented out the code for windows watcher, as we don't
6275         use it (we use the managed implementation instead).
6276
6277 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6278
6279         * object-internals.h (MonoThread): Remove 'unused1' field.
6280
6281         * appdomain.c: Bump corlib version.
6282
6283         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6284
6285         * reflection.c (mono_reflection_create_runtime_class): Remove the
6286         AssemblyBuilder.Save optimization since it causes too many problems.
6287
6288 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6289
6290         * exception.c|h: Added mono_get_exception_reflection_type_load to
6291         create a ReflectionTypeLoadException object.
6292         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6293         to return NULL is a InheritanceDemand fails during reflection. Updated
6294         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6295         ReflectionTypeLoadException if an InheritanceDemand fails during 
6296         reflection. Added icall mapping for GetLinkDemandSecurity.
6297         * security-manager.c|h: Added ves_icall_System_Security_
6298         SecurityManager_GetLinkDemandSecurity internal call to return the
6299         class and methods permissions set for a LinkDemand. Removed unused
6300         fields in MonoSecurityManager.
6301
6302 2005-03-10  Martin Baulig  <martin@ximian.com>
6303
6304         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6305         it's a generic instance.
6306
6307 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6308
6309         * reflection.c (mono_get_object_from_blob): Applied patch from
6310         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6311
6312         * class.c (mono_class_is_assignable_from): Another try at fixing 
6313         #73469 without breaking anything.
6314
6315 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6316
6317         * class.c: (mono_class_is_assignable_from): Revert the last changes
6318         since they don't work with generics.
6319         
6320         * class.c (mono_class_is_assignable_from): Fix build bustage.
6321
6322         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6323         the managed IsAssignableFrom method. Fixes #73469.
6324
6325         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6326         function.
6327
6328 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6329
6330         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6331         memory when the remoting callback does not sets the out arguments.
6332         Fixes #73007.
6333
6334         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6335         by mistake.
6336
6337         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6338
6339         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6340
6341         * appdomain.c: Bump corlib version.
6342
6343 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6344
6345         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6346         function.
6347
6348         * threads.c (mono_thread_attach): Detect threads which are not started
6349         by the GC pthread wrappers.
6350
6351 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6352
6353         * icall.c: Added new icall for RNG.
6354         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6355         single handle on Linux to access /dev/urandom and fix #73183.
6356
6357 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6358
6359         * object.c: setting the new vtable in a transparent proxy object must
6360         not change the GC descriptor.
6361
6362 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6363
6364         * object.c: fixed compilation without GCJ support.
6365         * reflection.c: for runtime-created types ensure klass->has_references
6366         is correct (bug #73215).
6367
6368 2005-03-02  Martin Baulig  <martin@ximian.com>
6369
6370         * class.c (mono_class_is_assignable_from): Make this work if
6371         `oklass' is a generic instance; fixes #72831.
6372
6373 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6374
6375         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6376         with hasthis set.
6377         
6378         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6379
6380         * marshal.c: Reorganize native->managed marshalling code to also use
6381         the emit_marshal_... functions.
6382
6383 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6384
6385         * object.c: typed allocs have issues with bitmap sizes > 30,
6386         so check for max_set >= 30.
6387
6388 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6389
6390         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6391         managed code. Fixes #73012.
6392
6393         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6394
6395         * metadata.c reflection.c: Load/Emit elem_mult as well.
6396         
6397         * metadata.h (MonoMarshalSpec): Add comment.
6398
6399         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6400
6401         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6402         num_elem to -1 if not given.
6403
6404         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6405
6406         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6407         given values.
6408
6409 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6410
6411         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6412
6413 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6414
6415         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6416
6417         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6418
6419 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6420
6421         * object.c: generalized the reference bitmap creation
6422         and added hooks for the new GC.
6423         * class-internals.c: removed the gc_bitmap field from MonoClass.
6424
6425 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6426
6427         * domain.c: help the compiler to produce better code
6428         in mono_jit_info_table_find ().
6429
6430 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6431
6432         * object.c: make all allocations look typed.
6433
6434 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6435
6436         * socket-io.c: load Mono.Posix if it's not loaded already
6437         (fixes bug#73033).
6438
6439 2005-02-24  Martin Baulig  <martin@ximian.com>
6440
6441         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6442         * reflection.c (dup_type): Likewise.
6443
6444 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6445
6446         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6447         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6448
6449 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6450
6451         * domain.c, threads.c, object-internals.h: make the critical thread
6452         local vars use the fast access mode (even when we're compiled in
6453         a lib). Provide accessors to be used by the jit during codegen.
6454
6455 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6456
6457         * appdomain.c: Changed hook functios behavior to include
6458         support for the reflection only assemblies. Some icalls were changed
6459         to support the mentioned assemblies too. Signatures of static methods
6460         try_assembly_resolve and real_load now have an additional parameter:
6461         refonly.
6462
6463         * assembly.c: General changes to mono_assembly_ methods to support
6464         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6465         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6466         suffix, to support an additional gbool parameter to specify whether
6467         the assembli is reflection only or not. Created some new hook functions 
6468         to add support for reflection only assemblies. Signatures of static 
6469         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6470         have now an additional parameter: refonly.
6471
6472         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6473         indicating whether the assembly is reflection only or not.
6474
6475         * exception.c: Add mono_get_exception_invalid_operation.
6476
6477         * icall.c: Throw an InvalidOperationException when trying to invoke
6478         a property/method/event, or trying to set/get the value of a field.
6479         Also add an icall to retrieve the ref_only flag to the
6480         MonoReflectionAssembly.
6481
6482 2005-02-23  Chris Toshok  <toshok@ximian.com>
6483
6484         Part of fix for #72827.
6485         * mono-debug.c (mono_debug_add_method): add lexical block data to
6486         the info we write.  Kind of a hack at the moment - we copy the
6487         lexical block info from the MonoDebugMethodInfo to the
6488         MonoDebugMethodJitInfo here, before writing it.
6489         (mono_debug_read_method): read the lexical block info.
6490
6491         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6492
6493         * debug-mono-symfile.h: add lexical block support.
6494
6495         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6496         support.
6497
6498 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6499
6500         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6501
6502         * object.c (mono_runtime_free_method): Call mono_free_method () and
6503         put the TODOs there.
6504
6505         * loader.c (mono_free_method): Free up most memory allocated for 
6506         dynamic methods.
6507
6508 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6509
6510         * reflection.c: properly flag a Type argument to a
6511         named custom attr value (bug #72248).
6512
6513 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6514
6515         * reflection.c: reduce code duplication in named custom
6516         attribute encoding.
6517
6518 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6519
6520         * reflection.c: properly encode custom attrs of type object
6521         (bug #72649).
6522
6523 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6524
6525         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6526
6527 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6528
6529         * socket-io.c: load System.dll if it's not loaded already
6530         (bug #72850 and #70477).
6531
6532 2005-02-21  Martin Baulig  <martin@ximian.com>
6533
6534         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6535         generic instances.
6536
6537 2005-02-21  Martin Baulig  <martin@ximian.com>
6538
6539         * reflection.c (mono_image_build_metadata): We also need to
6540         "fixup" the MethodImpl table after we computed the final method
6541         indices.  Call fixup_methodimpl() to do that.
6542         (fixup_methodimpl): New private method.
6543
6544 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6545
6546         * assembly.c: special case mscorlib.dll (bug#72536),
6547         patch from Carlos Alberto Cortez.
6548
6549 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6550
6551         * threads-types.h threads.c: Fix build bustage.
6552
6553         * threads.c: Use a union for long<->double conversions.
6554
6555         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6556         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6557
6558         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6559         containing the checkpoint call with NOT_TAKEN.
6560         
6561         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6562         checkpoint before pushing the arguments, so they won't have to be
6563         spilled to stack.
6564
6565 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6566
6567         * domain.c, assembly.c, domain-internals.h: make some data
6568         const and relocation-free.
6569
6570 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6571
6572         * object.c, appdomain.c, class-internals.h: introduce the
6573         MonoClassRuntimeInfo structure to hold the info needed to
6574         use a class at runtime. Made mono_class_vtable() lock-free
6575         for all the appdomains.
6576
6577 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6578
6579         * metadata-internals.h, image.c: introduce a per-image mempool to
6580         be used for memory that has the same lifetime as the image.
6581
6582 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6583
6584         * domain.c: In mono_init_internal(), instead of selecting the first
6585         runtime version supported by an executable, get a list of all
6586         supported versions and select the one for which an mscorlib exists
6587         (since even if the runtime supports a given version, it doesn't mean
6588         that the framework for that version is installed).
6589         Modified get_runtimes_from_exe to support this behavior.
6590         In supported_runtimes, added information about additional system
6591         assembly versions.
6592         
6593         * assembly.c: Added support for more than one system assembly version
6594         per runtime version. Updated the assembly list.
6595         In mono_assembly_remap_version, removed the initial version check,
6596         since we don't know to which version we need to compare until we
6597         get the version set on which the assembly is based.
6598         Moved the code for loading corlib into the new method
6599         mono_assembly_load_corlib(), so it can be used by the initialization
6600         code.
6601         
6602         * domain-internals.h: Updated data structures and added declaration
6603         for mono_assembly_load_corlib.
6604
6605 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6606
6607         * reflection.c (resolve_object): Fix the creation of the signature in 
6608         the SignatureHelper case.
6609
6610         * assembly.c (mono_assembly_remap_version): Fix binary search.
6611         
6612 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6613  
6614         * class.c: Added inheritance check when a method is overloaded (from a
6615         virtual method or when implementing an interface) and when a class is
6616         inherited. Added functions to set a failure for a class and to 
6617         retreive the exception from a failure.
6618         * class-internals.h: Added fields to MonoClass to keep the exception
6619         information status for inheritance (or other exceptions) to be thrown
6620         later (i.e. not at load time).
6621         * object.c: Throw the inheritance SecurityException when a type is to 
6622         be created with either class or method inheritance violations.
6623         * reflection.c|h: Fix when getting declsec from a class. Removed 
6624         unrequired code for class. Improved sanity in parameter naming.
6625         * security-manager.c|h: Added functions to check for class and method
6626         inheritance.
6627
6628 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6629
6630         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6631         and has_finalize in dynamic types as well.
6632
6633 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6634
6635         * culture-info-table.h : fixed currency format for en-GB (and so on).
6636
6637 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6638
6639         * gc.c: ensure the GC handles never have 0 as a value.
6640
6641 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6642
6643         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6644         a pointer to a struct to unmanaged code. Fixes #72625.
6645
6646 2005-02-16  Martin Baulig  <martin@ximian.com>
6647
6648         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6649
6650 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6651
6652         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6653
6654 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6655
6656         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6657
6658         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6659         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6660         etc. Fixes #71471.
6661
6662         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6663
6664         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6665
6666 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6667
6668         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6669         changes to make the current context a field in MonoThread.
6670
6671 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6672
6673         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6674         the last change.
6675         
6676         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6677         extracted from mono_marshal_get_native_wrapper.
6678
6679         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6680         to create wrappers around native functions.
6681
6682         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6683         delegates for arbitrary function pointers. Fixes #71472.
6684
6685 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6686
6687         * threads.c: cleaned up the code a little.
6688
6689 2005-02-15  Martin Baulig  <martin@ximian.com>
6690
6691         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6692         the data table.
6693
6694         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6695         allocate larger chunks if needed.
6696
6697 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6698
6699         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6700         in by mistake.
6701
6702 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6703
6704         * domain.c: keep the domains in an array and ensure the domain ids
6705         are kept small, so they can be used as indexes to domain-specific data
6706         with a small memory overhead.
6707
6708 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6709
6710         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6711
6712 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6713
6714         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6715
6716 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6717
6718         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6719
6720         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6721         values.
6722
6723         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6724         
6725 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6726
6727         * domain-internals.h: add the hashtable here.
6728
6729         * class-internals.h: Remove `info' from MonoMethod
6730
6731         * domain.c: Add a new hashtable, jit_trampoline_hash
6732
6733 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6734
6735         * object.c: don't set the value of static fields
6736         (fixes bug#72494).
6737
6738 2005-02-11  Martin Baulig  <martin@ximian.com>
6739
6740         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6741         (mono_debug_add_method): Silently ignore the method if it's too big.
6742         (mono_debug_add_type): Likewise.
6743
6744 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6745
6746         * threads.c, appdomain.c: remove #ifdefs from the code.
6747
6748 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6749
6750         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6751         common security informations. This allows us to stay in unmanaged code
6752         when doing LinkDemand and it's special cases (except for the first 
6753         time for initialization). The flags a very much used with --security.
6754         * reflection.c|h: Added code to get declarative security attributes 
6755         for LinkDemand and InheritanceDemand. This required to refactor the
6756         existing code for Demand.
6757         * security-manager.c|h: Added new method fields for the special cases
6758         of LinkDemand.
6759
6760 2005-02-10  Martin Baulig  <martin@ximian.com>
6761
6762         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6763         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6764
6765 2005-02-10  Martin Baulig  <martin@ximian.com>
6766
6767         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6768         debugging code; this is almost a complete rewrite.
6769
6770         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6771
6772 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6773
6774         * domain.c, object.h: expose mono_string_equal () and 
6775         mono_string_hash ().
6776         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6777         it's implemented in managed code.
6778
6779 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6780
6781         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6782         lo leak objects between appdomains.
6783
6784 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6785
6786         * assembly.c: old compilers compilation fix from 
6787         robertj@gmx.net (Robert Jordan).
6788
6789 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6790
6791         * class-internals.h: Little reminder for the future.
6792
6793         * debug-helpers.c: Fix up wrapper_type_names
6794
6795 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6796
6797         * image.c, metadata-internals.h: when loading an image from a file,
6798         mmap all of it and use the same codepaths as when using a
6799         in-memory image: the code is simpler and we use less memory
6800         (both writable and readonly).
6801
6802 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6803
6804         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6805         API to alloc runtime data structures that need to be tracked by the
6806         GC and contain pointers.
6807         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6808         make the code more readable and eventually use a different GC.
6809
6810 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6811
6812         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6813         for out arguments.
6814         
6815 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6816
6817         * object.c: In release_type_locks(), don't release the cctor lock
6818         if it has already been released. This fixes a crash in the
6819         thread5 test.
6820
6821 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6822
6823         * gc.c, marshal.c, icall.c: register a delegate for finalization
6824         only when the native function pointer has been allocated for it.
6825
6826 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6827
6828         * object.c: cleaned up some code, allocate objects that are
6829         pointer free with the atomic malloc variant. Allocate memory
6830         for static data from the mempool if it's pointer-free.
6831         Allocate the bounds array at the end of the array data, when needed.
6832         * object-internals.h, object.h: move a private function in a private
6833         header.
6834         * class.c: handle missing case in tracking references in fields.
6835
6836 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6837
6838         * class.c, class-internals.h: keep track if a type has
6839         reference fields in either the instance or static fields.
6840
6841 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6842
6843         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6844         and renamed to MonoRuntimeInfo. Added fields to store the expected
6845         framework assembly version. Changed mono_get_framework_version and
6846         mono_get_runtime_version for a single mono_get_runtime_info method.
6847         
6848         * assembly.c: Added method to remap system assembly versions to the
6849         current executing runtime version. Removed old mapping code.
6850         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6851         
6852         * icall.c, reflection.c: Track api changes.
6853
6854 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6855
6856         * loader.c (method_from_memberref): Improve error reporting,
6857         produce the class name instead of the typeref/typedef index. 
6858
6859 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6860
6861         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6862
6863 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6864
6865         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6866         stdcall and charset name mangling.  Reorganize the code and add
6867         some tracing stuff.
6868
6869 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6870
6871         * monodiet.c: More iters!
6872
6873         * marshal.c: Iter usage.
6874
6875         * icall.c: Iter usage.
6876
6877         * object.c: Use iters.
6878
6879         * debug-helpers.c: More iters
6880
6881 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6882
6883         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6884         under win32.
6885
6886 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6887
6888         * mono-debug-debugger.c: use iters
6889
6890         * class.c, class-internals.h: mono_class_setup_events is static
6891         now
6892
6893         * All callers: use iters
6894
6895 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6896
6897         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6898         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6899
6900 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6901
6902         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6903
6904         * marshal.h: Add prototypes for ldfld/stfld_remote.
6905
6906         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6907         this is called during startup.
6908         
6909 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6910
6911         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6912         MonoThreadsSync struct private in monitor.c. Changed the way
6913         MonoThreadsSync is allocated so it's faster and there is no
6914         need to keep track of it with a finalizer and it uses less memory.
6915         This also finally allows us to allocate mono objects as ptrfree when
6916         there are no reference fields.
6917
6918 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
6919
6920         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
6921         disappearing link to the GC interface and use them to simplify
6922         the gchandles code.
6923
6924 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6925
6926         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
6927         stfld_remote which call mono_load/store_field_new. This allows methods
6928         calling ldfld/stfld wrappers to be AOTed.
6929
6930         * console-io.c: Include sys/filio.h under solaris.
6931         
6932         * console-io.c: Include curses.h if needed correctly.
6933
6934 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6935         
6936         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
6937         method->klass as well.
6938
6939         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
6940
6941         * class.c (mono_class_init): Switch on lazy initialization of 
6942         methods.
6943
6944         * class.c (mono_class_get_finalizer): Handle the case when the 
6945         finalizer is inherited.
6946
6947 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6948
6949         * console-io.c: <curses.h> is needed by term.h on solaris.
6950
6951 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
6952
6953         * icall.c, class-internals.h, monodiet.c, class.c: Remove
6954         mono_class_setup_properties where possible. Remove this ftn from
6955         the header file, and make it static.
6956
6957 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6958
6959         * loader.c: Add missing setup_... call.
6960
6961         * class.c: Add missing setup_... calls.
6962
6963         * class.c (mono_class_init): Switch on lazy initialization of 
6964         the generic vtable.
6965         
6966         * class.c (mono_class_init): Fix generics broken by the recent changes.
6967
6968         * monodiet.c (handle_type): Add missing setup_... calls.
6969
6970         * class.c: Back out garbage in previous patch.
6971         
6972         * class.c: Add missing setup_... calls.
6973
6974         * class.c (mono_class_get_method_from_name_flags): Avoid calling
6975         mono_class_setup_methods () if possible.
6976
6977         * class-internals.h (MonoClass): Add 'has_cctor' flag.
6978
6979         * class-internals.h (MonoCachedClassInfo): New structure.
6980
6981         * class.c: Initialize properties and events fields of MonoClass lazily.
6982
6983         * class.c: Add infrastructure for lazily initializing the methods and
6984         vtable fields of MonoClass. Not yet used.
6985
6986         * class.c (mono_class_get_finalizer): New helper function.
6987
6988         * class.c: Add infrastructure for loading some class related data from
6989         an AOT file.
6990
6991         * object.c: Add infrastructure for initializing the vtable from data
6992         in the AOT file.
6993
6994         * gc.c (run_finalize): Use mono_class_get_finalizer ().
6995
6996         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
6997         appropriate initialization function before accessing parts of the
6998         MonoClass structure.
6999
7000         * marshal.c: Fix warnings.
7001         
7002         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7003
7004         * mono-debug-debugger.c (get_exception_message): Use 
7005         mono_class_get_method_from_name_flags ().
7006
7007 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7008
7009         * reflection.c, appdomain.c: Replace a few manual searches that
7010         Zoltan missed. (Paolo approved this part of my initial patch).
7011
7012 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7013
7014         * profiler.c: disable recording statistical events at report time.
7015
7016 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7017
7018         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7019         to byteswap arrays of enum values, too (bug #72080).
7020
7021 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7022
7023         * appdomain.c (set_domain_search_path): Allow this to be called if
7024         domain->setup is not yet set.
7025
7026         * loader.c (mono_method_get_index): New helper function.
7027
7028         * loader.c reflection.c: Use mono_method_get_index ().
7029
7030         * class.c (mono_class_get_method_from_name_flags): New helper method.
7031
7032         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7033         this.
7034
7035         * class.c (mono_class_get_cctor): New helper method.
7036
7037         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7038         mono_class_get_method () to look up methods.
7039
7040 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7041
7042         * console-io.c: Fix the build, this should work on Windows.
7043
7044 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7045
7046         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7047         be set to null to keep things valid
7048
7049 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7050
7051         * icall.c: added Console 2.0 icalls.
7052         * Makefile.am: added console-io.[ch]
7053         * console-io.[ch]: internal calls for Console 2.0 API.
7054
7055 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7056
7057         * class.c: make sure we consider all the interfaces
7058         when calculating max_interface_id (bug found by
7059         Jeroen Frijters running ikvm).
7060
7061 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7062
7063         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7064         valuetype fields to null.
7065
7066         * object.c (set_value): Ditto. Fixes #71669.    
7067
7068 2005-01-31  Martin Baulig  <martin@ximian.com>
7069
7070         * metadata.c (mono_metadata_has_generic_params): New public
7071         function; checks whether something is a generic method.
7072
7073 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7074
7075         * appdomain.c: fix infinite recursion when adding assemblies.
7076
7077 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7078
7079         * object.c: Fix small typo to return all items for Environment.
7080         GetCommandLineArgs.
7081
7082 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7083
7084         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7085         reflection.c: more domain and assembly-unload related fixes
7086         and memory leaks plugs.
7087
7088 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7089
7090         * 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.
7091
7092 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7093
7094         * loader.c (mono_method_signature): Make this method lazy
7095         (mono_get_method_from_token): Don't computate the signature here.
7096
7097         Doing this saves quite a bit of memory. I got 90 kb on starting up
7098         monodoc. It should also save some disk reads on startup.
7099
7100         * *: MonoMethod->signature might be NULL now. You *MUST* use
7101         mono_method_signature.
7102
7103 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7104
7105         * object.c (mono_runtime_get_main_args): Return an array from the
7106         current domain here. Fixes #71938.
7107
7108 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7109
7110         * monitor.c: formatting changes to comply with the
7111         mono coding style and remove #ifdefs from the code.
7112
7113 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7114
7115         * metadata.c, private.h: remove some unneeded data
7116         and use a more compact representation for table schemas.
7117
7118 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7119
7120         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7121         to get a better distribution in hash tables.
7122         * *.c: use mono_aligned_addr_hash() where appropriate.
7123         * assembly.c: make var static.
7124
7125 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7126
7127         * domain-internals.h: Put MonoJitInfo on a diet.
7128
7129         * domain.c: Fix a warning.
7130
7131 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7132
7133         * gc.c: rework the gc handles code to reuse handles
7134         when freed.
7135
7136 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7137
7138         * domain.c: fixed long standing bug in mono_string_equal() which
7139         was brought to light with the ldstr changes.
7140
7141 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7142
7143         * reflection.c: Remove warning by adding missing include for marshal.h
7144
7145 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7146
7147         * domain.c, object.c: change the ldstr_table to hold
7148         MonoString* as keys: makes the runtime isinterned lookup
7149         faster and simplifies memory management.
7150
7151 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7152  
7153         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7154         possible to add imperative security checks before calling the icall.
7155         * reflection.c: Return security attributes on the original MonoMethod
7156         (and not the wrapped one). This fix permissions on icalls.
7157
7158 2005-01-25  Dick Porter  <dick@ximian.com>
7159
7160         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7161         the check for mktime() support actually test the mktime() return
7162         value.  "Fixes" bug 71682, though the output is still different to
7163         MS.
7164
7165 2005-01-25  Martin Baulig  <martin@ximian.com>
7166
7167         * class.c (mono_class_is_assignable_from): Make this work for
7168         generic instances.
7169
7170 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7171
7172         * marshal.c (mono_string_utf8_to_builder)
7173         (mono_string_builder_to_utf16): We might not have ownership of the
7174         string. In thise case, we need to create a new buffer.
7175
7176         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7177         be null, in which case, use the default capacity.
7178
7179 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7180
7181         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7182         GC events to the profiler.
7183
7184 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7185
7186         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7187         if you don't want the GC to run.
7188
7189 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7190
7191         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7192         start providing a GC API and keeping different implementations in
7193         their own file.
7194         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7195
7196 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7197
7198         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7199         mmap rather than allocating a huge buffer.
7200         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7201         above.
7202
7203 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7204
7205         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7206         and CheckExecutionRights.
7207         * reflection.c|h: Keep the index of the declarative security to be 
7208         used, instead of the pointer, when AOT compiler is used. Also add 
7209         class initialization when requesting demands.
7210         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7211         CheckExecutionRights. Both properties are now FALSE by default, and
7212         unmodifiable, unless the --security option is used.
7213
7214 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7215
7216         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7217         reflection.c: properly refcount images and assemblies, many leaks fixed.
7218
7219 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7220
7221         * threadpool.c: increase the timeout for threads in the thread pool to
7222         10s.  Fixes bug #67159.
7223
7224 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7225
7226         * class-internals.h: Sun's compiler insists on explicit
7227         signed on bit fields to handle then correctly.
7228
7229 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7230
7231         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7232         Make the size of the array fit only the number of invalid path
7233         chars that we have.
7234
7235         * class.c (_mono_class_get): Improve the error reporting when a
7236         class referenced is not found, to assist debugging. 
7237
7238 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7239
7240         * threads.c: fix off-by-one error.
7241         * domain.c: free data allocated in the domain.
7242
7243 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7244
7245         * reflection.c (mono_method_body_get_object): Fill out exception info
7246         as well.
7247
7248         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7249         structure.
7250         
7251 2005-01-19  Martin Baulig  <martin@ximian.com>
7252
7253         * loader.c (mono_get_method_constrained): Make this work again.
7254
7255 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7256
7257         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7258         guint16 to match the managed side.
7259
7260         * reflection.c (mono_reflection_body_get_object): Fill out local
7261         variables array.
7262
7263         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7264         as well.
7265
7266         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7267         'local_var_sig_token'.
7268
7269 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7270
7271         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7272         System.Drawing.
7273
7274         * reflection.c (mono_method_body_get_object): Handle abstract and
7275         runtime methods.
7276
7277 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7278
7279         * marshal.c, loader.c, class-internals.h, reflection.c:
7280         store the emthod data for a wrapper in an array instead of a list.
7281
7282 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7283
7284         * marshal.c: change the code to allocate memory more
7285         conservatively for method wrappers.
7286
7287 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7288
7289         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7290         fields from MonoClass to the marshal info structure where they belong.
7291
7292 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7293
7294         * class.c, object.c, class-internals.h, marshal.c: rearrange
7295         some fields and tweak some types to lower memory usage.
7296
7297 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7298
7299         * threads.c (signal_thread_state_change): Handle the case when the
7300         target thread is the current thread.
7301
7302         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7303
7304         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7305         emit_ptr_to_object_conv. 
7306
7307         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7308         marshalling. Fixes #71352.
7309
7310 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7311
7312         * metadata.h, blob.h: move table enum to blob.h so it can be included
7313         in any header.
7314         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7315         cut the size of MonoImage/MonoDynamicImage.
7316
7317 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7318
7319         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7320
7321 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7322
7323         * reflection.c, reflection.h, icall.c: add a function to check
7324         if an attribute type is defined for a metadata object.
7325
7326 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7327
7328         * object-internals.h: Added some needed fields from StringBuilder class.
7329         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7330
7331 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7332
7333         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7334         threads before shutting down the runtime.
7335
7336         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7337
7338 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7339
7340         * object-internal.h, threads.c: implement stacksize and 
7341         parameterized thread start functionality (requires
7342         matching corlib). Marked broken code for later removal.
7343
7344 2005-01-12  Martin Baulig  <martin@ximian.com>
7345
7346         * class-internals.h (MonoGenericClass): Moved the `initialized'
7347         flag to MonoDynamicGenericClass, removed `init_pending'.
7348         (MonoGenericInst): Added `is_reference' flag.
7349
7350 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7351
7352         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7353         inside the MSDOS header. Fixes #71201.
7354
7355         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7356         gc thread.
7357         (mono_domain_finalize): Ditto.
7358
7359 2005-01-12  Martin Baulig  <martin@ximian.com>
7360
7361         * class.c (mono_get_shared_generic_class): Use the cache for
7362         non-dynamic generic classes.
7363
7364         * class-internals.h (mono_class_create_generic_2): Removed
7365         function prototype, this function is now static inside class.c.
7366
7367         * class.c (mono_class_create_generic_2): Made this static, only
7368         call it from mono_class_init() and mono_class_setup_parent().
7369         (collect_implemented_interfaces_aux): Call mono_class_init() on
7370         the interfaces we collect.
7371         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7372
7373 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7374
7375         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7376         it a real thread handle.
7377
7378         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7379         MonoJitExceptionInfo, since each catch clause needs its own variable.
7380         
7381 2005-01-11  Dick Porter  <dick@ximian.com>
7382
7383         * image.c (mono_pe_file_open): New variant on mono_image_open()
7384         that does not set up the CLI metadata; used for FileVersionInfo so
7385         it can get the data for windows binaries too.
7386         
7387         * process.c (process_read_string_block): Don't read off the end of
7388         the StringTable block.
7389
7390         These both fix bug 70766.
7391
7392 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7393
7394         * gc.c: set some fields to NULL at GC cleanup time.
7395         * threads.c: if we quit the main thread, call exit ().
7396
7397 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7398
7399         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7400
7401 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7402
7403         * threads.h, threads.c, object.c: added accessor and settor for
7404         main_thread. Handle it specially when exiting from it: wait
7405         for other foreground threads to exit.
7406
7407 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7408
7409         * process.c, verify.c: remove some bloat.
7410
7411 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7412
7413         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7414         the calling convention to cdecl under win32.
7415
7416 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7417
7418         * object.c (mono_object_get_size): New function to get the size of
7419         an object instance.
7420
7421         * profiler.c (simple_allocation): Use above.
7422
7423 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7424
7425         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7426         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7427         get an appdomain by it's id and we can't assume the root's id is 0).
7428         * domain-internals.h: Change the function prototype to match.
7429         * icall.c: Change the icall table for AppDomain.
7430
7431 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7432
7433         * locales.c (string_invariant_compare_char): Only compute
7434         GUnicodeTypes in the case where we need them.  Test for ordinality
7435         first and return if so.
7436
7437         From the commit:
7438
7439                 /*
7440                  * FIXME: here we must use the information from c1type and c2type
7441                  * to find out the proper collation, even on the InvariantCulture, the
7442                  * sorting is not done by computing the unicode values, but their
7443                  * actual sort order.
7444                  */
7445
7446 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7447
7448         * loader.c: for P/Invoke methods, allow the "Internal" shared
7449         library name to refer to the calling process symbol namespace.
7450
7451 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7452
7453         * Makefile.am: Add the security manager to the build.
7454         * security-manager.c|h: New. Initialization of the security manager.
7455
7456 2005-01-07  Dick Porter  <dick@ximian.com>
7457
7458         * threads.c: 
7459         * monitor.c: Update thread state during Monitor and WaitHandle
7460         waits.  Fixes bug 71031.
7461
7462 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7463
7464         * reflection.c (property_encode_signature): Correctly handle when the
7465         property has no methods.
7466
7467 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7468
7469         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7470         
7471         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7472         fields from mb, not rmb. Fixes #71017.
7473
7474         * marshal.c (emit_ptr_to_str_conv): Add support for 
7475         ByValTStr -> string conversion. Fixes #71015.
7476
7477         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7478
7479         * mempool.c (mono_mempool_contains_addr): New helper function.
7480
7481 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7482
7483         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7484         HasSematics encoded fields.
7485         
7486         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7487         invalid string marshalling.
7488
7489         * metadata.c: Fix warnings.
7490         
7491 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7492
7493         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7494         profiler support.
7495
7496 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7497
7498         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7499         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7500         tests.
7501
7502 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7503
7504         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7505         so methods containing these can be AOTed.
7506
7507 2005-01-03  Martin Baulig  <martin@ximian.com>
7508
7509         * loader.c (find_method): Removed the hack for generic instances.
7510         (method_from_memberref): If our parent is a generic instance, pass
7511         its generic type definition to find_method() and then inflate the
7512         method.
7513         (mono_get_method_constrained): Pass the generic type definition to
7514         find_method() and inflate the method later.
7515
7516         * class-internals.h (MonoStats): Added `generic_class_count'.
7517
7518         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7519         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7520
7521         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7522         generic type definitions.
7523
7524 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7525
7526         * loader.c icall.c: Fix warnings.
7527
7528 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7529
7530         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7531         blittable types. Fixes #70864.
7532
7533 2004-12-29  Martin Baulig  <martin@ximian.com>
7534
7535         * icall.c
7536         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7537
7538         * reflection.c (mono_method_get_object): Create a
7539         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7540         call mono_get_inflated_method().
7541
7542         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7543
7544 2004-12-27  Martin Baulig  <martin@ximian.com>
7545
7546         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7547         (MonoMethodInflated): Added `inflated' field.
7548
7549         * class.c (mono_class_inflate_generic_method): Don't really
7550         inflate the method here; just set the `is_inflated' flag in the
7551         MonoMethod.
7552         (mono_class_get_inflated_method): Actually inflate the method here
7553         if it's not already inflated; we use the MonoMethodInflated's new
7554         `inflated' field as a cache.
7555
7556 2004-12-26  Martin Baulig  <martin@ximian.com>
7557
7558         * class.c
7559         (inflate_generic_class): Moved some code out of inflate_generic_type().
7560         (mono_class_inflate_generic_method): If we're already inflated,
7561         inflate the context and use the declaring method; ie. make sure
7562         the declaring method of an inflated method is always the generic
7563         method definition.
7564         (mono_class_create_from_typedef): Create
7565         `class->generic_container->context->gclass'.
7566
7567 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7568
7569         * metadata-internals.h, marshal.c, reflection.c: More
7570         MonoGHashTable->GHashTable.
7571
7572         * domain-internals.h, class.c: Change MonoGHashTable's into
7573         GHashTables for some cases where no gc stuff is used
7574
7575         All users: update apis
7576
7577 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7578
7579         * metadata.c (builtin_types): Make this `const'. Makes this get
7580         put into the shareable section.
7581         (mono_metadata_init): Casts to make gcc happy.
7582
7583 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7584
7585         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7586
7587 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7588
7589         * icall.c: Added an internal call to retrieve the position and length
7590         of assembly-level declarative security attributes (RequestMinimum, 
7591         RequestOptional and RequestRefuse). This is used by the Assembly class
7592         to re-create the corresponding permission sets.
7593
7594 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7595
7596         * marshal.c: fix the stelemref wrapper to be type correct
7597         (and faster).
7598
7599 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7600
7601         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7602         to do key & 0x7fffffff. Hashtable already does this. It just
7603         results in longer code.
7604
7605 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7606
7607         * appdomain.c: Bump corlib version.
7608         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7609         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7610         * reflection.c|h: Add functions to get declarative security infos
7611         (blob position and length) for assemblies, classes and methods.
7612
7613 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7614
7615         * reflection.c: sort the constant table (bug #70693).
7616
7617 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7618
7619         * object-internals.h, threads.c, domain.c: add accessors for
7620         the MonoThread and MonoDomain tls keys.
7621
7622 2004-12-18  Martin Baulig  <martin@ximian.com>
7623
7624         * class.c (inflate_generic_type): If we're inflating a generic
7625         instance, set `ngclass->context->container = context->container';
7626         ie. the container we inflated into.
7627
7628         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7629         inflate_generic_type() changes.
7630
7631 2004-12-17  Martin Baulig  <martin@ximian.com>
7632
7633         * class-internals.h
7634         (MonoGenericClass): Replaced `MonoType *generic_type' with
7635         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7636         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7637         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7638
7639 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7640
7641         * exception.c (mono_exception_from_token): New helper function.
7642
7643 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7644
7645         * assembly.c (mono_assembly_load_with_partial_name): Call 
7646         mono_assembly_loaded before invoking the preload hooks. Fixes
7647         #70564.
7648
7649         * object-internals.h (MonoThread): Change culture_info and 
7650         ui_culture_info into an array.
7651
7652         * threads.c: Cache culture info objects from more than one appdomain.
7653
7654         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7655         current UI culture.
7656
7657 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7658
7659         * threads.h threads.c appdomain.c: Clear the culture_info field of
7660         all threads during unloading if they point to an object in the dying
7661         appdomain.
7662
7663 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7664
7665         * culture-info.h (TextInfoEntry): New struct
7666         * object-internals.h: sync with managed
7667         * locales.c: fill the `text_info_data' field
7668         * culture-info-tables.h: update
7669
7670 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7671
7672         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7673         collector.
7674
7675 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7676
7677         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7678         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7679
7680 2004-12-12  Martin Baulig  <martin@ximian.com>
7681
7682         * mono-debug-debugger.c (write_type): If we're an enum and the
7683         builtin types have already been initialized, call mono_class_init().
7684
7685 2004-12-11  Martin Baulig  <martin@ximian.com>
7686
7687         * metadata.c (mono_metadata_load_generic_params): Added
7688         `MonoGenericContainer *parent_container' argument; automatically
7689         compute `container->is_method'; pass the correct owner to
7690         get_constraints().      
7691
7692         * reflection.c (compare_genericparam): Sort the GenericParam table
7693         according to increasing owners. 
7694
7695 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7696
7697         * profiler.c: allow disabling the default profiler.
7698
7699 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7700
7701         * decimal.c, icall.c: allow disabling System.Decimal support.
7702
7703 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7704
7705         * reflection.c: Add support for null attribute arguments.
7706
7707 2004-12-09  Martin Baulig  <martin@ximian.com>
7708
7709         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7710         names to get rid of compiler warnings.
7711
7712 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7713
7714         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7715         mono_marshal_load_type_info (). Fixes #69625.
7716         (mono_marshal_get_ptr_to_struct): Likewise.
7717
7718 2004-12-08  Martin Baulig  <martin@ximian.com>
7719
7720         * mono-debug.h: Bumped version number to 47.
7721
7722         * mono-debug-debugger.c
7723         (mono_debugger_event_handler, mono_debugger_event): Take two
7724         guint64 arguments insteed of a gpointer and a guint32.  
7725
7726 2004-12-08  Martin Baulig  <martin@ximian.com>
7727
7728         * debug-mono-symfile.h
7729         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7730         `address' to `native_offset'.
7731
7732 2004-12-08  Martin Baulig  <martin@ximian.com>
7733
7734         * class.c (mono_class_create_from_typespec): Only inflate if we
7735         either have `context->gclass' or `context->gmethod'.
7736
7737 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7738
7739         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7740
7741         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7742
7743         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7744
7745         * reflection.c (mono_assembly_get_object): Remove the workaround put
7746         in for the release.
7747         
7748         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7749
7750         * appdomain.c: Bump corlib version.
7751
7752         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7753         be visible in other appdomains.
7754
7755 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7756
7757         * threads.c: Interlocked inc and dec for longs were messed up,
7758         use a KISS based impl for this. Fixes 70234
7759
7760 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7761
7762         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7763
7764 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7765
7766         * icall.c: fix to follow policy not to allow struct
7767         arguments in icalls.
7768
7769 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7770
7771         * process.c: make the patch that handles spaces in file paths work
7772         on mono/windows too.
7773
7774 2004-12-06  Martin Baulig  <martin@ximian.com>
7775
7776         * class.c (mono_class_create_generic): Call
7777         mono_class_setup_supertypes() if we're dynamic.
7778         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7779
7780 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7781
7782         * object-internals.h: Add new fields to MonoThread.
7783
7784         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7785
7786         * icall.c threads-types.h threads.c: Add new icalls.
7787
7788         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7789
7790         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7791         managed side.
7792
7793         * appdomain.c: Bump corlib version.
7794
7795         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7796         internal assemblies. Fixes #69181.
7797
7798 2004-12-05  Martin Baulig  <martin@ximian.com>
7799
7800         * class.c (mono_class_inflate_generic_signature): Make this a
7801         no-op if `context' is NULL or we don't have any type parameters;
7802         also copy `sentinelpos'.        
7803
7804 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7805
7806         * image.c: Add unbox_wrapper_cache.
7807
7808         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7809
7810         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7811         function generator.
7812         
7813         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7814         Fixes #70173.
7815
7816         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7817         
7818 2004-12-04  Martin Baulig  <martin@ximian.com>
7819
7820         * loader.c (mono_method_get_signature_full): New public function;
7821         like mono_method_get_signature(), but with an additional
7822         `MonoGenericContext *' argument.
7823
7824         * class.c (mono_class_inflate_generic_signature): Formerly known
7825         as inflate_generic_signature(); make this public.
7826
7827 2004-12-04  Martin Baulig  <martin@ximian.com>
7828
7829         * metadata.c
7830         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7831         instead of a `MonoGenericContainer *'.  
7832         (mono_metadata_parse_array_full): Likewise.
7833         (mono_metadata_parse_signature_full): Likewise.
7834         (mono_metadata_parse_method_signature_full): Likewise.
7835         (mono_metadata_parse_generic_inst): Likewise.
7836         (mono_metadata_parse_generic_param): Likewise.
7837         (mono_metadata_parse_mh_full): Likewise.
7838         (mono_type_create_from_typespec_full): Likewise.
7839
7840 2004-12-03  Martin Baulig  <martin@ximian.com>
7841
7842         * class-internals.h (MonoGenericContainer): Replaced the
7843         `MonoGenericContext * pointer with a `MonoGenericContext'
7844         structure and made it the first element.
7845
7846 2004-12-03  Martin Baulig  <martin@ximian.com>
7847
7848         * class.c
7849         (inflate_generic_type): Set the `context->container' when creating
7850         a new MonoGenericContext.
7851         (mono_class_inflate_generic_method): Likewise.
7852         (mono_class_create_from_typespec): Just use `context->container'
7853         to get the container.
7854
7855         * loader.c (method_from_methodspec): Set `context->parent' from
7856         `context->container' - and if that's a method container, use its
7857         parent.  Also set the `context->container' when creating a new
7858         MonoGenericContext.
7859         (mono_get_method_from_token): Use just `context->container' to get
7860         the container.
7861
7862         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7863         `gclass->context->container'.
7864
7865         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7866         the `context->container' when creating a new MonoGenericContext.
7867
7868 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7869
7870         * reflection.c (compare_genericparam): Sort params with identical
7871         owner by their number. Fixes gen-111 on sparc.
7872
7873 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7874
7875         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7876         around the domain changes.
7877
7878         * appdomain.c (mono_domain_unload): Handle the case when the thread
7879         calling Unload is itself being aborted during unloading. Fixes #70022.
7880
7881         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7882
7883         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7884         checkpoint_func as an icall so it gets a wrapper.
7885         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7886         in the cross-appdomain wrappers too.
7887
7888         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7889
7890         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7891
7892         * reflection.c: Fix some memory leaks.
7893         
7894 2004-12-02  Martin Baulig  <martin@ximian.com>
7895
7896         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7897
7898         * metadata.c (generic_class_cache): New static hashtable.
7899         (mono_metadata_lookup_generic_class): New public method.
7900
7901 2004-12-02  Martin Baulig  <martin@ximian.com>
7902
7903         * class.c (mono_class_create_from_typedef): Call
7904         mono_class_setup_parent() and mono_class_create_mono_type() before
7905         parsing the interfaces.
7906
7907 2004-12-02  Martin Baulig  <martin@ximian.com>
7908
7909         * metadata.c (generic_inst_cache): New static hashtable.
7910         (mono_metadata_lookup_generic_inst): New public function.
7911         (mono_metadata_inflate_generic_inst): New public function.
7912         (mono_metadata_parse_generic_inst): New public function.
7913         (do_mono_metadata_parse_generic_class): Use the new
7914         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7915         since this'll also use the cache.
7916
7917         * reflection.c (mono_reflection_bind_generic_method_parameters):
7918         Use mono_metadata_lookup_generic_inst() to use the new cache.
7919
7920         * class.c (inflate_mono_type): Use
7921         mono_metadata_inflate_generic_inst() to inflate a generic
7922         instance; this'll also use the new cache.
7923
7924         * loader.c (method_from_methodspec): Use
7925         mono_metadata_parse_generic_inst() and
7926         mono_metadata_inflate_generic_inst() rather than parsing it
7927         manually, so we can use the new cache.
7928
7929 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7930
7931         * threads.c (wait_for_tids): Do not incorrectly free threads when 
7932         the wait times out.
7933
7934 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
7935
7936         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
7937         iter->args based on whether parameters are passed in registers (i.e.
7938         MONO_ARCH_REGPARMS is defined)
7939
7940 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
7941
7942         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
7943         the exception message. Fixes #70070.
7944         (method_from_methodspec): Fix warnings.
7945
7946 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7947
7948         * process.c: (complete_path) return the path quoted
7949
7950 2004-12-01  Martin Baulig  <martin@ximian.com>
7951
7952         * class-internals.h (MonoGenericInst): New structure.
7953         (MonoGenericClass): Replaced `type_argc', `type_argv' and
7954         `is_open' with `MonoGenericInst *inst'.
7955         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
7956         `is_open' with `MonoGenericInst *inst'.
7957
7958 2004-11-30  Martin Baulig  <martin@ximian.com>
7959
7960         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
7961
7962         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
7963         to `generic_class_cache'.
7964
7965         * metadata.c
7966         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
7967         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
7968         (mono_generic_inst_is_valuetype): Renamed to
7969         mono_generic_class_is_valuetype().
7970
7971         * class-internals.h
7972         (MonoGenericInst): Renamed to MonoGenericClass.
7973         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
7974         (MonoClass): Renamed `generic_inst' to `generic_class'.
7975         (MonoGenericContext): Renamed `ginst' to `gclass'.
7976
7977         * object-internals.h
7978         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
7979
7980         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
7981         mono_reflection_generic_class_initialize().
7982
7983         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
7984         now known as "System.Reflection.MonoGenericClass".
7985         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
7986
7987 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
7988
7989         * class-internals.h: Added a flag field to MonoClass to cache the
7990         declarative security attributes actions associated with the class.
7991         * domain-internals.h: Added booleans to MonoJitInfo to cache the
7992         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
7993         applicable to the JITted method.
7994         * reflection.c|h: Added functions to extract (as flags) which security
7995         actions are available (declaratively) for a method, class or assembly.
7996         * metadata.c|h: Added functions to search the declarative security
7997         table in the metadata.
7998         
7999 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8000
8001         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8002         EXPORTEDTYPES are already in the class name cache, so there is no
8003         need to add extra code here to look at them. Just removes a bit of
8004         cruft.
8005
8006         (ves_icall_System_Environment_get_TickCount): No need for #if
8007         WINDOWS. We already have the code in io-layer.
8008
8009 2004-11-28  Martin Baulig  <martin@ximian.com>
8010
8011         * loader.c
8012         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8013         Fixes gen-112.cs.
8014
8015 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8016
8017         * assembly.c (do_mono_assembly_open): Instead of having a
8018         conditional WITH_BUNDLE, incorporate support for bundles here, by
8019         having a global `bundles' variable holding a pointer to the actual
8020         bundles. 
8021
8022         (mono_register_bundled_assemblies): New API call used by the
8023         bundle code. 
8024
8025         See mkbundle.1 for details.
8026         
8027 2004-11-27  Martin Baulig  <martin@ximian.com>
8028
8029         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8030         the vtable for generic methods.
8031
8032 2004-11-26  Martin Baulig  <martin@ximian.com>
8033
8034         * metadata.c
8035         (mono_metadata_generic_method_hash): New public function.
8036         (mono_metadata_generic_method_equal): Likewise.
8037
8038         * class-internals.h
8039         (MonoGenericContainer): Added `GHashTable *method_hash'.
8040
8041         * reflection.c (ReflectionMethodBuilder): Added
8042         `MonoGenericContainer *generic_container'.
8043         (reflection_methodbuilder_to_mono_method): Don't create a new
8044         MonoGenericContainer each time we're called.
8045         (mono_reflection_bind_generic_method_parameters): Use
8046         `container->method_hash' to cache the results so we don't create a
8047         different method if we're called several times with the same
8048         arguments.
8049
8050         * loader.c (method_from_methodspec): Use the new
8051         `container->method_hash' here, too.
8052
8053 2004-11-26  Martin Baulig  <martin@ximian.com>
8054
8055         * class.c (inflate_generic_signature): Correctly compute
8056         `res->has_type_parameters'.
8057         (mono_class_vtable): Use the `has_type_parameters' flag to
8058         determine whether we're a generic method.
8059
8060         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8061
8062 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8063
8064         * object.c (mono_runtime_run_main): Fix a small memory leak.
8065
8066 2004-11-25  Martin Baulig  <martin@ximian.com>
8067
8068         * class.c (set_generic_param_owner): Fixed the loop.
8069
8070 2004-11-25  Martin Baulig  <martin@ximian.com>
8071
8072         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8073         generic methods.
8074
8075 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8076
8077         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8078         names. Fixes #69787.
8079
8080 2004-11-24  Martin Baulig  <martin@ximian.com>
8081
8082         * class.c (mono_class_create_generic_2): If we don't have a
8083         `ginst->parent', inflate `gklass->parent' to get our parent.
8084
8085 2004-11-24  Martin Baulig  <martin@ximian.com>
8086
8087         * reflection.c (compare_genericparam): Correctly sort the
8088         GenericParam table; fixes #69779.
8089
8090 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8091
8092         * reflection.c: When writing a PE file, don't create a huge
8093         buffer in memory. Just write the arrays we have to the file.
8094         This reduces memory usage.
8095
8096         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8097         globally.
8098
8099 2004-11-17  Martin Baulig  <martin@ximian.com>
8100
8101         * class.c (mono_class_init): Don't setup `class->parent' for
8102         dynamic instances; moved this to mono_class_generic_2().
8103         (mono_class_create_generic): Also set `klass->inited' for dynamic
8104         generic instances.
8105         (mono_class_create_generic_2): Don't do anything for dynamic
8106         generic instances.  Set `klass->parent' here and also call
8107         mono_class_setup_parent() here. 
8108
8109         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8110         `MonoType *parent' argument; set `ginst->parent' before calling
8111         mono_class_create_generic_2(), so we set the correct parent.
8112
8113 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8114
8115         * reflection.c: allow getting attributes from ModuleBuilder
8116         (used by ikvm).
8117
8118 2004-11-17  Martin Baulig  <martin@ximian.com>
8119
8120         * class.c (mono_class_create_from_typedef): If a type parameter is
8121         inherited from an outer class, set its owner to that class.
8122
8123 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8124
8125         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8126           for (int*) written size. This fixes bug #69592.
8127
8128 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8129
8130         * icall.c: Added IsAuthenticodePresnet internal call.
8131         * image.c|h: New function that check a MonoImage for an Authenticode
8132         signature in the certificate PE data directory.
8133         * security.c|h: New internal call to ask the runtime if an 
8134         Authenticode signature seems referenced in the PE header.
8135
8136 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8137
8138         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8139
8140         * reflection.c (mono_image_create_pefile): Free the assembly streams
8141         after writing out the assembly file.
8142
8143         * object.c (mono_runtime_run_main): Fix small memory leak.
8144
8145         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8146         property access modifiers. Fixes #69389.
8147
8148 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8149
8150         * domain.c, object.c, object-internals.h, domain-internals.h,
8151         object.h, marshal.c: keep dynamic code info per domain.
8152
8153 2004-11-15  Martin Baulig  <martin@ximian.com>
8154
8155         * class.c (mono_type_get_name_recurse): Put type arguments in
8156         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8157         see bug #68387.
8158
8159 2004-11-15  Martin Baulig  <martin@ximian.com>
8160
8161         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8162         (mono_class_setup_vtable): When computing `the_cname' for a
8163         generic instance, don't include the namespace since we'd otherwise
8164         add it twice.
8165
8166 2004-11-15  Martin Baulig  <martin@ximian.com>
8167
8168         * class.c (mono_class_create_generic): Changed return type to void.
8169         (mono_class_create_generic_2): New public function; setup
8170         `class->method', `class->field' and `class->interfaces' here
8171         instead of in mono_class_init().
8172
8173         * class.h (mono_class_create_generic): Moved to class-internals.h.
8174
8175 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8176
8177         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8178         rather than writing to memory, write to this file. Right now,
8179         we are just writting into a buffer, and copying that. However
8180         we can avoid the buffer later.
8181
8182         (mono_dynamic_stream_reset): new function
8183
8184         * icall.c, object-internals.h: update for the above.
8185
8186 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8187
8188         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8189         have been using gc'd memory. First it is slower, unlikely
8190         the comment in the source code said, secondly, it increases
8191         our footprint to do it in the gc.
8192
8193         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8194         the method so that it does not have to copy to managed code.
8195
8196 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8197
8198         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8199
8200 2004-11-12  Martin Baulig  <martin@localhost>
8201
8202         * reflection.c (mono_image_create_token): Allow generic method
8203         definitions here, since they may appear in an `.override'; see
8204         gen-98/gen-99 for an example.
8205
8206 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8207
8208         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8209         #69365.
8210
8211         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8212         descriptive.
8213
8214 2004-11-11  Martin Baulig  <martin@ximian.com>
8215
8216         * class.c (mono_class_setup_vtable): In an explicit interface
8217         implementation, the method name now includes the arity.
8218
8219 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8220
8221         * object.c (mono_array_full_copy): Fix warning.
8222
8223 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8224
8225         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8226         mono_class_get_method_from_name() instead.
8227         
8228         * class-internals.h: Added two new types of wrappers. 
8229         Added MonoRemotingTarget enum. Added new trampoline function type, which
8230         takes an additional MonoRemotingTarget value as parameter, so it is
8231         possible to request a trampoline for a specific target.
8232         
8233         * class.c: Added new mono_class_get_method_from_name() method.
8234         
8235         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8236         general remoting sinks and one specific for cross domain calls.
8237         
8238         * debug-helpers.c: Added new wrapper names.
8239         
8240         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8241         of a remote class.
8242         
8243         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8244         
8245         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8246         with several other methods (mono_marshal_get_xappdomain_dispatch,
8247         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8248         and others) can generate a fast remoting wrapper for cross domain calls.
8249         More information can be found in docs/remoting.
8250         Other changes: Removed mono_find_method_by_name, and used
8251         mono_class_get_method_from_name instead.
8252         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8253         is stored in the remoting invoke hashtable.
8254         
8255         * marshal.h: published the new method for getting the xdomain wrapper,
8256         and also added a method for getting the adequate wrapper for a given
8257         method and target.
8258         
8259         * object-internals.h, object.c: Added a couple of methods for capying and
8260         cloning arrays.
8261         Modified mono_install_remoting_trampoline, which takes the new remoting
8262         trampoline that has a remoting target as parameter.
8263         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8264         will return the most suitable vtable for the target.
8265         Added mono_remote_class_vtable, which returns the vtable of a remote class
8266         (which can be the normal remoting vtable or the xdomain vtable).
8267         
8268         * threads.c: the xdomain invoke and dispatch wrappers must also be
8269         protected against interruptions.
8270
8271 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8272
8273         * icall.c: use memmove in BlockCopyInternal when the source and
8274         destination arrays are the same.
8275
8276 2004-11-09  Martin Baulig  <martin@ximian.com>
8277
8278         * class-internals.h (MonoGenericContainer): Removed `method' and
8279         `signature', replaced them with `is_method' and `is_signature'
8280         flags.  Added `context'.
8281
8282         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8283         instead of a `MonoGenericContainer *'.
8284
8285         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8286         for dynamic type parameters.
8287         (mono_metadata_load_generic_params): Setup `container->context'.
8288
8289         * reflection.c (mono_reflection_setup_generic_class): Setup
8290         `tb->generic_container->context'.
8291         (do_mono_reflection_bind_generic_parameters): Use
8292         mono_class_inflate_generic_type() to correctly inflate types,
8293         rather than using our own hack just for MONO_TYPE_VAR.
8294
8295 2004-11-09  Martin Baulig  <martin@ximian.com>
8296
8297         * class.c (mono_class_inflate_generic_method): Small fix; don't
8298         crash here.
8299
8300         * icall.c
8301         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8302         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8303         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8304         (ves_icall_Type_BindGenericParameters): Likewise.
8305         (ves_icall_Type_get_IsGenericInstance): Likewise.
8306         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8307         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8308         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8309         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8310
8311 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8312
8313         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8314         assembly versions and public key tokens. Fixes #69113.
8315
8316 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8317
8318         * metadata.c: fix bug introduced with the type cache changes
8319         on 2004-11-06.
8320
8321 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8322
8323         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8324         the MonoClass pointer instead of the token in exception clauses.
8325         * reflection.c: updates for the above and make the code not depend
8326         on the structure of MonoExceptionClause.
8327
8328 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8329
8330         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8331         Add support for dynamic assemblies. Fixes #69114.
8332
8333         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8334
8335 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8336
8337         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8338         since most only those methods use it. the code member of
8339         MonoMethodPInvoke was dead, so that can be removed too. Also,
8340         remove inline_count (again, not used), and move slot so that it
8341         can share bits with some other flags. This saves 8 bytes in the
8342         structure and gives us about 50 kb back for mcs helloworld.cs
8343
8344         * *.[ch]: Do naming changes for the above.
8345
8346         * loader.c (mono_method_get_header): Lazily init the header
8347         on first access.
8348         (mono_get_method_from_token): don't init the header here
8349         (mono_free_method): the header may never be allocated
8350
8351         Overall, this saves 150 kb of unmanaged allocations
8352         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8353         memory at runtime.
8354         
8355         * loader.c, loader.h (mono_method_get_header): new accessor.
8356
8357         * *.[ch]: use the above method. Prepares us to lazily load
8358         the header.
8359
8360         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8361         three warnings, which are actual bugs (see 69206).
8362
8363         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8364         unused. Saves a cool 4 bytes / method.
8365
8366 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8367
8368         * metadata.c (builtin_types): Add types for System.Object here.
8369         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8370         for a class or valuetype from klass->this_arg or klass->byval_arg.
8371
8372         On mcs for a hello world, this gets us down from 21836 MonoType's
8373         to 14560.
8374
8375         (mono_metadata_free_type): Account for the above change.
8376
8377 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8378
8379         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8380         exception instead of asserting if name is null.
8381         (ves_icall_System_AppDomain_GetData): Ditto.
8382
8383 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8384
8385         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8386         EnumBuilder.
8387
8388         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8389         Return NULL when the domain does not have entry_assembly set.
8390
8391         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8392         Add a 'resource_modules' argument.
8393         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8394
8395         * reflection.c (mono_reflection_create_runtime_class): Move setting
8396         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8397         for enums too.
8398
8399         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8400         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8401         Throw an ArgumentNullException if 'ptr' is null.
8402
8403         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8404         assemblies here. Fixes #69020.
8405
8406 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8407
8408         * reflection.c (build_compressed_metadata): Fix the previous patch for
8409         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8410         the stack.
8411
8412 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8413
8414         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8415         the cultures is false. Fixes #69090.
8416
8417         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8418         detected by valgrind.
8419         
8420         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8421         TypeResolve multiple times for the same type. Fixes #65577.
8422
8423 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8424
8425         * marshal.c: Avoid using ldftn to call managed functions. It is
8426         much slower than just a call.
8427
8428         * reflection.c (mono_module_get_object): free the basename we
8429         allocate here from glib.
8430         
8431         * reflection.c (ensure_runtime_vtable): make sure to free
8432         overrides.  Also, we were allocating an array of MonoMethod not an
8433         array of MonoMethod*.
8434
8435         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8436
8437         * image.c (mono_image_close): free image->guid here.
8438
8439 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8440
8441         * reflection.c: Fix some spec conformance issues with the PE file
8442         structures so mcs compiled apps run on the Net 2.0 beta.
8443
8444 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8445
8446         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8447         Implement this. Fixes #67264.
8448
8449         * debug-helpers.h debug-helpers.c marshal.c: Move 
8450         mono_find_method_by_name to debug-helpers.c.
8451
8452 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8453
8454         * object.c (mono_release_type_locks): type_initialization_hash is
8455         a GHashTable.
8456
8457         * reflection.c object.c object-internals.h: Fix warnings.
8458
8459         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8460         without accessors. Fixes #61561.
8461
8462         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8463         application base from the root domain if not set. Fixes #65641.
8464         (mono_runtime_init): Fix warning.
8465
8466 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8467
8468         * appdomain.c: call mono_thread_pool_init.
8469         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8470         of worker threads based on the number of CPUs and the environment
8471         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8472         for non-windows (windows) systems.
8473
8474 2004-10-27  Chris Toshok  <toshok@ximian.com>
8475
8476         * mono-debug-debugger.c (write_class): don't call mono_class_init
8477         here, as even with the check for (!klass->init_pending), we get
8478         into a situation where we're hitting cycles in class
8479         initialization.  Fixes #68816.
8480
8481 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8482
8483         * image.c: Avoid overwriting values in the loaded_images_hash when an
8484         assembly is loaded multiple times. Fixes #61152.
8485
8486         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8487         so multiple satellite assemblies for the same name can be loaded.
8488         Fixes #68259.
8489
8490         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8491         not NULL.
8492
8493         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8494         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8495
8496         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8497         pending finalizers are not invoked after the appdomain has been 
8498         unloaded. Fixes #67862.
8499
8500 2004-10-22  Martin Baulig  <martin@ximian.com>
8501
8502         * mono-debug-debugger.c
8503         (mono_debugger_runtime_invoke): Don't box valuetypes.
8504
8505 2004-10-22  Chris Toshok  <toshok@ximian.com>
8506
8507         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8508         don't hide private methods.
8509
8510 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8511
8512         * icall.c: Allows the runtime to "share" (when known) the public key
8513         token of an assembly. This avoid the need to recalculate the token 
8514         (from the public key) in managed code.
8515
8516 2004-10-21  Chris Toshok  <toshok@ximian.com>
8517
8518         * debug-helpers.c (append_class_name): argh, revert last patch.
8519         
8520 2004-10-21  Chris Toshok  <toshok@ximian.com>
8521
8522         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8523         not '/', so that it matches what the debugger uses to look up
8524         methods.
8525
8526 2004-10-21  Martin Baulig  <martin@ximian.com>
8527
8528         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8529         public method; this is called each time an exception is thrown and
8530         allows the debugger to use exception catch points.
8531
8532 2004-10-21  Martin Baulig  <martin@ximian.com>
8533
8534         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8535         the stack pointer and the exception object in some struct and pass
8536         that to the debugger.
8537
8538 2004-10-21  Chris Toshok  <toshok@ximian.com>
8539
8540         * mono-debug-debugger.c (do_write_class): add instance/static
8541         event support.  We don't expose "raise" or "other" yet.
8542         (event_is_static): new method.
8543
8544 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8545
8546         * mono-debug-debugger.c
8547         (mono_debugger_handle_exception): Remove
8548         bogus return value for fussy compilers.
8549
8550 2004-10-20  Martin Baulig  <martin@ximian.com>
8551
8552         * mono-debug-debugger.c
8553         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8554         (mono_debugger_handled_exception): Likewise.
8555
8556 2004-10-20  Martin Baulig  <martin@ximian.com>
8557
8558         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8559         MONO_DEBUGGER_EVENT_EXCEPTION.
8560
8561         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8562         public function to send the debugger a notification for an
8563         exception and inform it about a catch/finally clause.
8564
8565 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8566
8567         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8568         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8569         fix 2.95 build. 
8570
8571         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8572
8573 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8574
8575         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8576         marshalled as [In,Out]. Fixes #58325.
8577
8578 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8579
8580         * reflection.c (mono_method_body_get_object): Implement some fields.
8581
8582 2004-10-12  Martin Baulig  <martin@ximian.com>
8583
8584         * reflection.c (mono_reflection_bind_generic_parameters): Small
8585         fix, correctly retrieve our parent from a generic instance.
8586
8587 2004-10-12  Martin Baulig  <martin@ximian.com>
8588
8589         * metadata.c (mono_metadata_generic_param_equal): We always have
8590         an owner.
8591
8592         * class.c
8593         (mono_class_from_generic_parameter): We need to have an owner.
8594         (my_mono_class_from_generic_parameter): Likewise.
8595
8596         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8597         mono_reflection_create_generic_class() and added a new
8598         mono_reflection_setup_generic_class().  
8599         (mono_reflection_initialize_generic_param): If we're a nested
8600         generic type and inherited from the containing class, set our
8601         owner to the outer class.
8602
8603 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8604
8605         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8606
8607         * reflection.c (mono_method_body_get_object): New function to create
8608         a MethodBody object.
8609
8610         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8611
8612 2004-10-11  Martin Baulig  <martin@ximian.com>
8613
8614         * metadata.c (_mono_metadata_type_equal): Renamed to
8615         do_mono_metadata_type_equal() and made static.
8616
8617 2004-10-11  Martin Baulig  <martin@ximian.com>
8618
8619         * appdomain.c: Bump corlib version number to 28.
8620
8621 2004-10-10  Martin Baulig  <martin@ximian.com>
8622
8623         * class-internals.h
8624         (MonoGenericInst): Added `MonoGenericContainer *container'.
8625         (MonoGenericMethod): Likewise.
8626         (MonoGenericContext): Likewise.
8627         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8628
8629         * metadata.c
8630         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8631         (do_mono_metadata_parse_generic_inst): Likewise.
8632         (mono_metadata_parse_type_full): New public method.  This is the actual
8633         mono_metadata_parse_type() implementation - with an additional
8634         `MonoGenericContainer *' argument.
8635         (mono_metadata_parse_array_full): Likewise.
8636         (mono_metadata_parse_signature_full): Likewise.
8637         (mono_metadata_parse_method_signature_full): Likewise.
8638         (mono_metadata_parse_mh_full): Likewise.
8639         (mono_type_create_from_typespec): Likewise.
8640         (mono_metadata_interfaces_from_typedef_full): New public method;
8641         this is similar to the other _full() methods, but we take a
8642         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8643         (mono_metadata_parse_generic_param): Take an additional
8644         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8645         from that container.
8646         (mono_metadata_generic_param_equal): New static method to compare
8647         two type parameters.
8648         (_mono_metadata_type_equal): New static method; takes an
8649         additional `gboolean signature_only' argument - if true, we don't
8650         compare the owners of generic parameters.
8651         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8652         with a TRUE argument - do a signature-only comparision.
8653
8654         * loader.c: Use the new _full() methods and pass the
8655         MonoGenericContainer to them.
8656
8657         * object-internals.h (MonoReflectionTypeBuilder): Added
8658         `MonoGenericContainer *generic_container' field.
8659         (MonoReflectionMethodBuilder): Likewise.
8660
8661 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8662
8663         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8664         case initial images of dynamic assemblies.
8665
8666         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8667
8668         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8669
8670         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8671         length of event->other array.
8672         (typebuilder_setup_events): Ditto.
8673
8674         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8675         'assembly_by_name' and add an 'assemblies' list.
8676
8677         * assembly.h assembly.c: Add a new search hook for determining whenever
8678         an assembly is already loaded. Use this instead of searching in the
8679         loaded_assemblies list.
8680
8681         * domain.c appdomain.c: Implement the new search hook so loaded 
8682         assemblies are now scoped by appdomain. Fixes #67727.
8683
8684 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8685
8686         * threads.c (mono_thread_attach): Initialize synch_lock field so
8687         mono_thread_detach works again.
8688
8689         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8690         'lib' too. Fixes #63130.
8691
8692 2004-10-06  Jackson Harper  <jackson@ximian.com>
8693
8694         * culture-info-tables.h: regenerated.
8695
8696 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8697
8698         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8699         implemented by other interfaces in the result. Fixes #65764.
8700         
8701         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8702         Handle unloadable modules without crashing.
8703
8704         * image.c (load_modules): Revert the previous patch since modules must
8705         have a fixed index inside the array.
8706         
8707         * image.c (load_modules): Don't include native modules in the modules
8708         array.
8709
8710 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8711
8712         * reflection.h: Add param_defaults field.
8713
8714         * reflection.c: Add support for parameter defaults in dynamic methods.
8715         Fixes #64595.
8716
8717         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8718         an empty string when a type has no namespace. Fixes #64230.
8719
8720 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8721
8722         * tabledefs.h: Added "internal" security actions to support non-CAS
8723         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8724         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8725
8726 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8727
8728         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8729         constructor of abstract class. Fixes #61689.
8730
8731 2004-10-04  Martin Baulig  <martin@ximian.com>
8732
8733         * class-internals.h (MonoGenericContainer): New type.
8734         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8735         `MonoGenericContainer *generic_container'.
8736         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8737         `MonoGenericContainer *generic_container'.
8738
8739         * metadata.c (mono_metadata_load_generic_params): Return a
8740         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8741         removed the `num' argument.
8742
8743 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8744
8745         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8746         for dynamic images.
8747
8748         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8749         machine fields.
8750
8751         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8752
8753         * reflection.c: Save pe_kind and machine values into the generated
8754         image file.
8755
8756         * appdomain.c: Bump corlib version number.
8757
8758         * object-internals.h: Reorganize layout of LocalBuilder.
8759
8760         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8761         New helper function.
8762
8763         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8764         created MonoType for dynamic types. Fixes #66180.
8765
8766 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8767
8768         * threadpool.c: the ares hashtable needs a critical section around it.
8769         this prevents some nasty segfaults
8770
8771 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8772
8773         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8774         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8775         bug 67324).
8776         
8777 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8778
8779         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8780         
8781 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8782
8783         * image.c: Always canonicalize image file names, to avoid loading
8784         the same assembly twice when referenced using a relative path.
8785
8786 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8787
8788         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8789
8790         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8791
8792         * marshal.c: Fix warnings.
8793
8794 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8795
8796         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8797         attempting to marshal the delegate_trampoline as the method_addr.
8798         This patch has a static hashtable of marshalled delegates so that 
8799         we can map delegate_trampoline addresses back to delegates.  This
8800         allows a delegate passed to managed code to be passed back into native
8801         code.  Fixes #67039
8802
8803 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8804
8805         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8806
8807         * reflection.c (method_encode_code): Align method headers properly.
8808         Fixes #66025.
8809
8810 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8811
8812         * marshal.c: In the runtime invoke wrapper, reset the abort
8813         exception if it is cached. This avoids the automatic rethrowal of 
8814         the exception after the catch of the wrapper. Also check for pending
8815         interruptions before calling the managed method. This is done using
8816         the new method emit_thread_force_interrupt_checkpoint, since the
8817         normal checkpoint method is ignored when running the invoke wrapper.
8818         * object.c: If the abort exception is rethrown, set the abort_exc
8819         field of the thread, so it will be rethrown aftere every catch.
8820         * threadpool.c: Only run an interruption checkpoint if what has been
8821         requested is a stop of the thread (aborts will be ignored).
8822         * threads.c: By default, a thread will now never be interrumped while
8823         running the runtime invoke wrapper (this ensures that runtime_invoke
8824         will always return to the caller if an exception pointer is provided).
8825         There is a new special method mono_thread_force_interruption_checkpoint()
8826         to force an interruption checkpoint even if running a protected
8827         wrapper, which is used by the same runtime invoke wrapper to do a check
8828         at a safe point.
8829
8830 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8831
8832         * object.c, object-internals.h: Implemented mono_release_type_locks,
8833         which releases the cctor locks held by a thread.
8834         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8835         by a thread. Added mono_thread_exit() method to be used to safely stop
8836         a thread.
8837
8838 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8839
8840         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8841         Move null check before dereference.  Avoid indexing beyond the end
8842         of the 'modules' array.
8843
8844 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8845
8846         * metadata-internals.h (MonoImage): Add module_count field.
8847         * image.c (load_modules): Set image->module_count.
8848         (mono_image_load_file_for_image): Use image->module_count.
8849         * reflection.c (mono_image_load_module): Append to image->modules array 
8850         of dynamic assembly.
8851         (mono_module_get_object): Fix loop to actually increment index.
8852         Use image->module_count.
8853         * assembly.c (mono_assembly_load_references): Use image->module_count.
8854         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8855         Likewise.
8856
8857 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8858
8859         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8860         Avoid assert on generic types.
8861
8862 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8863
8864         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8865
8866         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8867
8868         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8869         function to convert a MarshalSpec structure to its managed counterpart.
8870
8871         * reflection.c: Fix warnings.
8872         
8873         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8874         field.
8875
8876         * icall.c (mono_create_icall_signature): Fix build.
8877
8878 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8879
8880         * icall.c: Add MakePointType icall.
8881
8882         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8883         warnings.
8884
8885 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8886
8887         * threadpool.c: reuse allocated slots in the queue.
8888
8889 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8890
8891         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8892
8893         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8894
8895         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8896         previous change.
8897
8898         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8899         ThrowOnUnmappableChar.
8900
8901         * icall.c (ves_icall_Type_GetPacking): New icall.
8902
8903 2004-09-24  Martin Baulig  <martin@ximian.com>
8904
8905         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8906
8907 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8908
8909         * appdomain.c:
8910         (mono_domain_set): allow setting a domain that is being unloaded.
8911         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8912         being unloaded.
8913
8914 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8915
8916         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8917         the GetCustomAttributes icall.
8918
8919 2004-09-23  Martin Baulig  <martin@ximian.com>
8920
8921         * object-internals.h (MonoReflectionGenericParam): Replaced
8922         'has_ctor_constraint', `has_reference_type' and `has_value_type'
8923         with `guint32 attrs'.
8924
8925 2004-09-23  Martin Baulig  <martin@ximian.com>
8926
8927         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
8928
8929 2004-09-23  Martin Baulig  <martin@ximian.com>
8930
8931         * object-internals.h (GenericParameterAttributes): New enum.
8932
8933 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8934
8935         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
8936         
8937         * class.c (init_events): Fill out event->other field.
8938
8939         * class.c: Fix warnings.
8940
8941         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
8942
8943 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
8944
8945         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
8946         walk which doesn't supply the IL offset.
8947
8948 2004-09-22  Martin Baulig  <martin@ximian.com>
8949
8950         * reflection.c (mono_reflection_setup_internal_class): If we're
8951         System.ValueType, System.Object or System.Enum, set
8952         `klass->instance_size' and create the vtable.
8953         (mono_reflection_create_internal_class): If we're an enum type,
8954         get the base class from our current corlib.
8955
8956 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
8957
8958         * reflection.h (MonoResolveTokenError): New type.
8959
8960         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
8961         icall.
8962
8963         * icall.c: Add an 'error' argument to the ResolveToken icalls.
8964
8965 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
8966
8967         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
8968         Support also calling constructors, but only for already allocated objects.
8969
8970 2004-09-17  Geoff Norton <gnorton@customerdna.com>
8971
8972         * reflection.c (type_get_qualified_name): If the klass is null
8973         return the typename to avoid a NullRefEx.
8974         (encode_cattr_value): Get the qualified name of the boxed type,
8975         not the underlying enumtype.  Fixes #62984.
8976
8977 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
8978
8979         * marshal.c: Fix problems with previous checkin.
8980
8981 2004-09-21    <vargaz@freemail.hu>
8982
8983         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
8984         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
8985
8986         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
8987
8988 2004-09-21  Geoff Norton <gnorton@customerdna.com>
8989
8990         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
8991         should only return a type for pointers, arrays, and passbyref types.
8992         Fixes bug #63841.
8993
8994 2004-09-21  Martin Baulig  <martin@ximian.com>
8995
8996         * domain.c (mono_debugger_check_runtime_version): New public
8997         function.
8998
8999         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9000
9001 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9002
9003         * reflection.c: Added missing sort to the declarative security 
9004         attributes table. MS implementation stops seeing the attributes if the
9005         token number regress in the table (as shown by ildasm and permview).
9006
9007 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9008
9009         * object-internals.h (MonoReflectionModule): Add 'token' field.
9010         
9011         * reflection.c (mono_reflection_get_token): Add support for Module
9012         and Assembly.
9013         (mono_module_get_object): Set 'token' field.
9014         (mono_module_file_get_object): Set 'token' field.
9015
9016         * icall.c: Add new Assembly and Module icalls.
9017
9018         * appdomain.c: Bump corlib version.
9019
9020 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9021
9022         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9023         tokens of metadata objects.
9024
9025         * reflection.h reflection.c (mono_reflection_get_token): New function
9026         to obtain the token of a metadata object.
9027
9028         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9029
9030 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9031
9032         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9033         
9034         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9035
9036 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9037
9038         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9039         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9040         AssemblyBuilder to access the permissions set in the class lib.
9041         * reflection.c: Added security attributes encoding step in 
9042         mono_image_build_metadata.
9043         * tabledefs.h: Added new security actions defined in 2.0:
9044         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9045
9046 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9047
9048         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9049         macro parameter.
9050
9051 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9052  
9053         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9054           finalized. There where random SIGSEVs at program termination, when
9055           an object being finalized was trying to do a string comparison and
9056           the current culture was already finalized.
9057  
9058 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9059
9060         * threads.c: call thread_cleanup before finishing the thread if we get
9061         there.
9062
9063 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9064
9065         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9066         assemblies from the parent. Fixes #65665.
9067
9068 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9069
9070         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9071         modifiers.
9072
9073 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9074
9075         * reflection.h: add prototype for mono_get_dbnull_object
9076         * reflection.c: add prototypes for get_default_param_value_blobs 
9077         and mono_get_object_from_blob for fussier compilers
9078
9079 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9080  
9081         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9082         false deadlock checks in class initialization.
9083  
9084 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9085
9086         * image.c (mono_image_addref): Fix comment.
9087
9088         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9089         possible.
9090
9091 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9092
9093         * reflection.c (mono_param_get_objects): Modified to return
9094         ParameterInfo.DefaultValue object.
9095
9096         (get_default_param_value_blobs):
9097         (mono_get_object_from_blob):
9098         (mono_get_dbnull_object): New helper routines. 
9099
9100         * object.c (mono_get_constant_value_from_blob): New helper routine
9101         carved out from get_default_field_value ()
9102
9103         * object-internals.h (mono_get_constant_value_from_blob): Added
9104         function declaration.
9105
9106 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9107
9108         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9109         referenced assemblies. Fixes #62135.
9110
9111         * exception.h exception.c (mono_get_exception_file_not_found2): New
9112         helper function.
9113
9114 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9115
9116         * class.h class.c: Add mono_type_get_underlying_type ().
9117
9118 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9119
9120         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9121         Fix GetTypes() to support dynamically created assemblies.
9122
9123 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9124
9125         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9126         
9127         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9128         previous patch.
9129
9130         * reflection.h reflection.c loader.c: Allow dynamic construction of
9131         pinvoke methods. Fixes #65571.
9132         
9133         * reflection.c (mono_reflection_get_type): Revert previous change since
9134         it causes regressions.
9135
9136 2004-09-08  Martin Baulig  <martin@ximian.com>
9137
9138         * class.c (class_compute_field_layout): Don't call
9139         mono_class_layout_fields() for open generic instances.
9140
9141 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9142         * threads.c appdomain.c: fix typo in GC macro
9143
9144 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9145
9146         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9147         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9148
9149 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9150
9151         * image.c (mono_image_close): Applied patch from 
9152         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9153         assembly is loaded multiple times from data.
9154         
9155         * image.c (mono_image_open): Fix warning.
9156
9157 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9158
9159         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9160         once. Fixes #58334.
9161         
9162         * reflection.c (mono_reflection_create_runtime_class): Initialize
9163         klass->nested_classes. Fixes #61224.
9164
9165 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9166
9167         * threads.c: sched_yield() on exit, to allow threads to quit.
9168
9169 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9170
9171         * object.c (mono_unhandled_exception): Remove leftover debug code.
9172
9173 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9174
9175         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9176
9177 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9178
9179         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9180         
9181         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9182
9183 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9184
9185         * marshal.c (emit_marshal_array): Null terminate string arrays.
9186         
9187         * marshal.c (raise_auto_layout_exception): Fix warning.
9188
9189         * reflection.c (mono_param_get_objects): Initialize the default value
9190         with DBNull.Value, not null. Fixes #62123.
9191
9192 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9193
9194         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9195         throw an exception with a cute explanation.
9196
9197 2004-09-06  Dick Porter  <dick@ximian.com>
9198
9199         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9200         Close the new process's thread handle, as we don't use it.  The
9201         handle stays around forever otherwise.
9202
9203 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9204
9205         * object.c (arith_overflow): Fix warning.
9206
9207         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9208         calling conventions in method refs. Fixes #65352.
9209
9210         * reflection.c: Fix warnings.
9211
9212 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9213
9214         * icall.c: Add a new icall for Array.Clear
9215
9216 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9217
9218         * object.c: When allocating an array, we have to throw
9219         an overflow exception if any of the lengths are < 0.
9220
9221 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9222
9223         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9224         properly. Also move implementation of string array marshalling to 
9225         managed code. Fixes #42316.
9226
9227 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9228
9229         * assembly.c: provide more information when loading an assembly fails.
9230
9231 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9232
9233         * filewatcher.c: don't expect the development fam package to be
9234         installed.
9235
9236 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9237
9238         * marshal.c: Make a copy of the signature cookie since it will be
9239         freed by the caller.
9240         
9241         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9242
9243         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9244
9245         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9246         marshal specs.
9247
9248         * marshal.c: More refactoring.
9249         
9250         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9251         smaller functions.
9252
9253 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9254
9255         * object.c: In mono_message_invoke, fill the output parameter array after
9256           calling the managed method (it was done before the call). This fixes
9257           bug #59299.
9258
9259 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9260
9261         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9262         as well.
9263
9264 2004-09-02  Martin Baulig  <martin@ximian.com>
9265
9266         * class.c (mono_class_instance_size): Don't allow generic type
9267         definitions or open generic instances.
9268         (mono_class_array_element_size): If we're a value type, call
9269         mono_class_instance_size() on the original class.
9270
9271         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9272         handle generic instances.
9273
9274         * mono-debug-debugger.c (write_type): Handle generic instances
9275         like classes.
9276
9277 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9278
9279         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9280         the allocation request fails. Fixes #65089.
9281
9282         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9283         
9284         * object.c (mono_runtime_free_method): New function to free a dynamic
9285         method.
9286
9287         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9288         delegate trampoline.
9289
9290         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9291         with hasthis as dynamic,
9292
9293         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9294
9295         * domain.c (mono_jit_info_table_remove): New function to remove an
9296         entry from the jit info table.
9297
9298         * class-internals.h (MonoMethod): Add 'dynamic' field.
9299
9300         * loader.c: Fix warnings.
9301
9302 2004-09-01  Martin Baulig  <martin@ximian.com>
9303
9304         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9305         instead of mono_debugger_lock() because the latter one is a no-op
9306         unless running in the debugger.
9307
9308 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9309
9310         * class.c (class_compute_field_layout): Classes with auto-layout or
9311         reference fields are not blittable.
9312         
9313 2004-09-01  Dick Porter  <dick@ximian.com>
9314
9315         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9316         mono_image_get_filename() to get the assembly location.
9317
9318         * icall.c:
9319         * metadata.h: Fix compile warnings
9320
9321 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9322
9323         * class.c (class_compute_field_layout): System.Object is blittable.
9324
9325         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9326         as in/out. Fixes #59909.
9327
9328 2004-09-01  Martin Baulig  <martin@ximian.com>
9329
9330         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9331         mono_metadata_generic_inst_is_valuetype() if we're a generic
9332         instance to check whether our underlying type is a reference type.
9333
9334 2004-09-01  Martin Baulig  <martin@ximian.com>
9335
9336         * metadata.c (mono_type_size): If we're a generic instance, call
9337         mono_class_value_size() for value types.
9338
9339 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9340
9341         * marshal.c: Implement more custom marshalling functionality. Fixes
9342         #64915.
9343
9344 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9345
9346         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9347
9348 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9349
9350         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9351
9352         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9353
9354         * icall.c: Fix some warnings.
9355
9356         * threads.c (abort_appdomain_thread): Fix unref errors.
9357         (mono_thread_current): Fix THREAD_DEBUG define.
9358
9359 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9360
9361         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9362
9363         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9364
9365 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9366
9367         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9368         string arrays.
9369
9370 2004-08-28  Martin Baulig  <martin@ximian.com>
9371
9372         * metadata.c
9373         (mono_metadata_generic_inst_is_valuetype): New public function.
9374
9375         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9376         mono_metadata_generic_inst_is_valuetype() if we're a generic
9377         instance to check whether our underlying type is a valuetype.
9378
9379 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9380
9381         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9382         #63768.
9383
9384 2004-08-25  Martin Baulig  <martin@ximian.com>
9385
9386         * loader.c (mono_get_method_from_token): Abstract methods can also
9387         be generic and thus have type parameters.
9388
9389         * metadata-internals.h
9390         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9391
9392         * reflection.c (mono_image_get_generic_param_info): Don't create a
9393         metadata row, just add an entry to the `gen_params' array.
9394         (build_compressed_metadata): Sort the `gen_params' array and then
9395         actually create the metadata.
9396
9397 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9398
9399         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9400
9401 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9402
9403         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9404
9405 2004-08-24  Martin Baulig  <martin@ximian.com>
9406
9407         * class.cs (mono_class_is_subclass_of): Like an interface, a
9408         generic instance also derives from System.Object.
9409
9410 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9411
9412         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9413         custom modifiers to be in any order. Fixes #61990.
9414
9415 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9416
9417         * object.c: Register mono_object_new_fast icall.
9418         
9419         * object.c (mono_class_get_allocation_ftn): Return to calling
9420         mono_object_new_fast, since it seems faster to compute the object 
9421         size in unmanaged code than passing it as a parameter.
9422
9423         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9424
9425         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9426         this function with Boehm as the oom handler, so we don't have to check
9427         the result of GC_malloc.
9428
9429         * object.c: Remove checks for oom.
9430
9431         * object.h object.c (mono_class_get_allocation_ftn): New function to
9432         return the icall which can be used to allocate an instance of a given
9433         class. 
9434
9435         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9436
9437         * class-internals.h: Add 'enabled' field.
9438
9439 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9440
9441         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9442
9443 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9444         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9445         value 0x0010.
9446
9447 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9448
9449         * appdomain.c: use the Tls function for appdomain too,
9450         at Zoltan's request. Actually return in mono_context_get
9451
9452         * appdomain.c, profiler.c, threads.c: use __thread
9453
9454 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9455
9456         * appdomain.c threads.c: Call GC_CreateThread on windows.
9457
9458         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9459         multiple libraries since this don't work on windows.
9460
9461 2004-08-18  Martin Baulig  <martin@ximian.com>
9462
9463         * class-internals.h
9464         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9465         MonoMethodHeader.
9466
9467         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9468         MonoMethodNormal since we also need it for abstract and interface
9469         methods.
9470
9471         * reflection.c
9472         (build_compressed_metadata): Sort the GenericParam table.
9473         (mono_image_create_token): Added `gboolean create_methodspec'
9474         argument; this is false when generating a MethodImpl token.
9475         (reflection_methodbuilder_to_mono_method): Abstract and interface
9476         methods may also have generic parameters.
9477
9478 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9479
9480         * appdomain.c: thread local alloc
9481
9482 2004-08-17  Martin Baulig  <martin@ximian.com>
9483
9484         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9485
9486         * icall.c
9487         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9488         argument.
9489
9490         * class.c (mono_type_get_full_name): New public function.
9491         (mono_type_get_name): Don't include the type arguments.
9492
9493 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9494
9495         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9496         for inclusion into the mono executable.
9497
9498 2004-08-16  Martin Baulig  <martin@ximian.com>
9499
9500         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9501         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9502
9503 2004-08-14  Martin Baulig  <martin@ximian.com>
9504
9505         * class.c (dup_type): Also copy the `byref' field.
9506
9507 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9508
9509         * reflection.c (create_dynamic_mono_image): Revert the last change 
9510         since it breaks bootstrap.
9511
9512 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9513
9514         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9515
9516         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9517         not free them with g_free.
9518
9519 2004-08-11  Martin Baulig  <martin@ximian.com>
9520
9521         * reflection.c (mono_reflection_setup_internal_class): Also call
9522         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9523
9524 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9525
9526         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9527         called during default (first) AppDomain creation. Keep track of
9528         Evidence when loading assemblies.
9529
9530 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9531
9532         * opcodes.c, opcodes.h: reduce runtime relocations.
9533
9534 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9535
9536         * culture-info.h, locales.c: fixes and chages to sue the new
9537         optimized format of the locale data.
9538         * culture-info-tables.h: regenerated.
9539
9540 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9541         
9542         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9543
9544 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9545
9546         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9547         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9548         * domain-internals.h: icall declaration.
9549         * icall.c: icall registration.
9550         * object-internals.h: New fields in MonoAssembly for CAS.
9551
9552 2004-08-05  Duncan Mak  <duncan@ximian.com>
9553
9554         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9555         CEE_LDELEM_ANY.
9556
9557 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9558
9559         * reflection.c: fix to deal with object[] arrays in custom ctors
9560         (bug #62550).
9561
9562 2004-08-05  Martin Baulig  <martin@ximian.com>
9563
9564         * class.c (mono_class_array_element_size): Added support for
9565         generic instances and correctly handle "recursive" types.
9566
9567 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9568
9569         * assembly.c: Fix warnings.
9570
9571 2004-08-04  Martin Baulig  <martin@ximian.com>
9572
9573         * class.c
9574         (mono_type_get_name_recurse): Added `gboolean include_arity'
9575         argument specifying whether or not we should include the generic
9576         arity in the type name.
9577         (_mono_type_get_name): New static function.
9578         (mono_class_setup_vtable): If we're a generic instance, don't
9579         include the generic arity in the names of explicit method
9580         implementations.        
9581
9582 2004-08-03  Martin Baulig  <martin@ximian.com>
9583
9584         * class.c (mono_type_get_name_recurse): Enclose the generic type
9585         arguments in `<', '>'.
9586
9587 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9588
9589         * gc.c: make GC warning messages use the trace API, they are just
9590         noise to most of the users.
9591
9592 2004-08-03  Martin Baulig  <martin@ximian.com>
9593
9594         * debug-mono-symfile.c (read_string): Correctly read the string.
9595
9596 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9597
9598         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9599         
9600         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9601         icalls.
9602         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9603
9604 2004-07-30  Martin Baulig  <martin@ximian.com>
9605
9606         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9607         Reflect latest symbol writer changes.   
9608
9609 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9610
9611         * object.c: always create an object if null is passed
9612         to Invoke() where a valuetype is expected.
9613
9614 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9615
9616         * marshal.c (mono_marshal_init): make managed
9617         signatures match native ones better for 64bits.
9618
9619 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9620
9621         * appdomain.c: hack to build correctly the private bin path on windows.
9622         Fixes bug #61991.
9623
9624 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9625
9626         * assembly.c: Load mscorlib from the correct framework directory
9627           (mono/<version>/mscorlib.dll).
9628         * appdomain.h: Added prototypes for new functions.
9629         * internals.h: Added some prototypes.
9630         * domain.c: When initializing the runtime, get from the executable and
9631           the configuration files the runtime version that the app supports.
9632           Added support methods for reading app.exe.config. Added list of versions
9633           supported by the JIT. Added two new methods: mono_init_from_assembly,
9634           which initializes the runtime and determines the required version from
9635           the provided exe file, and mono_init_version, which initializes
9636           the runtime using the provided version.
9637         * icall.c: Get machine.config from version-specific directory.
9638         * reflection.c: When generating an image, embed the version number
9639           of the current runtime.
9640
9641 2004-07-28  Dick Porter  <dick@ximian.com>
9642
9643         * socket-io.c
9644         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9645         returned sockaddr size before creating the remote address object.
9646         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9647         61608.
9648
9649 2004-07-28  Dick Porter  <dick@ximian.com>
9650
9651         * locales.c (string_invariant_compare_char): Fix invariant char
9652         compares between upper and lower cases.  Fixes bug 61458.
9653
9654 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9655         
9656         * marshal.c: actually cache stelem.ref wrappers.
9657         
9658 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9659
9660         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9661         sections and remove the mono_cli_rva_map () function.
9662
9663 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9664
9665         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9666         by Geoff Norton (<gnorton@customerdna.com>).
9667
9668 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9669
9670         * class.c: fix class loads for pointer types (typeof(int) !=
9671         typeof(int*)).
9672
9673 2004-07-27  Martin Baulig  <martin@ximian.com>
9674
9675         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9676         reading the debugging information from an external ".mdb" file.
9677
9678 2004-07-24  Martin Baulig  <martin@ximian.com>
9679
9680         * reflection.c (mono_image_get_type_info): Only write a class
9681         layout entry if we actually have a size or a packing size.
9682
9683 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9684
9685         * reflection.c (type_get_fully_qualified_name): 
9686         insert cast to get type checking of ?: with non-gcc compilers
9687
9688 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9689
9690         * rand.c: use g_getenv for both lookups of
9691         MONO_EGD_SOCKET
9692
9693 2004-07-17  Martin Baulig  <martin@ximian.com>
9694
9695         * reflection.c (mono_reflection_bind_generic_method_parameters):
9696         Set `gmethod->reflection_info'.
9697
9698 2004-07-17  Martin Baulig  <martin@ximian.com>
9699
9700         * class.c (mono_class_create_from_typedef): Insert the newly
9701         created class into the hash table before computing the interfaces
9702         since we could be called recursively.
9703
9704 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9705
9706         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9707         function to implement stelem.ref in managed code
9708         * class-internals.h, debug-helpers.c: a new wrapper type
9709         for the above.
9710
9711 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9712
9713         * gc.c: allow GC handles to work even when no GC is compiled in.
9714         Fix part of bug #61134 (GetAddrOfPinnedObject).
9715
9716 2004-07-13  Peter Williams  <peter@newton.cx>
9717  
9718         * process.c (complete_path): Make sure we don't attempt to execute
9719         directories.
9720  
9721 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9722
9723         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9724           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9725           and will add/subtract the hour if needed
9726
9727 2004-07-12  Martin Baulig  <martin@ximian.com>
9728
9729         * reflection.c (mono_field_get_object): If we have
9730         `field->generic_info', take the attributes from
9731         `field->generic_info->generic_type'.    
9732
9733 2004-07-12  Martin Baulig  <martin@ximian.com>
9734
9735         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9736         This function must be called before initializing the runtime.
9737         (mono_debug_init_1): New function; call this after initializing
9738         the runtime, but before loading the assembly.  It tells the
9739         debugger to load corlib and the builtin types.
9740
9741         * mono-debug-debugger.c: Did some larger changes in the debugging
9742         code; support recursive class declarations, make sure we actually
9743         add all classes.
9744
9745 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9746
9747         * debug-helpers.c: undo my previous patch and fixed the real issue in
9748         ../mini/exceptions-x86.c
9749
9750 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9751
9752         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9753         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9754         called from other .cctors.
9755
9756 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9757
9758         * loader.c: Removed the mono_loader_wine_init hack now that we are
9759         doing a managed version of Windows.Forms.
9760
9761 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9762
9763         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9764         threadpool.c, threads.c: remove static data from rootset.
9765
9766 2004-07-09  Dick Porter  <dick@ximian.com>
9767
9768         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9769         Don't do any more processing if the matched length was 0.  It was
9770         increasing the size of the string before.  Fixes bug 61167.
9771
9772 2004-07-09  Dick Porter  <dick@ximian.com>
9773
9774         * socket-io.h:
9775         * socket-io.c
9776         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9777         Add support for SO_PEERCRED if its available.
9778
9779 2004-07-09  Peter Bartok <pbartok@novell.com>
9780         * loader.c: winelib.exe.so error message is now only displayed if
9781         MONO_DEBUG is set. To help us avoid questions when people are trying
9782         out the new Managed.Windows.Forms.
9783
9784 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9785
9786         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9787         for isinst and castclass wrappers.
9788
9789         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9790         to libmetadata from the JIT, so they could be used by the marshalling
9791         code and the interpreter.
9792
9793         * marshal.c: Register marshalling related JIT icalls here instead of
9794         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9795         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9796
9797         * metadata.h: Remove unneeded marshalling conversions.
9798
9799         * opcodes.c: Update for new opcodes.
9800         
9801 2004-07-08  Martin Baulig  <martin@ximian.com>
9802
9803         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9804         (mono_debug_get_domain_data): Make this function static.
9805
9806 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9807
9808         * gc.c, object.h: add nice GC handle API for embedders.
9809
9810 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9811
9812         * reflection.c: more changes for the new api
9813
9814         * object.c: When we reflect on a field w/ a constant value, it
9815         will not have a memory location, so we must access metadata. Also,
9816         allow easier reading of strings so that we can read them from
9817         the constant data.
9818
9819         * class.c (mono_class_layout_fields): no need for literal fields here.
9820
9821         * class-internals.h: api changes for const fields
9822
9823         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9824
9825 2004-07-06  Martin Baulig  <martin@ximian.com>
9826
9827         * mono-debug.h: Increment version number to 44.
9828
9829         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9830         now a gpointer, rewrote this whole method.
9831
9832         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9833         function.  Add information about the wrapper in a new "misc table".
9834
9835         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9836         for the new misc table.
9837
9838 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9839
9840         * metadata-internals.h image.c: Add a cache for helper signatures.
9841
9842         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9843
9844 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9845
9846         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9847         delegates from a delegate. Fixes #61033.
9848         
9849         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9850         marshalling of stringbuilder arrays. Fixes #59900.
9851
9852 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9853
9854         * icall.c: Add EnumBuilder:setup_enum_type icall.
9855
9856 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9857
9858         * icall.c: Added a new icall for the property version of
9859         OffsetOfStringData.
9860
9861 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9862
9863         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9864         it has a constant size across platforms.
9865
9866         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9867         stack trace.
9868
9869 2004-06-29  Martin Baulig  <martin@ximian.com>
9870
9871         * mono-debug.c (mono_debug_add_method): Protect the whole function
9872         in mono_debugger_lock(), not just parts of it.
9873
9874 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9875
9876         * reflection.c: make sure padding bytes in heaps are zeroed.
9877
9878 2004-06-24  David Waite  <mass@akuma.org>
9879
9880         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9881         image.c, loader.c, locales.c, marshal.c, metadata.c,
9882         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9883         string-icalls.c, threads.c: change to C90-style comments from C99 /
9884         C++ -style
9885
9886 2004-06-24  Dick Porter  <dick@ximian.com>
9887
9888         * threads.c
9889         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9890         return createdNew.  Fixes bug 60412.
9891
9892         * threads-types.h: 
9893         * icall.c: Add createdNew parameter to CreateMutex icall
9894
9895 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9896
9897         * reflection.c, object-internals.h: save default value in params.
9898
9899 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9900
9901         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9902         no need to build a new path combining that with the application base.
9903         Fixes bug #60442.
9904
9905 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9906
9907         * reflection.c: fixed minor standard compliance issues.
9908
9909 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9910
9911         * reflection.c: fixed issue with encoding some custom attributes
9912         (arrays in properties and fields, bug #60411).
9913
9914 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9915
9916         * reflection.c: fix start address when copying the public key token.
9917
9918 2004-06-23  Martin Baulig  <martin@ximian.com>
9919
9920         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
9921         the `exc' object in a static object to put it into the GC's root set.
9922
9923 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
9924
9925         * reflection.c: make mono_reflection_setup_internal_class ()
9926         callable a second time to setup a new parent class.
9927
9928 2004-06-23  Dick Porter  <dick@ximian.com>
9929
9930         * threads.c: Check for WAIT_IO_COMPLETION return values.
9931
9932 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
9933
9934         * appdomain.c: Removed the g_free on the public key token. Now copy 
9935         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
9936         * assembly.c: Added public key token string value when loading 
9937         assemblies. Fix bug #60439.
9938         * icall.c: Added missing informations (like public key) in 
9939         GetReferencedAssemblies. Fix #60519.
9940         * image.h: Changed definition for public key token from const char*
9941         public_tok_value to guchar public_key_token [17];
9942         * reflection.c: Updated for changes to public key token.
9943
9944 2004-06-22  Lluis Sanchez Gual
9945
9946         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
9947         for the field in base classes.
9948
9949 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9950
9951         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
9952         mark headers as not supported, they are installed only for use by the
9953         debugger.
9954
9955 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
9956
9957         * *.c, *.h: avoid namespace pollution in public headers.
9958
9959 2004-06-21  Martin Baulig  <martin@ximian.com>
9960
9961         * exception.c (mono_get_exception_security): It's in
9962         "System.Security", not in "System".
9963
9964         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
9965         the exception classes.
9966
9967 2004-06-21  Martin Baulig  <martin@ximian.com>
9968
9969         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
9970         Protect the exception object from being finalized.
9971
9972 2004-06-21  Martin Baulig  <martin@ximian.com>
9973
9974         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
9975         public function.
9976
9977 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
9978
9979         * reflection.c: Load the assembly in mono_reflection_type_from_name,
9980         if it was not loaded before. Fix parts of #60439.
9981
9982 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
9983
9984         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
9985         code that was broken since Ben's change: wrappers are now
9986         dependent on the method signature only again.
9987
9988 2004-06-21  Martin Baulig  <martin@ximian.com>
9989
9990         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
9991         added interface support.
9992
9993 2004-06-21  Martin Baulig  <martin@ximian.com>
9994
9995         * class.c (mono_vtable_get_static_field_data): New public method.
9996
9997 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
9998
9999         * filewatcher.c : Windows build fix to be compliant with API changes.
10000
10001 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10002
10003         * class.h, class.c: more accessors.
10004         * metadata.h, metadata.c: prepare for hiding MonoType and
10005         MonoMethodSignature: people should use the accessors from now on
10006         outside of the tree.
10007
10008 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10009
10010         * *.c, *.h: more API cleanups.
10011
10012 2004-06-18  Jackson Harper  <jackson@ximian.com>
10013
10014         * assembly.c: Trace loading assemblies.
10015         * loader.c: Trace loading native libraries.
10016         * mono-config.c: Trace loading config files.
10017         
10018 2004-06-18  Dick Porter  <dick@ximian.com>
10019
10020         * locales.c: Tell ICU the lengths of strings, it can cope with
10021         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10022
10023 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10024
10025         * image.c: swapped name/filename;
10026
10027 2004-06-18  Martin Baulig  <martin@ximian.com>
10028
10029         * mono-debug-debugger.c (write_class): Write the parent class at
10030         the end of the header.
10031
10032 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10033
10034         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10035
10036 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10037
10038         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10039         (bundle_obj): New conditional define.
10040         (BUILT_SOURCES): Remove.
10041         ($(bundle_srcs)): Make parallel-make safe.
10042         (libmonoruntime_la_LIBADD): Make unconditional.
10043         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10044         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10045
10046 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10047
10048         * culture-info-tables.h: It was inconsistent with the latest
10049           supp info files.
10050
10051 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10052
10053         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10054         be loaded.
10055
10056         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10057         with gcc 2.95.
10058
10059 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10060
10061         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10062         cleaned up public header threads.h.
10063
10064 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10065
10066         * Makefile.am, *.c, *.h: more API cleanups.
10067
10068 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10069
10070         * Makefile.am: removed monosn from compilation.
10071         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10072         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10073         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10074         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10075         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10076         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10077
10078 2004-06-15  Jackson Harper  <jackson@ximian.com>
10079
10080         * assembly.c: Make locales lower case when searching the GAC for
10081         assemblies. gacutil will always make locales lowercase when
10082         installing so this effectively makes them case insensitive.
10083         
10084 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10085
10086         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10087         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10088           parameter which allows to choose whether the wait can be interrupted or 
10089           not. Also added the method mono_monitor_enter(), which locks the monitor
10090           using an infinite wait and without allowing interruption.
10091           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10092           interrupted.
10093         * object.h: Added new fields in MonoThread. suspend_event holds the event
10094           used to susped/resume the thread. synch_lock is the lock object to use for
10095           modifying the thread state.
10096         * threads.c: Use the new synch_lock object for locking, instead of "this",
10097           which can generate deadlocks.
10098           Moved thread state change in Thread.Sleep and Thread.Join from managed
10099           to unmanaged code. This avoids a deadlock when the thread was suspended
10100           just after acquiring the thread lock.
10101           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10102           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10103           which is not fully implemented in the io-layer.
10104         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10105
10106 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10107
10108         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10109         threads-types.h: more API cleanups.
10110
10111 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10112
10113         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10114         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10115         threadpool.c, threads.c: first pass at the exported API cleanup.
10116
10117 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10118
10119         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10120
10121 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10122
10123         * icall.c: added internalGetHome.
10124
10125 2004-06-14  Dick Porter  <dick@ximian.com>
10126
10127         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10128         possible to return successfully when '.' or '..' were the only
10129         entries in a directory, but were skipped.  The MonoIOStat was not
10130         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10131         Fixes bug 59574.
10132
10133 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10134
10135         * reflection.c: make binaries run on .Net 1.1 by default.
10136
10137 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10138
10139         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10140
10141 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10142
10143         * marshal.c: keep track of struct size with explicit layout
10144         (bug #59979).
10145
10146 2004-06-12  Martin Baulig  <martin@ximian.com>
10147
10148         * mono-debug-debugger.c: Comment out a debugging g_message().
10149
10150 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10151
10152         * reflection.c, reflection.h: do not free custom attrs that are cached.
10153         * icall.c: use braces to make code clearer.
10154
10155 2004-06-11  Martin Baulig  <martin@ximian.com>
10156
10157         * class.h (MonoInflatedField): New type.
10158         (MonoClassField): Replaced `MonoType *generic_type' with
10159         `MonoInflatedField *generic_info'.
10160
10161         * icall.c
10162         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10163
10164 2004-06-11  Martin Baulig  <martin@ximian.com>
10165
10166         * reflection.c (mono_image_create_method_token): Correctly encode
10167         varargs methods.
10168
10169 2004-06-11  Martin Baulig  <martin@ximian.com>
10170
10171         * metadata.c (mono_metadata_parse_method_signature): When parsing
10172         a MethodDef which has VarArgs, also set sentinelpos if we don't
10173         have any parameters.
10174
10175 2004-06-11  Martin Baulig  <martin@ximian.com>
10176
10177         * verify.c (mono_method_verify): In CEE_CALL, use
10178         mono_method_get_signature() to get the method's signature, unless
10179         we're a PInvoke method.
10180
10181 2004-06-10  Jackson Harper  <jackson@ximian.com>
10182
10183         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10184         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10185         logical name as the supplied path is just a prefix to the gac not
10186         the direct path to it.
10187         
10188 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10189
10190         * reflection.c: make the token for a created method match
10191         the token of the MethodBuilder it was created from
10192         (IKVM requires this behaviour now).
10193
10194 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10195
10196         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10197         reflection.c, socket-io.c: leak fixes.
10198
10199 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10200
10201         * icall.c: handle sentinel pos in vararg methods in position different
10202         from 0.
10203
10204 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10205
10206         * culture-info-tables.h: freshly generated.
10207
10208 2004-06-09  Martin Baulig  <martin@ximian.com>
10209
10210         * loader.c (mono_get_method_constrained): Call `mono_class_init
10211         (constrained_class)'.   
10212
10213 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10214
10215         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10216         any methods. Fixes #59629.
10217
10218 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10219
10220         * culture-info-tables.h: reflecting locale-builder updates.
10221
10222 2004-06-08  Dick Porter  <dick@ximian.com>
10223
10224         * object.h:
10225         * locales.c: Fixed compile warnings, including a real bug in
10226         CompareInfo_internal_compare.
10227         
10228 2004-06-08  Dick Porter  <dick@ximian.com>
10229
10230         * locales.c
10231         (ves_icall_System_Globalization_CompareInfo_internal_index):
10232         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10233         Double-check the resuls of usearches, because ICU currently
10234         ignores most of the collator settings here.  Fixes bug 59720.
10235         
10236 2004-06-08  Dick Porter  <dick@ximian.com>
10237
10238         * locales.c
10239         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10240         Fix memory leak and segfault-causing typo.  No idea how this one
10241         lasted so long without being noticed.
10242
10243 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10244
10245         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10246         any methods. Fixes #59629.
10247
10248 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10249
10250         * assembly.c:
10251         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10252         own the critical section before). Removed dead code (that's done
10253         in the preload hook).
10254
10255         (mono_assembly_load_with_partial_name): call the preload hook.
10256
10257 2004-06-08  Martin Baulig  <martin@ximian.com>
10258
10259         * metadata.c (mono_metadata_signature_alloc): Default
10260         `sentinelpos' to -1.
10261
10262         * reflection.c (mono_image_get_array_token): Likewise.
10263
10264 2004-06-08  Martin Baulig  <martin@ximian.com>
10265
10266         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10267
10268         * metadata.c (mono_metadata_parse_method_signature): When parsing
10269         a MethodDef which has VarArgs, set sentinelpos.
10270
10271         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10272         `gint16' since we're using -1 for non-varargs methods.
10273
10274         * reflection.c
10275         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10276         (method_encode_signature): Added varargs support.
10277         (method_builder_encode_signature): Likewise.
10278         (mono_image_get_varargs_method_token): New static method.
10279         (mono_image_create_method_token): New public method; this is
10280         called via an icall instead of mono_image_create_token() when
10281         calling a varargs method.       
10282
10283 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10284
10285         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10286
10287 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10288
10289         * culture-info-tables.h : Reflecting the latest locale-builder that
10290           fixed empty array representation ({} to {0}).
10291
10292 2004-06-07  Jackson Harper  <jackson@ximian.com>
10293
10294         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10295         looking up extra gac paths. This allows MONO_GAC_PATH to act
10296         exactly like a prefix.
10297         
10298 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10299
10300         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10301         type name before modifying it. Fixes #59405.
10302
10303 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10304
10305         * culture-info.h: added fields for "all datetime patterns".
10306         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10307           _construct_datetime_format ()): fill xxx_patterns fields.
10308         * object.h: added fields for "all datetime patterns" to
10309           MonoDateTimeFormatInfo.
10310         * culture-info-tables.h: reflecting locale-builder updates.
10311
10312 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10313
10314         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10315         the event has no add and remove methods. Fixes #59629.
10316
10317 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10318
10319         * object.c: Fixed possible integer overflow when allocating large
10320         strings.
10321
10322 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10323
10324         * culture-info-tables.h: reflecting locale-builder updates.
10325
10326 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10327
10328         * culture-info-tables.h: reflecting locale-builder updates.
10329
10330 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10331
10332         * culture-info-tables.h: reflecting locale-builder updates.
10333
10334 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10335
10336         * threads.c: Made Thread.Sleep abortable.
10337
10338 2004-06-02  Martin Baulig  <martin@ximian.com>
10339
10340         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10341
10342         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10343
10344 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10345
10346         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10347
10348 2004-05-30  Jackson Harper  <jackson@ximian.com>
10349
10350         * reflection.c: Do not hardcode assembly versions or public key
10351         tokens anymore. All of this except the corlib section was dead
10352         code anyways.
10353         
10354 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10355
10356         * object.c (mono_runtime_invoke_array): Automatically create boxed
10357         objects for byref valuetypes if needed. Fixes #59300.
10358         
10359         * object.c (mono_method_return_message_restore): Handle 
10360         MONO_TYPE_OBJECT as well.
10361
10362 2004-05-28  Jackson Harper  <jackson@ximian.com>
10363
10364         * reflection.c: The modified type encoding was causing build
10365         problems. Reverted for now.
10366         
10367 2004-05-28  Jackson Harper  <jackson@ximian.com>
10368
10369         * reflection.c/h: Take an assembly ref so that we dont create
10370         fully qualified names when encoding types in the same assembly as
10371         the custom attribute being emitted.
10372         * appdomain.c: Increment version number.
10373         
10374 2004-05-26  Duncan Mak  <duncan@ximian.com>
10375
10376         * icall.c
10377         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10378         Set the full version number (major, minor, build, revision).
10379
10380 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10381
10382         * marshal.c (emit_struct_conv): increment src/dst after blit
10383         (mono_marshal_get_managed_wrapper,
10384         mono_marshal_get_native_wrapper): make sure we have marshalling
10385         info before marshalling params (info computation affects
10386         blittable)
10387
10388         * class.c (class_compute_field_layout): correctly deal with
10389         blittable
10390         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10391         value types (as per what windows dows by default)
10392         (mono_class_setup_mono_type): System.ValueType is blittable
10393         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10394         blittable
10395
10396         * marshal.c (mono_marshal_load_type_info): flag types  as
10397         non-blittable if the native layout doesn't match the managed
10398         layout
10399
10400 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10401
10402         * appdomain.c: don't add stuff in the private search path that is
10403         above the application base. If application base is not set, there's
10404         no private search path.
10405
10406 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10407
10408         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10409         byref struct arguments in native->managed marshalling.
10410
10411 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10412
10413         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10414         cache methods using signature (special case for methods
10415         that are value type or string class)
10416         
10417         * image.c (mono_image_close): clean up allocated GSList's
10418         in runtime_invoke_cache.
10419
10420 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10421
10422         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10423         there's no MONO_CFG_DIR environment variable defined.
10424
10425 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10426
10427         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10428
10429 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10430
10431         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10432           is interrumped.
10433         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10434           before waiting for it, and call CloseHandle after the wait to unref it.
10435           This will make sure that handles are not disposed too early.
10436
10437 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10438
10439         * appdomain.c:
10440         * appdomain.h:
10441         * icall.c: removed
10442         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10443         needed now.
10444
10445         * object.c: se the application_base only for the domain that runs
10446         Main. Fixes bug #59216,
10447
10448 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10449
10450         * appdomain.c:
10451         * object.c: only the domain in which Main is run have
10452         SetupInformation.ConfigurationFile set, so moved a few lines from
10453         appdomain.c to object.c.
10454
10455 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10456
10457         * appdomain.c: we tried to load [name].(dll|exe), but according
10458         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10459         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10460         There's a test case attached to bug #58922.
10461
10462 2004-05-27  Dick Porter  <dick@ximian.com>
10463
10464         * icall.c:
10465         * file-io.c: Implemented icalls for locking and unlocking regions
10466         in a file.
10467         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10468         FALSE on error (fixes both compiler warning and real bug.)
10469
10470 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10471
10472         * culture-info-tables.h: reflecting locale-builder updates.
10473
10474           (Added missing ChangeLog entry for 05/26)
10475
10476 2004-05-27  Jackson Harper  <jackson@ximian.com>
10477
10478         * locales.c: Fix some cut and paste errors.
10479         
10480 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10481
10482         * mono-config.c: set the correct path for config. directory on windows.
10483
10484 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10485
10486         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10487           on win32.
10488
10489 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10490
10491         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10492         from pinvoke functions.
10493         
10494         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10495
10496 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10497
10498         * culture-info-tables.h: reflecting locale-builder updates.
10499
10500 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10501
10502         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10503         #59086.
10504
10505 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10506
10507         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10508         * icall.c: Modified icalls for RNG.
10509         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10510         Windows (CryptoAPI).
10511
10512 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10513
10514         * locales.c: Fix build.
10515
10516 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10517
10518         * culture-info-tables.h: reflecting locale-builder updates.
10519
10520 2004-05-25  Jackson Harper  <jackson@ximian.com>
10521
10522         * locales.c: When creating the current culture use the $LANGs
10523         specific culture. So DateTimeFormat and NumberFormat entries are created.
10524         
10525 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10526
10527         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10528         a char array as parameter.
10529
10530 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10531
10532         * image.c: In mono_image_open(), always use an absolute path name to
10533           look for already loaded images.
10534
10535 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10536
10537         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10538         missing in the windows build (like older cygwin include files).
10539
10540 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10541
10542         * icall.c: Fixed check for possible integer overflow in Buffer_
10543         BlockCopy icall. Replaced comments style // by /* */.
10544
10545 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10546
10547         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10548         
10549         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10550         check after MONO_VTADDR. Fixes pinvoke2.exe.
10551
10552         * marshal.h marshal.c metadata.h: Add beginnings of support for
10553         ftnptr -> delegate marshalling.
10554
10555 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10556
10557         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10558         * threads.c: Fix warnings.
10559
10560 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10561
10562         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10563         * icall.c: Registered icalls for Suspend and Resume.
10564         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10565           Thread.Abort.
10566         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10567         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10568         * process.c: Use WaitForSingleObjectEx.
10569         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10570           checkpoints.
10571         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10572           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10573           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10574           background threads. Added basic support for Abort in Windows.
10575           Start new threads using a managed delegate invoke wrapper. This wrapper
10576           has an interruption checkpoint that is needed since an interruption
10577           can be requested before the thread leaves the unmanaged code that starts 
10578           the thread.
10579         * marshal.c: Added interruption checkpoint after every native call, and
10580           also before managed calls for wrappers called from unmanaged code to
10581           go into managed code.
10582         * object.h: Added new field in MonoThread to keep track of interruption
10583           requests.
10584
10585 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10586
10587         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10588         calls.
10589
10590 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10591
10592         * appdomain.c:
10593         * assembly.c:
10594         * gc.c:
10595         * locales.c:
10596         * mono-config.c:
10597         * rand.c: getenv -> g_getenv (windows!)
10598
10599         * process.c: complete_path is also used on non-windows platforms.
10600
10601 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10602
10603         * icall.c: new signature for Process_Start.
10604
10605         * process.[ch]: new signature for Process_Start. If we're on windows
10606         and UseShellExecute is false, we have to search for the program by
10607         ourselves if we don't get a full path.
10608
10609 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10610
10611         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10612         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10613
10614 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10615
10616         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10617         Fixes bug #58373.
10618
10619 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10620
10621         * process.c: use double quotes to quote program name and arguments on
10622         windows. Fixes bug #58575.
10623
10624 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10625
10626         * file-io.c: don't return "." and ".." when using windows Find*File.
10627
10628 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10629
10630         * marshal.c: Don't pass wrappers to message init because method 
10631         addressed used to lookup metadata. part of remoting[2|3] fix.
10632
10633 2004-05-15  Jackson Harper  <jackson@ximian.com>
10634
10635         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10636         path is essentially the same as MONO_PATH except that it points to
10637         GACs instead of lib directories.
10638         * loader.h: The user gac is gone so we dont need function to
10639         enable/disable it.
10640         * mono-config.c: user gac option is now gone.
10641         
10642 2004-05-15  Jackson Harper  <jackson@ximian.com>
10643
10644         * culture-info.h: Make defines more consistent, add calendar data
10645         to the culture info table.
10646         * culture-info-tables.h: Add basic calendar data. Basically
10647         everyone gets default gregorian until all the data is
10648         updated.
10649         * locales.c: Use the new consistent defines. Set calendar data for
10650         culture info objects.
10651         * object.h: add a field for calendar data to CultureInfo
10652         
10653 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10654
10655         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10656         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10657         a signature.
10658         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10659         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10660         an extra param that is the pointer of the method to invoke. The IL for
10661         the invoke method is no longer specific to the method, but to the
10662         signature of the method. Thus, we can share the same code for multiple
10663         methods. This reduces the number of methods that have to be compiled.
10664
10665 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10666
10667         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10668
10669         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10670
10671         * icall.c: Optimize Buffer.BlockCopy.
10672
10673 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10674
10675         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10676         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10677         quote). Changed them to "MMMM yyyy".
10678
10679 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10680
10681         * rand.c
10682         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10683
10684 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10685
10686         * reflection.h: Updated after changes to managed structures.
10687
10688         * appdomain.c: Bump corlib version.
10689
10690 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10691
10692         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10693         windows.
10694
10695 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10696
10697         * Makefile.am: link to ../os/libmonoos.la on windows.
10698
10699         * assembly.c:
10700                 -If MONO_DEBUG, warn about non-existing directories in
10701                 MONO_PATH.
10702                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10703                 compile time variable.
10704                 -Removed init_default_path and call mono_set_rootdir from
10705                 libmonoos.a instead (windows only).
10706
10707         * assembly.h: declare mono_assembly_getrootdir().
10708
10709         * domain.c:
10710         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10711
10712         * loader.c: s/getenv/g_getenv/
10713
10714 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10715
10716         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10717
10718         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10719
10720         * metadata.h: Add new marshalling conversions.
10721
10722         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10723         function.
10724
10725         * reflection.c (mono_reflection_get_type): Lookup the type in all
10726         modules of a multi-module assembly. Fixes #58291.
10727
10728 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10729
10730         * threads.c: Before aborting a background, set the StopRequested
10731         state.  This avoids throwing the Abort exception.
10732         In mono_thread_manage, don't continue with the shutdown until all
10733         aborted threads have actually stopped.
10734
10735 2004-05-10  Jackson Harper  <jackson@ximian.com>
10736
10737         * locales.c: Remove the modifier from culture names.
10738         
10739 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10740
10741         * Makefile.am: monosn is not installed any more. It has been deprecated
10742         in favor of sn.
10743
10744 2004-05-07  Jackson Harper  <jackson@ximian.com>
10745
10746         * locales.c
10747         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10748         Fix array construction, add bailout if the length is 0.
10749
10750 2004-05-07  Dick Porter  <dick@ximian.com>
10751
10752         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10753         machine doesn't have a DNS entry.  Patch by Urs Muff
10754         (umuff@quark.com), fixes bug 57928.
10755
10756 2004-05-06  Jackson Harper  <jackson@ximian.com>
10757
10758         * reflection.c: Handle null PublicTokens properly. alloc mem for
10759         assembly names culture so we dont crash when freeing it.
10760         
10761 2004-05-06  Jackson Harper  <jackson@ximian.com>
10762
10763         * assembly.c: Check the usergac when loading with partial names.
10764         
10765 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10766
10767         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10768         does nothing for now (not required for Linux/Windows) but the class
10769         library can call it (and a newer or modified runtime could need it).
10770         * icall.c: Registred icall.
10771
10772 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10773
10774         * loader.c: prints a message on module loading error we set MONO_DEBUG
10775         environment variable.
10776
10777 2004-05-05  Jackson Harper  <jackson@ximian.com>
10778
10779         * appdomain.c: Handle PublicKeyToken=null properly.
10780         
10781 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10782
10783         * environment.c|h: Added icall ves_icall_System_Environment_
10784         GetOSVersionString to get the current OS version as a string.
10785         * icall.c: Registred icall.
10786
10787 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10788
10789         * object.c: in mono_object_get_virtual_method(), take into account that
10790         non-virtual methods don't have a slot in the vtable. Check needed when
10791         the object is a proxy.
10792
10793 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10794
10795         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10796         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10797
10798         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10799
10800         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10801         passed when a valuetype is expected.
10802
10803         * object.c (mono_unhandled_exception): Only set the exit code if the
10804         exception happens in the main thread. Fixes thread5.exe.
10805
10806         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10807         invalid names. Fixes #58047.
10808
10809 2004-05-03  Jackson Harper  <jackson@ximian.com>
10810
10811         * assembly.c: This line was committed accidently and is unneeded.
10812         
10813 2004-05-03  Jackson Harper  <jackson@ximian.com>
10814
10815         * icall.c: Add new icall for Assembly::LoadWithPartialName
10816         * assembly.c/.h: new function that probes the GAC to load partial
10817         assembly names by Paolo Molaro.
10818         
10819 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10820
10821         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10822         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10823         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10824         full type name.
10825
10826 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10827
10828         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10829         * reflection.c: fix bug when parsing a full type name and Version is not
10830         the last thing in the string.
10831
10832 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10833
10834         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10835         crashes when it is freed.
10836
10837 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10838
10839         * assembly.c: print the compat warning to stderr.
10840
10841 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10842
10843         * assembly.c (mono_assembly_load_references): Add a compatibility
10844         hack to run old applications that might be still referencing the
10845         3300-based assemblies, only do this for System.xxx.
10846
10847 2004-05-01  Jackson Harper  <jackson@ximian.com>
10848
10849         * appdomain.c: If the culture is neutral we set it to "".
10850         
10851 2004-04-29  Jackson Harper  <jackson@ximian.com>
10852
10853         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10854
10855 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10856  
10857         * string-icalls.c: added low overhead function for copying chars
10858         * icall.c: added needed icall for the above function
10859  
10860 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10861
10862         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10863         Environment.GetLogicalDrives.
10864
10865 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10866
10867         * rand.c: try and talk to egd or prngd
10868         for random bytes if opening devices fail.
10869
10870 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10871
10872         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10873         alignment for the type using the native alignment of its members 
10874         instead of using klass->min_align.
10875
10876         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10877
10878 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10879
10880         * file-io.c:
10881         * socket-io.c: added check for sys/aio.h.
10882
10883 2004-04-28  Dick Porter  <dick@ximian.com>
10884
10885         * threads.c: Don't abort a thread thats already aborting, when
10886         terminating everything.
10887
10888 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10889
10890         * icall.c: added 2 new async calls for Socket.
10891
10892         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10893         IO on *nix systems.
10894
10895         * threadpool.c: removed unused variable.
10896
10897 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10898
10899         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10900
10901 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10902
10903         * locales.c: put back string_invariant_tolower () and
10904         string_invariant_toupper ().
10905
10906 2004-04-26 David Waite <mass@akuma.org>
10907
10908         * file-io.h:
10909         * socket-io.h:
10910         * threads.h:
10911         * unicode.h: remove comma from end of enumeration declarations
10912
10913 2004-04-26 David Waite <mass@akuma.org>
10914
10915         * debug-mono-symfile.h:
10916         * decimal.c:
10917         * mono_debug.h:
10918         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
10919
10920
10921 2004-04-26  Jackson Harper  <jackson@ximian.com>
10922
10923         * appdomain.c: Increment version number.
10924         
10925 2004-04-26  Jackson Harper  <jackson@ximian.com>
10926
10927         * appdomain.c: Set assembly references public token value when
10928         PublicKeyToken is specified, not the hash_value. Free public token
10929         values when free assembly name data. Previously the public key
10930         token was hex decoded, however we are using hex encoded public key
10931         tokens, so this is not neccasary.
10932         * assembly.c: Lookup assemblies in the gac if their public token
10933         value is set. Add function to allow enabling user gac
10934         lookups. Specify whether or not the assembly was loaded from the
10935         GAC. Compare full assembly names when checking the cache for
10936         assemblies (Temporarily disabled see comment in code). Remove
10937         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
10938         specifies trace-loader they get extra info to stdout on the
10939         loading of assemblies.
10940         * image.h: Add a field for an assembly references public token
10941         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
10942         whether an assembly has been loaded from the GAC.
10943         * image.c: Remove a corlib -> mscorlib name mapping.
10944         * loader.h: Add function to enable/disable the user gac.
10945         * mono-config.c: Check if the usergac is enabled in the config
10946         file.
10947         * icall.c: New icall to determine whether or not an assembly has
10948         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
10949         * tabldefs.h: Add constant for assemblyref flag that specifies a
10950         full public key is used instead of a public token.
10951         * reflection.c: Remove mscorlib -> corlib mappings. Set
10952         PublicTokenValue instead of hash value. This value is a hex
10953         string so it does not need to be expanded.
10954
10955 2004-04-26  Martin Baulig  <martin@ximian.com>
10956
10957         * mono-debug-debugger.c (mono_debugger_initialize): Set
10958         `mono_debugger_initialized' before calling mono_debug_lock().
10959
10960 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
10961
10962         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
10963           InternalToUpper/InternalToLower.
10964         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
10965           removed invariant culture shortcut.  This is now done in managed code.
10966         * locales.c: (string_invariant_toupper/tolower) removed.
10967
10968 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10969
10970         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
10971         Added Poll internal call.
10972
10973         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
10974         call for Poll. Select was too heavy for polling a single socket.
10975
10976         * threadpool.[ch]: added mono_threadpool_cleanup.
10977         * threads.c: use it. Don't use Thread_Abort on windows.
10978
10979 2004-04-23  Martin Baulig  <martin@ximian.com>
10980
10981         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
10982
10983 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
10984
10985         * icall.c: Registred new icalls for key pair protection and added an
10986         icall for Environment.GetFolderPath on Windows.
10987         * security.c|h: Added new icalls for key pair protection.
10988
10989 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10990
10991         * socket-io.c: don't display the non-supported family warning for known
10992         families. Now this is not displayed on windows when checking support
10993         for IPv4/IPv6.
10994
10995 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10996
10997         * class.c: don't display the layout warning for static fields.
10998
10999 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11000
11001         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11002         * locales.c, locales.h: Added new icalls for culture-specific
11003         Char.ToLower and Char.ToUpper.
11004
11005 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11006
11007         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11008         by David Waite.
11009
11010 2004-04-20  Martin Baulig  <martin@ximian.com>
11011
11012         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11013         of the type name before passing it to mono_reflection_type_from_name().
11014
11015 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11016
11017         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11018         encodings here. Fixes #56965.
11019
11020 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11021
11022         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11023         fix test on strstr result not that I can see anything that
11024         relies on the result.
11025
11026 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11027
11028         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11029         Fixes #57081.
11030
11031         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11032
11033         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11034         function to determine which marshalling to use for strings. Fixes
11035         #56965.
11036
11037         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11038
11039         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11040
11041 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11042
11043         * icall.c: #include mono-config.h
11044
11045 2004-04-15  Jackson Harper  <jackson@ximian.com>
11046
11047         * culture-info-tables.h: Fix date formats for en-US culture.
11048         
11049 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11050
11051         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11052         ThreadPool.SetMinThreads.
11053         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11054         ThreadPool.SetMinThreads.
11055
11056 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11057
11058         * mono-config.c: also load the .config file in the directory
11059         where the assembly was found.
11060
11061 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11062
11063         * assembly.c: load per-assembly config files.
11064         * icall.c: decrapified code to get the config dir and moved to
11065         mono-config.c.
11066         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11067         per-assembly config files. When doing a dll map lookup give precedence
11068         to the per-assembly data.
11069
11070 2004-04-14  Martin Baulig  <martin@ximian.com>
11071
11072         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11073         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11074         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11075
11076         * mono-debugger-debugger.c: While the debugger is locked, remember
11077         whether the symbol tables have changes and send one single
11078         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11079
11080 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11081
11082         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11083
11084         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11085         function.
11086
11087         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11088         account when marshalling string arrays. Fixes #56965.
11089
11090 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11091
11092         * icall.c: Add new icalls mapping for security.
11093         * security.c|h: Add internal calls for WindowsIdentity,
11094         WindowsImpersonationContext and WindowsPrincipal.
11095
11096 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11097
11098         * class.c: Added comment to ensure the System.MonoDummy class
11099         is removed when no longer necessary
11100
11101 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11102
11103         * appdomain.c: Pass arguments to the bootstraping exceptions to
11104         minimize JITed methods at boot
11105
11106         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11107         second string to be null.
11108
11109         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11110         Change the protocol to minimize the JIT methods at startup.  Now
11111         it Returns the internal codepage, if the value of "int_code_page"
11112         is 1 at entry, and we can not compute a suitable code page
11113         number, returns the code page as a string.
11114
11115 2004-04-13  Jackson Harper  <jackson@ximian.com>
11116
11117         * culture-info-tables.h: Fix number of decimal digits for all
11118         english locales.
11119
11120 2004-04-13  Jackson Harper  <jackson@ximian.com>
11121
11122         * icall.c: Clairfy out of sync error message. It is not always
11123         your corlib that is out of sync.
11124
11125 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11126
11127         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11128         properties when only the set accessor is overriden. Fixes #55874.
11129
11130 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11131
11132         * assembly.c (mono_assembly_load_references): Make this thread safe.
11133         Fixes #56327.
11134
11135 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11136
11137         * monosn.c: Add missing initialization calls.
11138
11139 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11140
11141         * locales.c:
11142         ves_icall_System_Globalization_CultureInfo_construct_number_format
11143         Fix g_assert so it compiles on fussier compilers re int/ptr
11144         mismatch
11145
11146 2004-04-08  Dick Porter  <dick@ximian.com>
11147
11148         * socket-io.h:
11149         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11150         53992.  Also rearrange the code so that the internal calls return
11151         an error value and exceptions are thrown from managed code.
11152
11153         * icall.c: Add type info to the socket icalls.
11154
11155 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11156
11157         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11158         owes me a beer.
11159
11160 2004-04-07  Martin Baulig  <martin@ximian.com>
11161
11162         * class.c (mono_class_from_generic_parameter): Don't default
11163         `klass->parent' to `mono_defaults.object_type'.
11164
11165 2004-04-07  Martin Baulig  <martin@ximian.com>
11166
11167         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11168         `param->pklass->reflection_info'.       
11169
11170 2004-04-07  Jackson Harper  <jackson@ximian.com>
11171
11172         * culture-info-tables.h: Fix date separator symbol.
11173         
11174 2004-04-07  Martin Baulig  <martin@ximian.com>
11175
11176         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11177         from System.Type to System.MonoType.
11178
11179 2004-04-07  Martin Baulig  <martin@ximian.com>
11180
11181         * reflection.h
11182         (MonoReflectionGenericParam): Added `has_reference_type' and
11183         `has_value_type' fields.
11184
11185         * reflection.c (mono_image_get_generic_param_info): Encode the
11186         correct flags if we have the `class' or `struct' constraint.
11187
11188 2004-04-07  Martin Baulig  <martin@ximian.com>
11189
11190         * reflection.h
11191         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11192
11193 2004-04-07  Jackson Harper  <jackson@ximian.com>
11194
11195         * appdomain.c: Revert extra patches, just wanted to bump the
11196         version number.
11197         
11198 2004-04-07  Jackson Harper  <jackson@ximian.com>
11199
11200         * Makefile.am: Add culture-info private headers.
11201         * icall.c: Add new icalls for contructing locales.
11202         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11203         * locales.h: Declare new culture info construction methods.
11204         * object.h: Add new fields used to avoid the CultureMap to
11205         MonoCultureInfo.
11206         * culture-info.h: Definition of structs used in the culture info
11207         tables.
11208         * culture-info-tables.h: Autogenerated tables that contain culture
11209         info data. This file was generated with the locale-builder tool.
11210         * appdomain.c: Incement corlib version number.
11211         
11212 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11213
11214         * appdomain.c: (mono_runtime_init) move mono_thread_init
11215         to before mono_object_new calls so critical sections
11216         are initialized before use.
11217
11218 2004-04-07  Martin Baulig  <martin@ximian.com>
11219
11220         * icall.c
11221         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11222         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11223         (ves_icall_MonoGenericParam_initialize): Removed.
11224         (monogenericparam_icalls): Removed.
11225         (generictypeparambuilder_icalls): Added new table for
11226         System.Reflection.Emit.GenericTypeParameterBuilder.
11227
11228         * reflection.c
11229         (mono_reflection_define_generic_parameter): Removed.
11230         (mono_reflection_initialize_generic_parameter): This is now called
11231         from GenericTypeParameterBuilder's .ctor.
11232
11233 2004-04-06  Martin Baulig  <martin@ximian.com>
11234
11235         * class.c (mono_class_init): Don't inflate nested classes in a
11236         generic instance.
11237         (mono_type_get_name_recurse): Include the generic arguments for
11238         generic instances and generic type declarations.
11239         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11240         (_mono_class_get_instantiation_name): Removed.
11241         (mono_class_create_generic): Always use `gklass->name' as our name.
11242
11243         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11244
11245         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11246         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11247         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11248         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11249         closed generic methods here.
11250
11251         * reflection.c
11252         (mono_reflection_generic_inst_get_nested_types): Removed.
11253         (inflate_mono_method): Copy the generic parameters from the
11254         MonoMethodHeader into out MonoGenericMethod.
11255
11256 2004-04-06  Martin Baulig  <martin@ximian.com>
11257
11258         * row-indexes.h
11259         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11260
11261         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11262
11263         * reflection.c (build_compressed_metadata): If we have any entries
11264         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11265         set the header version to 1.1.
11266
11267 2004-04-06  Martin Baulig  <martin@ximian.com>
11268
11269         * class.c (mono_class_init): If we're a generic instance,
11270         initialize our nested classes, too.
11271         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11272         suffix. 
11273
11274 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11275
11276         * process.c: quote the argument passed to the shell on windows.
11277
11278 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11279
11280         * threads.c (mono_alloc_special_static_data): Allow this to be
11281         called during startup.
11282
11283 2004-04-02  Martin Baulig  <martin@ximian.com>
11284
11285         * icall.c
11286         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11287
11288 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11289
11290         * icall.c: Fix build.
11291
11292 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11293
11294         * Makefile.am: Added security.c|h.
11295         * icall.c: Added icall for get_UserName;
11296         * security.c: New file for security related icalls. Added function
11297         get_UserName for System.Environment (fix #56144).
11298         * security.h: New. Header file for security.c
11299
11300 2004-04-02  Dick Porter  <dick@ximian.com>
11301
11302         * icall.c: Deleted the icalls that were obsoleted some time ago
11303         by the ICU string code, and which were mixed into the icall
11304         rearranging.  Fixes bug 55969.
11305
11306         * string-icalls.h: 
11307         * string-icalls.c: Deleted the code that those icalls reference.
11308
11309 2004-04-01  Martin Baulig  <martin@ximian.com>
11310
11311         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11312
11313         * class.c (mono_class_from_generic_parameter): Don't set 
11314         TYPE_ATTRIBUTE_INTERFACE.
11315         (my_mono_class_from_generic_parameter): Likewise.
11316
11317 2004-04-01  Martin Baulig  <martin@ximian.com>
11318
11319         * loader.c (find_method): Added an optional `MonoClass *ic'
11320         argument to search in a specific interface.
11321         (mono_get_method_constrained): New public function.
11322
11323 2004-04-01  Martin Baulig  <martin@ximian.com>
11324
11325         * reflection.c (mono_image_get_generic_field_token): Use the
11326         `handleref' cache here.
11327
11328 2004-04-01  Martin Baulig  <martin@ximian.com>
11329
11330         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11331
11332         * reflection.c (create_generic_typespec): Use the `typespec' hash
11333         here, not the `typeref' one.    
11334
11335 2004-04-01  Martin Baulig  <martin@ximian.com>
11336
11337         * class.c (mono_class_inflate_generic_type): Moved the
11338         functionality into a new static inflate_generic_type() which
11339         returns NULL if it didn't do anything.  Only increment the
11340         `mono_stats.inflated_type_count' if we actually inflated
11341         something.
11342         (mono_class_get_full): Check the classes type to see whether we
11343         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11344
11345 2004-04-01  Jackson Harper  <jackson@ximian.com>
11346
11347         * reflection.c: Set culture for assembly references.
11348         
11349 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11350
11351         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11352
11353 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11354
11355         * assembly.c:
11356         (do_mono_assembly_open): the critical section also covers
11357         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11358
11359 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11360
11361         * threads.c:
11362         (mono_manage_threads): abort the background threads when finishing.
11363         Fixes bug #47232.
11364
11365 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11366
11367         * gc.c: only close the done_event handle if there was no timeout.
11368         C-ified comments.
11369
11370 2004-03-30  Martin Baulig  <martin@ximian.com>
11371
11372         * icall.c (icall_entries): It's called "System.Activator", not
11373         "System.Activation".    
11374
11375 2004-03-30  Martin Baulig  <martin@ximian.com>
11376
11377         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11378         (mono_class_create_from_typespec): Likewise.
11379
11380 2004-03-30  Martin Baulig  <martin@ximian.com>
11381
11382         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11383         `has_ctor_constraint' and `initialized'.
11384
11385 2004-03-30  Martin Baulig  <martin@ximian.com>
11386
11387         * reflection.c (encode_new_constraint): New static function to add
11388         the constructor constraint attribute to a type parameter.
11389         (encode_constraints): Call encode_new_constraint() if necessary.
11390
11391         * reflection.h
11392         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11393
11394         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11395         
11396 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11397
11398         * reflection.c, icall.c: add support for pinning variables. 
11399
11400 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11401
11402         * marshal.c (mono_marshal_get_managed_wrapper):
11403         init bool local with zero rather than null.
11404
11405 2004-03-29  Martin Baulig  <martin@ximian.com>
11406
11407         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11408         the "official" behavior here.
11409         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11410
11411 2004-03-29  Martin Baulig  <martin@ximian.com>
11412
11413         * icall.c: Reflect latest API changes.
11414
11415 2004-03-29  Martin Baulig  <martin@ximian.com>
11416
11417         * loader.c (mono_get_method_from_token): Also call
11418         mono_metadata_load_generic_params () for abstract and interface
11419         methods; replace the type arguments in the method signature with
11420         the ones which are loaded from the metadata.
11421
11422 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11423
11424         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11425         of the lock is not the current thread. MS.NET don't do it, in spite of
11426         what the documentation says. See bug #56157.
11427
11428 2004-03-28  Martin Baulig  <martin@ximian.com>
11429
11430         * class.c (mono_class_init): Don't call init_properties() and
11431         init_events() for generic instances; set `prop->parent' when
11432         inflating properties.
11433
11434         * reflection.c (mono_generic_inst_get_object): Call
11435         `mono_class_init (ginst->klass)'.
11436         (mono_type_get_object): Only create a MonoGenericInst if your
11437         generic type is a TypeBuilder.
11438         (do_mono_reflection_bind_generic_parameters): Only set
11439         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11440
11441 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11442
11443         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11444         Fixes #56091.
11445
11446 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11447
11448         * icall.c: added Kill_internal icall.
11449         * process.[ch]: added Kill_internal icall.
11450
11451 2004-03-25  Martin Baulig  <martin@ximian.com>
11452
11453         * class.h (MonoStats): Added `generic_instance_count',
11454         `inflated_method_count', `inflated_type_count' and
11455         `generics_metadata_size'.       
11456
11457 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11458
11459         * reflection.c: no warnings now.
11460
11461 2004-03-25  Martin Baulig  <martin@ximian.com>
11462
11463         * class.c (mono_class_get_full): New public function; does a
11464         mono_class_get(), but also takes a `MonoGenericContext *'.
11465
11466         * loader.c (mono_field_from_memberref): Renamed to
11467         `field_from_memberref', made static and added `MonoGenericContext *'
11468         argument.
11469         (mono_field_from_token): Added `MonoGenericInst *' argument.
11470         (method_from_memberef): Likewise.
11471         (mono_get_method_from_token): Likewise.
11472         (mono_get_method_full): New public function; does a
11473         mono_get_method(), but also takes a `MonoGenericContext *'.
11474
11475         * verify.c (mono_method_verify): Get the method's generic context
11476         and pass it to mono_field_from_token(), mono_get_method_full() and
11477         mono_class_get_full().
11478
11479 2004-03-25  Martin Baulig  <martin@ximian.com>
11480
11481         * class.c (mono_class_inflate_generic_type): Take a
11482         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11483         `MonoGenericMethod *'.
11484
11485 2004-03-25  Martin Baulig  <martin@ximian.com>
11486
11487         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11488         instead of the MonoGenericMethod here.
11489
11490 2004-03-25  Martin Baulig  <martin@ximian.com>
11491
11492         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11493         each time we create a new MonoGenericInst, we also create a new
11494         context which points back to us.
11495
11496         * class.c (inflate_method): Use `ginst->context' instead of
11497         creating a new context.
11498
11499         * loader.c (method_from_memberref): Use
11500         `klass->generic_inst->context' instead of creating a new context.
11501
11502 2004-03-25  Martin Baulig  <martin@ximian.com>
11503
11504         * class.h (MonoGenericContext): New struct.
11505         (MonoGenericMethod): Removed `generic_inst'.
11506
11507         * class.c (mono_class_inflate_generic_method): Take a
11508         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11509
11510 2004-03-25  Martin Baulig  <martin@ximian.com>
11511
11512         * loader.h (MonoMethodInflated): New typedef.
11513
11514         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11515         `generic_param_count' consume just 30 bits, added `is_inflated'
11516         and `has_type_parameters' flags (one bit each).
11517
11518         * class.c (mono_class_inflate_generic_method): Create a
11519         MonoMethodInflated instead of a MonoMethodNormal and set
11520         `is_inflated' in the method signature.
11521
11522         * class.h (MonoGenericMethod): Removed `generic_method'.
11523
11524 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11525
11526         * image.c: Make sure the name of a MonoImage is always an absolute path.
11527           This fixes bug #54415.
11528
11529 2004-03-24  Martin Baulig  <martin@ximian.com>
11530
11531         * class.c (mono_class_setup_vtable): If we're a generic instance,
11532         use our generic type's vtable size.
11533
11534 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11535
11536         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11537         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11538         problems.
11539
11540 2004-03-23  Martin Baulig  <martin@ximian.com>
11541
11542         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11543         `MonoEvent *events'.
11544
11545         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11546         (typebuilder_icalls): Added "get_event_info"; calls
11547         mono_reflection_event_builder_get_event_info(). 
11548
11549         * reflection.c (mono_reflection_generic_inst_initialize): Added
11550         `MonoArray *events'.
11551         (mono_reflection_event_builder_get_event_info): New function.
11552
11553 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11554
11555         * object.h: add mono_type_initialization_init
11556
11557         * object.c (mono_runtime_class_init): 
11558         implement class constructor synchronization rules
11559         to cope with threading issues.  
11560         add mono_type_initialization_init
11561
11562         * appdomain.c (mono_runtime_init): call 
11563         mono_type_initialization_init
11564
11565         * class.h: removing initializing field from MonoVTable
11566
11567 2004-03-23  Martin Baulig  <martin@ximian.com>
11568
11569         * class.c (my_mono_class_from_generic_parameter): Use
11570         `param->name' if it's not NULL. 
11571
11572 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11573
11574         * class.c: do not insert non-virtual methods in the vtable.
11575         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11576         that means the method is non-virtual. This never would have
11577         happened before.
11578
11579 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11580
11581         * profiler.c: Added lock for accessing coverage_hash.
11582
11583 2004-03-22  Martin Baulig  <martin@ximian.com>
11584
11585         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11586         `method->method->signature->generic_param_count != 0' to make it
11587         work for interface methods.
11588
11589 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11590
11591         * process.c: quote the string passed to the shell using g_shell_quote.
11592
11593 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11594
11595         * threads.c:
11596         (mono_threads_manage): don't remove the finalizer thread and self
11597         from the threads hash table so that mono_thread_manage can be called
11598         more than once.
11599
11600 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11601
11602         * process.c: quote the arguments when UseShellExecute is true. Fixes
11603         bug #55790.
11604
11605 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11606
11607         * threads.c: set mono_thread_detach as a cleanup routine for every
11608         thread. This way it's always executed upon thread termination, either
11609         aborted or finished normally. No more xsp hangs!
11610
11611 2004-03-17  Martin Baulig  <martin@ximian.com>
11612
11613         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11614         `int count_nested' and a `MonoType **nested'.
11615
11616         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11617         most of the functionality into a new static
11618         do_mono_reflection_bind_generic_parameters() and don't take a
11619         `MonoType *nested_in' argument any more.  Don't compute nested
11620         types here.
11621         (mono_reflection_generic_inst_get_nested_types): New public method
11622         to get nested types.
11623
11624         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11625         we're a nested class.
11626
11627         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11628         mono_reflection_generic_inst_get_nested_types() to compute the
11629         nested types.
11630
11631 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11632
11633         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11634         descriptive error message under windows.
11635         
11636 2004-03-17  Martin Baulig  <martin@ximian.com>
11637
11638         * class.c (dup_type): Added `const MonoType *original' argument;
11639         copy the attrs from the original type.
11640
11641 2004-03-17  Martin Baulig  <martin@ximian.com>
11642
11643         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11644         `m->generic_inst_cache' here.
11645
11646 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11647
11648         * exception.h exception.c: Add stack_overflow_exception.
11649
11650 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11651
11652         * threadpool.c:
11653         (overlapped_callback): call SetEvent *after* invoking the callback.
11654         No need to call CloseHandle.
11655
11656 2004-03-16  Martin Baulig  <martin@ximian.com>
11657
11658         * reflection.c (mono_image_get_fieldref_token): Take a
11659         `MonoReflectionField *' instead of a `MonoClassField *' and a
11660         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11661
11662 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11663
11664         * appdomain.c: don't add the culture to the filename we're looking for
11665         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11666
11667 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11668
11669         * locales.c: don't ignore symbols when doing case insensitive compares.
11670         Thanks Dick! Fixes bug #54046.
11671
11672         * threads.c: surround 'threads' usage with enter/leave in
11673         mono_thread_manage.
11674
11675 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11676
11677         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11678         implicitly marshalled as [Out]. Fixes #55450.
11679
11680         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11681         an exception.
11682
11683 2004-03-16  Martin Baulig  <martin@ximian.com>
11684
11685         * class.c (mono_class_from_generic_parameter): Use the actual
11686         parameter name. 
11687
11688 2004-03-16  Martin Baulig  <martin@ximian.com>
11689
11690         * reflection.c (type_get_signature_size): New static function.
11691         Compues the size of the type in a method signature.
11692         (method_get_signature_size): New static function; calls
11693         type_get_signature_size() to compute the actual size of the
11694         method's signature.
11695         (method_encode_signature): Use method_get_signature_size() to get
11696         the signature's size rather than using `nparams * 10'.
11697
11698 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11699
11700         * file-io.h: define here WapiOverlapped on windows. I don't want the
11701         regular OVERLAPPED one.
11702
11703         * file-io.c:
11704         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11705         Disabling AIO on windows.
11706
11707 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11708
11709         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11710         bug #55385.
11711
11712 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11713
11714         * appdomain.c: upgraded corlib version.
11715
11716         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11717         and BeginWrite. Allow opening files for asynchrnous operations.
11718
11719         * file-io.h: new struct that maps FileStreamAsyncResult.
11720         * icall.c: added new icalls.
11721         * process.[ch]: support setting child process environment variables
11722         and use the SHELL or COMSPEC when UseShellExecute is true.
11723
11724         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11725         callback for async. IO is here and also BindHandle.
11726
11727         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11728         from here.
11729
11730 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11731
11732         * reflection.c (create_custom_attr): Allow len == 0.
11733
11734         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11735         computation on big-endian machines.
11736
11737 2004-03-13  Martin Baulig  <martin@ximian.com>
11738
11739         * class.h (MonoGenericInst): Added `int count_ifaces'.
11740
11741         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11742         `ginst->count_ifaces' instead `klass->interface_count' since we
11743         may get called before the vtable is created.
11744
11745         * loader.c (mono_method_get_param_names): If we're a generic
11746         instance, return and don't initialize the class.
11747
11748         * reflection.c (mono_reflection_setup_generic_class): Don't call
11749         ensure_runtime_vtable().
11750         (mono_reflection_bind_generic_parameters): Set
11751         `ginst->count_ifaces'.
11752
11753 2004-03-11  Jackson Harper <jackson@ximian.com>
11754
11755         * icall.c:
11756         * unicode.c:
11757         * unicode.h: Remove unused System.Char icalls.
11758         
11759 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11760
11761         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11762         code when we P/Invoke the first library in Windows.Forms, instead
11763         of when we first open the assembly.
11764
11765         * assembly.c: Drop the lookup from here.
11766
11767 2004-03-10  Martin Baulig  <martin@ximian.com>
11768
11769         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11770         class for properties, fields and events.  Finally fixes #54945.
11771
11772 2004-03-10  Martin Baulig  <martin@ximian.com>
11773
11774         * metadata.c (mono_metadata_class_equal): New static function;
11775         checks whether two generic instances or two generic parameters are
11776         equal.
11777         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11778         compare classes.        
11779
11780 2004-03-10  Martin Baulig  <martin@ximian.com>
11781
11782         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11783
11784         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11785         argument and write it into the `reflection_info' field.
11786
11787         * icall.c
11788         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11789         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11790
11791 2004-03-09  Jackson Harper  <jackson@ximian.com>
11792
11793         * char-conversions.h: use 8 bits for numeric data its all we need
11794         * icall.c: numeric data is only 8 bits now.
11795
11796 2004-03-09  Martin Baulig  <martin@ximian.com>
11797
11798         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11799
11800         * class.c (init_properties, init_events): Initialize the new
11801         `parent' field.
11802
11803         * reflection.c (typebuilder_setup_properties): Likewise.
11804         (typebuilder_setup_events): Likewise.
11805
11806         * reflection.h (MonoEventInfo): Replaced `parent with
11807         `declaring_type' and `reflected_type'.
11808
11809         * icall.c (ves_icall_get_property_info): Distinguish between
11810         declaring and reflected type.
11811         (ves_icall_get_event_info): Likewise.
11812
11813 2004-03-09  Martin Baulig  <martin@ximian.com>
11814
11815         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11816         (ves_icall_Type_GetField): Correctly set field->klass.
11817
11818 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11819
11820         * loader.h: Fix warning.
11821
11822 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11823
11824         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11825         library routine if present.  Notice that it will still continue
11826         executing even if its missing, for those working on the Gtk#
11827         edition of Windows.Forms.
11828
11829         * assembly.c (do_mono_assembly_open): If loading the
11830         System.Windows.Forms call mono_loader_wini_init.
11831
11832 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11833
11834         * class.h: Added MonoRemoteClass struct.
11835         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11836         function for MonoStrings.
11837         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11838         Added internal call for getting the proxy type.
11839         * marshal.c: Get the type of transparent proxies from its remote_class.
11840         Added methods that generate the IL for type checks and casts:
11841         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11842         mono_marshal_get_proxy_cancast.
11843         * marshal.h: Declaration of the previous new methods.
11844         * object.c: Added new moethods for creating and updating MonoRemoteClass
11845         instances: mono_remote_class, mono_upgrade_remote_class, 
11846         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11847         * verify.c: FIx transparent_proxy_fields layout.
11848         * appdomain.c: Bump corlib version.
11849
11850 2004-03-04  Jackson Harper  <jackson@ximian.com>
11851
11852         * icall.c: Add icall to access char conversion tables.
11853         * char-conversions.h: Character conversion tables.
11854         * Makefile.am: Add char-conversions.h private header file.
11855         
11856 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11857
11858         * appdomain.c (unload_thread_main): Increase unloading timeout to
11859         10 sec as a temporary workaround for Nant problems.
11860
11861 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11862
11863         * gc.c: Add checks for GC_enable and GC_disable.
11864
11865         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11866         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11867         (bug #54988).
11868         
11869 2004-02-27  Martin Baulig  <martin@ximian.com>
11870
11871         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11872         `MonoReflectionType *' instead of a `MonoType *'.
11873
11874 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11875
11876         * gc.c (run_finalize): Avoid finalizing the object representing the
11877         finalizer thread.
11878         (finalizer_thread): Fix warning.
11879
11880 2004-02-25  Martin Baulig  <martin@ximian.com>
11881
11882         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11883         argument for nested types.
11884         (mono_class_create_generic): Added support for nested generictypes.
11885
11886         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11887         `GList *nested'.
11888
11889         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11890
11891         * reflection.c (method_encode_signature): Increase the minimum
11892         value of `size' from 10 to 11.
11893         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11894         and `MonoType **types' arguments instead of the `MonoArray
11895         *types'; added `MonoType *nested_in'.  Recursively instantiate
11896         nested classes. 
11897
11898 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11899
11900         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11901         stack_overflow_ex members which are used by exception handling.
11902
11903         * appdomain.c (mono_runtime_init): Initialize the new members.
11904
11905         * gc.c (mono_gc_enable): New helper function.
11906         * gc.c (mono_gc_disable): New helper function.
11907
11908 2004-02-23  Martin Baulig  <martin@ximian.com>
11909
11910         * icall.c: I must have been really stupid - make it actually work
11911         this time ;-)
11912
11913 2004-02-23  Martin Baulig  <martin@ximian.com>
11914
11915         * loader.c (method_from_memberref): Only inflate the method if
11916         it's in another klass.
11917
11918 2004-02-23  Martin Baulig  <martin@ximian.com>
11919
11920         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
11921         (mono_class_init): If we're a generic instance and an interface,
11922         compute `class->interface_id'; also create `class->interfaces'
11923         here and inflate them.
11924
11925         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
11926         `ginst->is_open'.
11927         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
11928
11929         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
11930
11931 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
11932
11933         * reflection.c (method_encode_code): Improved the error message
11934         generated by the exception.
11935
11936 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11937
11938         * icall.c: Martin did not do what he said in the ChangeLog for
11939         2004-02-18, but put back the changes for properties and events.
11940         Commenting those changes out again and adding comment to bug #54518.
11941         
11942         * process.c: removed warning.
11943
11944 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
11945
11946         * marshal.c (emit_struct_conv): Print an error message instead of
11947         asserting when a type does not have the StructLayout attribute.
11948
11949 2004-02-20  Martin Baulig  <martin@ximian.com>
11950
11951         * reflection.c (mono_type_get_object): Also use the cache for
11952         generic instances.
11953         (mono_reflection_bind_generic_parameters): Always compute
11954         `ginst->ifaces'.        
11955
11956 2004-02-20  Martin Baulig  <martin@ximian.com>
11957
11958         * class.h (MonoGenericMethod): Removed `klass'.
11959
11960         * class.c (mono_class_inflate_generic_method): Added `MonoClass
11961         *klass' argument.
11962
11963 2004-02-20  Martin Baulig  <martin@ximian.com>
11964
11965         * reflection.c (method_encode_methodspec): Actually use the
11966         uninflated signature for the memberref.
11967
11968 2004-02-20  Martin Baulig  <martin@ximian.com>
11969
11970         * class.h (MonoGenericMethod): Removed `declaring'.
11971
11972         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
11973         is NULL, compute it here.
11974
11975 2004-02-20  Martin Baulig  <martin@ximian.com>
11976
11977         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
11978
11979         * metadata.c (mono_metadata_generic_inst_hash): New method.
11980         (mono_metadata_generic_inst_equal): New method.
11981
11982         * reflection.c (mono_reflection_bind_generic_parameters): Use the
11983         `klass->image->generic_inst_cache' cache to avoid creating
11984         duplicate MonoGenericInst's.
11985
11986         * class.c (mono_class_inflate_generic_type): Use the cache.
11987
11988 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11989
11990         * object.c: fixed gc descriptor calculation for embedded valuetypes.
11991
11992 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11993
11994         * icall.c: added Socket.WSAIoctl icall.
11995
11996         * socket-io.[ch]: implemented
11997         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
11998
11999 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12000
12001         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12002
12003 2004-02-18  Urs C Muff  <umuff@quark.com>
12004
12005         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12006         this work on PPC and other big-endian architectures.
12007
12008         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12009         fields with an underscore to make sure they're only accessed by
12010         the read32() macro.
12011
12012 2004-02-18  Martin Baulig  <martin@ximian.com>
12013
12014         * icall.c: Put the klass->refclass changes back for methods and
12015         fields, but not for properties and events.  We're currently not
12016         distinguishing between DeclaringType and ReflectedType for
12017         properties and events, that's what caused the regressions.
12018
12019 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12020
12021         * object.c:
12022         (mono_async_result_new): the handle can be NULL.
12023
12024         * threadpool.c: Use an event instead of a semaphore, don't initialize
12025         it until needed. This saves quite a few semaphores from being created
12026         when using the threadpool.
12027
12028 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12029
12030         * object.c (mono_string_is_interned_lookup): Fix interning of long
12031         strings. Fixes #54473.
12032
12033         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12034
12035         * icall.c: Revert the klass->refclass changes since they introduce
12036         regressions (bug #54518).
12037
12038 2004-02-18  Martin Baulig  <martin@ximian.com>
12039
12040         * class.c (mono_class_init): If we're a generic instance and don't
12041         come from a TypeBuilder, inflate our members here.
12042         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12043         (mono_class_create_generic): New public method.
12044         (mono_class_initialize_generic): Removed.
12045         (get_instantiation_name): Renamed to
12046         _mono_class_get_instantiation_name() and made it public.
12047
12048 2004-02-18  Martin Baulig  <martin@ximian.com>
12049
12050         * class.c (mono_class_inflate_generic_type): Clear the new
12051         instance's `nginst->klass' when inflating a generic instance.
12052         (mono_class_is_subclass_of): Added (basic) support for generic
12053         instances.
12054
12055 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12056
12057         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12058         MonoMempool to hold compiled native code.
12059
12060 2004-02-17  Martin Baulig  <martin@ximian.com>
12061
12062         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12063         `properties'.
12064
12065         * reflection.c (mono_reflection_generic_inst_initialize): Added
12066         `MonoArray *properties' argument.
12067
12068         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12069
12070 2004-02-17  Martin Baulig  <martin@ximian.com>
12071
12072         * icall.c (ves_icall_Type_GetFields): Renamed to
12073         ves_icall_Type_GetFields_internal() and added a
12074         `MonoReflectionType *rtype' argument; pass it to
12075         mono_field_get_object() to set the field's "reflected" type.
12076         (ves_icall_Type_GetConstructors): Likewise.
12077         (ves_icall_Type_GetEvents): Likewise.
12078         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12079         argument; pass it to mono_method_get_object() to set the method's
12080         "reflected" type.       
12081
12082 2004-02-17  Martin Baulig  <martin@ximian.com>
12083
12084         * class.h (MonoDynamicGenericInst): New type.
12085         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12086
12087         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12088         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12089         (ves_icall_MonoGenericInst_GetFields): New interncall.
12090
12091         * class.c (mono_class_from_generic): Don't call
12092         mono_class_initialize_generic() if this is a dynamic instance;
12093         ie. it's being created from a TypeBuilder.
12094         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12095         `class->byval_arg.type'.
12096
12097         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12098         to `inflate_method' and made static.
12099         (mono_reflection_inflate_field): Removed.
12100         (mono_reflection_generic_inst_initialize): New public method.
12101
12102         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12103         `ctors' and `fields'; added `initialized'.
12104
12105 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12106
12107         * debug-helpers.c (mono_method_full_name): Fix output for empty
12108         namespaces.
12109
12110 2004-02-12  Martin Baulig  <martin@ximian.com>
12111
12112         * class.h (MonoClassField): Added `MonoType *generic_type'.
12113
12114         * reflection.c (mono_image_get_fieldref_token): Added support for
12115         instantiated generic types.
12116         (field_encode_inflated_field): Removed.
12117         (mono_image_get_inflated_field_token): Removed.
12118         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12119
12120         * reflection.h (MonoReflectionInflatedField): Removed.
12121
12122 2004-02-12  Martin Baulig  <martin@ximian.com>
12123
12124         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12125         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12126
12127         * reflection.c (mono_image_get_methodspec_token): Take a
12128         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12129         (mono_image_create_token): Check whether we have a
12130         `method->signature->gen_method' and call
12131         mono_image_get_methodspec_token() if appropriate.
12132         (inflated_method_get_object): Removed.
12133         (mono_reflection_bind_generic_method_parameters): Return a
12134         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12135         (mono_reflection_inflate_method_or_ctor): Likewise.
12136
12137         * reflection.h (MonoReflectionInflatedMethod): Removed.
12138
12139 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12140
12141         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12142         for custom valuetype marshalling.
12143
12144         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12145
12146 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12147
12148         * icall.c: fixed WSAGetLastError_internal name.
12149
12150 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12151
12152         * threads.c (mono_thread_attach): Allow this to be called multiple
12153         times for a thread.
12154         
12155         * threads.c (build_wait_tids): Do not wait for ourselves.
12156
12157         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12158         appdomain list is empty.
12159
12160         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12161         memory returned by mono_string_builder_to_utf16, since it points into
12162         managed memory. Thanks to Bernie Solomon for noticing this.
12163
12164         * icall.c: Add AppDomainSetup icalls.
12165
12166         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12167
12168         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12169         types.
12170
12171         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12172         custom attributes to the method_aux struct. Also fix array indexes etc.
12173
12174         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12175         
12176 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12177
12178         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12179         (both static and runtime) and reduce startup time.
12180
12181 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12182
12183         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12184         AsAny marshalling conversion instead of crashing.
12185
12186         * marshal.c: Fix warnings.
12187
12188 2004-02-09  Martin Baulig  <martin@ximian.com>
12189
12190         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12191
12192         * reflection.h (MonoReflectionInflatedMethod): Removed the
12193         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12194
12195         * reflection.c (method_encode_methodspec): Removed the `method'
12196         argument; we get it from `gmethod->declaring'.
12197         (inflated_method_get_object): Removed the `declaring' argument.
12198
12199 2004-02-09  Martin Baulig  <martin@ximian.com>
12200
12201         * class.h (MonoGenericMethod): New type.
12202         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12203         `generic_method'.
12204
12205         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12206         a `MonoGenericMethod *gen_method' one.
12207
12208         * class.c (mono_class_inflate_generic_type): Take an additional
12209         `MonoGenericMethod * argument.  This is only non-NULL if we're
12210         inflating types for a generic method.   
12211         (mono_class_inflate_generic_signature): Renamed to
12212         inflate_generic_signature() and made static; take a
12213         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12214         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12215         instead of a `MonoGenericInst *' one.
12216         (mono_class_inflate_generic_method): Likewise.
12217
12218         * reflection.c (encode_generic_method_sig): Take a
12219         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12220         (method_encode_methodspec): Likewise.
12221         (inflated_method_get_object): Likewise. 
12222
12223         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12224         field with a `MonoGenericMethod *gmethod' one.  
12225
12226 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12227
12228         * class.h (mono_class_has_parent): add parens to expansion
12229         so you can ! this.
12230
12231 2004-02-08  Martin Baulig  <martin@ximian.com>
12232
12233         * image.h (MonoImage): Removed `generics_cache'.
12234
12235         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12236         instead of a `MonoType *' argument; removed the `inflate_methods'
12237         argument.  Don't inflate methods here.
12238
12239         * loader.c (find_method): If it's a generic instance, call
12240         mono_class_init() on the `sclass->generic_inst->generic_type'.
12241
12242         * metadata.c (mono_type_size): Make this work on uninitialized
12243         generic instances; call it on the `ginst->generic_type's class.
12244
12245         * reflection.c (mono_reflection_bind_generic_parameters): Call
12246         mono_class_from_generic() to create the `ginst->klass'.
12247
12248 2004-02-08  Martin Baulig  <martin@ximian.com>
12249
12250         * class.h (MonoClass): Changed type of `generic_inst' from
12251         `MonoType *' to `MonoGenericInst *'.
12252
12253 2004-02-08  Martin Baulig  <martin@ximian.com>
12254
12255         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12256         mono_type_get_object(), this is now creating a `MonoGenericInst'
12257         for MONO_TYPE_GENERICINST.
12258         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12259         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12260
12261         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12262         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12263         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12264         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12265         and reflected type.
12266
12267         * reflection.h (MonoReflectionInflatedMethod): Removed
12268         `declaring_type' and `reflected_type'.
12269
12270 2004-02-08  Martin Baulig  <martin@ximian.com>
12271
12272         * class.h (MonoGenericInst): Added `MonoType *parent' and
12273         `MonoType **ifaces'.
12274
12275         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12276         `parent' and `interfaces'.
12277
12278         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12279         `MonoType *' argument and return a `MonoType *'.
12280
12281         * icall.c
12282         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12283         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12284
12285 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12286
12287         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12288         valuetype marshalling.
12289
12290 2004-02-06  Martin Baulig  <martin@ximian.com>
12291
12292         * class.c
12293         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12294         (my_mono_class_from_generic_parameter): Likewise.
12295
12296 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12297
12298         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12299         contents of the symbol files lazily.
12300
12301         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12302
12303         * threads.h threads.c icall.c: New icalls for getting and setting the
12304         threads name.
12305
12306 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12307
12308         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12309         Raise an exception when the domain is not found.
12310
12311 2004-02-03  Martin Baulig  <martin@ximian.com>
12312
12313         * reflection.c (mono_image_get_methodspec_token): Use the
12314         uninflated signature; fixes gen-33.
12315
12316 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12317
12318         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12319         the finalizer code can use thread functionality.
12320
12321         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12322         the finalizer thread.
12323
12324         * threads.c: Make some functions more robust.
12325
12326         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12327
12328         * metadata.h: Add new marshalling conventions.
12329
12330         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12331         stringbuilder marshalling. Fixes #53700.
12332
12333         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12334
12335         * reflection.c (mono_image_get_type_info): Save declarative security
12336         info.
12337
12338         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12339         unmanaged fields as well.
12340
12341         * appdomain.c: Bump corlib version.
12342
12343 2004-02-01  Martin Baulig  <martin@ximian.com>
12344
12345         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12346         method type arguments.  
12347
12348 2004-01-30  Duncan Mak  <duncan@ximian.com>
12349
12350         * marshal.h: Add prototype for
12351         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12352         and
12353         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12354         fix the build.
12355
12356 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12357
12358         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12359         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12360
12361 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12362
12363         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12364         custom marshalling of valuetypes.
12365
12366         * marshal.c: Fix some warnings.
12367
12368 2004-01-29  Martin Baulig  <martin@ximian.com>
12369
12370         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12371         for generic method parameters.
12372
12373         * reflection.c (method_encode_methodspec): Write the uninflated
12374         signature into the methodspec table.
12375         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12376         is always the uninflated method.
12377         (reflection_methodbuilder_to_mono_method): Copy the generic
12378         parameters from the MethodBuilder into `header->gen_params'.
12379
12380 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12381
12382         * class.c (mono_class_from_generic_parameter): Fix warning.
12383
12384 2004-01-27  Martin Baulig  <martin@ximian.com>
12385
12386         * class.c (mono_class_from_generic_parameter): Don't create
12387         `klass->methods' here.  
12388
12389 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12390
12391         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12392         extension since it does not work with libraries named lib<FOO>.dll.so.
12393
12394 2004-01-25  Martin Baulig  <martin@ximian.com>
12395
12396         * class.c (mono_class_inflate_generic_type): Added support for
12397         MONO_TYPE_GENERICINST.
12398
12399         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12400         inflate methods on open constructed types.      
12401
12402 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12403
12404         * object.c: fire ProcessExit event in the root AppDomain after running
12405         Main. Fixes bug #53299.
12406
12407 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12408
12409         * socket-io.c: include the new socket-wrappers.h header.
12410         Use the wrappers instead of the unix socket functions to make the code
12411         more clear.
12412
12413 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12414
12415         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12416
12417         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12418         Fixes #22532.
12419
12420 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12421
12422         * reflection.c (mono_image_create_pefile): Handle the case when the
12423         entry point is not a MethodBuilder.
12424
12425         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12426         field to ReflectionMethod since it is not allways a builder.
12427
12428         * reflection.c (type_get_fully_qualified_name): New helper function to
12429         return the fully qualified name of a type.
12430
12431         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12432         type name for custom marshallers.
12433
12434         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12435
12436         * class.c (mono_class_setup_vtable): If a parent class already 
12437         implements an interface, use the implementing methods from that class.
12438         Fixes #53148.
12439
12440 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12441
12442         * threadpool.c: just return instead of ExitThread to allow for thread
12443         clean up earlier.
12444
12445 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12446
12447         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12448         when closing resource modules.
12449
12450         * reflection.c (mono_image_create_pefile): Handle the case when the
12451         entry point is not a MethodBuilder.
12452
12453         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12454         field to ReflectionMethod since it is not allways a builder.
12455
12456 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12457
12458         * marshal.c (mono_marshal_get_managed_wrapper): 
12459         mono_marshal_alloc takes native int so CONV_I
12460         the arg for 64bits.
12461
12462 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12463
12464         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12465         tokens in the cattr table. Fixes #53108.
12466
12467 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12468
12469         * loader.c: don't trim ".dll" before looking up in the config file.
12470         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12471
12472 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12473
12474         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12475         Return the module which contains the resource as well.
12476         (ves_icall_System_Reflection_Module_Close): New icall.
12477
12478         * appdomain.c: Bump corlib version number.
12479
12480         * image.c (mono_image_addref): New public function.
12481
12482         * assembly.c: Call mono_image_addref.
12483
12484         * reflection.c (mono_module_get_object): Increase reference count of 
12485         the image.
12486
12487         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12488         Fixes #22532.
12489
12490         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12491         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12492         proper exceptions on DllImport problems.
12493
12494 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12495
12496         * class.c, metadata.c: eliminate CSIZE macro.
12497
12498 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12499
12500         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12501         * object.h: Added async_callback field in MonoAsyncResult.
12502         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12503         * verify.c: Added async_callback in MonoAsyncResult layout.
12504
12505 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12506
12507         * reflection.c (mono_reflection_get_custom_attrs): Add support
12508         for Modules.
12509
12510 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12511
12512         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12513         marshalling.
12514         (mono_marshal_method_from_wrapper): Add null pointer check.
12515
12516 2004-01-16  Martin Baulig  <martin@ximian.com>
12517
12518         * debug-mono-symfile.h: Set version number to 36 and reflect
12519         latest symbol writer changes.
12520
12521 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12522
12523         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12524         multi-dimensional arrays.
12525         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12526         (mono_class_from_mono_type): Use bounded_array_class_get.
12527         
12528         * class.c (mono_bounded_array_class_get): New function which takes
12529         a 'bounded' bool argument to distinguish vectors from one dimensional
12530         arrays.
12531
12532         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12533         bounded_array_class_get if the array has bounds.
12534
12535         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12536         Search modules loaded using AssemblyBuilder:AddModule as well.
12537
12538 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12539
12540         * appdomain.c: increased corlib version.
12541         * filewatcher.c: removed g_print.
12542         * icall.c:
12543         (get_property_info): only allocate what is actually requested.
12544         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12545
12546 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12547
12548         * Makefile.am: added filewatcher.[ch]
12549         * filewatcher.[ch]: FileSystemWatcher runtime support.
12550         * icall.c: added new FSW icalls.
12551
12552 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12553
12554         * string-icalls.c: fix stringbuilder regression as suggested by
12555         Iain McCoy <iain@mccoy.id.au>.
12556
12557 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12558
12559         * process.c (process_read_stringtable_block): Recognize '007f' as
12560         a language neutral stringtable block.
12561
12562 2004-01-12  Patrik Torstensson
12563
12564         * object.h (MonoStringBuilder) : Changed layout to support our
12565         new stringbuilder class.
12566         * marshal.c: Change marshalling to support the new layout of 
12567         string builder.
12568         * appdomain.c: increased version number because new layout of
12569         string builder.
12570
12571 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12572
12573         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12574         assembly name as an string instead of an AssemblyName, since it is
12575         easier to extract info from it.
12576
12577         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12578         the culture subdirectories too. Fixes #52231.
12579
12580 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12581
12582         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12583         It takes 2 new parameters with an optional name for the method to look
12584         for and case ignoring info.
12585
12586         * threadpool.c: removed unused variable.
12587
12588 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12589
12590         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12591         It takes 2 new parameters with an optional name for the property to look
12592         for and case ignoring info.
12593         Fixes bug #52753.
12594
12595 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12596
12597         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12598         Fix #52451.
12599
12600 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12601
12602         * appdomain.c:
12603         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12604         Fixes bug #52630.
12605
12606 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12607
12608         * reflection.c: Add support for more than one unmanaged resource.
12609
12610         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12611         in field->def_value, as done in all other cases.
12612
12613         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12614         TypeBuilders.
12615
12616         * reflection.c (mono_reflection_create_runtime_class): Remove 
12617         errorneous assignment to klass->element_class, since it is already
12618         done in mono_reflection_setup_internal_class.
12619
12620 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12621
12622         * gc.c: added missing LeaveCriticalSection.
12623         * icall.c: indented a couple of lines.
12624         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12625         if we call EndInvoke inside a callback. Fixes bug #52601.
12626
12627 2004-01-07  Martin Baulig  <martin@ximian.com>
12628
12629         * mono-debug-debugger.h
12630         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12631
12632 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12633
12634         * appdomain.c: Use messages in NotImplementedException.
12635
12636         * exception.c (mono_get_exception_not_implemented): Now this takes
12637         a message argument.
12638
12639         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12640         exception instead of g_asserting an aborting when something is not
12641         implemented.
12642
12643         Add some inline docs.
12644
12645 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12646
12647         * reflection.h: Update after changes to object layout.
12648
12649         * reflection.c: Implement saving of unmanaged aka win32 resources.
12650
12651         * appdomain.c: Bump version number.
12652
12653         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12654         Handle missing domains gracefully.
12655
12656 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12657
12658         * file-io.c : On Windows, there are much more invalid_path_chars.
12659
12660 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12661
12662         * class.h, object.c: prepare for GetType () speedup.
12663
12664 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12665
12666         * profiler.c: workaround for --profile null reference exception on
12667           cygwin. Patch by Patrik Torstensson.
12668
12669 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12670
12671         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12672         make work for unaligned access.
12673
12674 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12675
12676         * class.c: small cleanup (class->fields [i] -> field).
12677         * image.c: check address of metadata is valid.
12678
12679 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12680
12681         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12682         search the list of loaded assemblies.
12683
12684         * reflection.c (mono_reflection_type_from_name): Use 
12685         mono_assembly_loaded instead of mono_image_loaded.
12686
12687         * reflection.c: Fix warnings.
12688
12689 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12690
12691         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12692         is dynamic. This is needed since an assembly can contain both dynamic and
12693         non-dynamic images.
12694
12695         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12696         assembly->dynamic.
12697
12698         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12699
12700         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12701         to store modules loaded using AddModule.
12702
12703         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12704         on Modules.
12705
12706         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12707
12708         * reflection.c (mono_image_fill_export_table_from_module): New function to
12709         fill out the EXPORTEDTYPES table from a module.
12710
12711         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12712         into a separate function. Also handle loaded non-dynamic modules.
12713
12714         * reflection.c (mono_image_basic_init): Fix memory allocation.
12715
12716         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12717
12718         * assembly.c (mono_assembly_load_references): Make this public.
12719
12720 2003-12-19  Martin Baulig  <martin@ximian.com>
12721
12722         * class.c (mono_class_initialize_generic): Made this static, take
12723         a `MonoGenericInst *' instead of a `MonoClass *'.
12724         (mono_class_from_generic): Call mono_class_initialize_generic()
12725         unless we're already initialized or being called from
12726         do_mono_metadata_parse_generic_inst().
12727
12728         * class.h (MonoGenericInst): Added `initialized' and
12729         `init_pending' flags.
12730
12731         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12732         `mono_class_init (gklass)' or mono_class_initialize_generic()
12733         here; set `generic_inst->init_pending' while parsing the
12734         `type_argv'.
12735
12736 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12737
12738         * locales.c: include string.h for memxxx prototypes
12739
12740 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12741
12742         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12743         constructor when accessing literal fields.
12744
12745 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12746
12747         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12748
12749         * reflection.c (assembly_add_resource_manifest): New function to fill
12750         the MANIFESTRESOURCE table.
12751
12752         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12753
12754         * reflection.h: Update to changes in class layout.
12755
12756         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12757         Reenable call to mono_runtime_is_shutting_down ().
12758
12759         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12760         determine if the runtime is shutting down.
12761
12762 2003-12-16  Jackson Harper <jackson@ximian.com>
12763
12764         * icall.c: comment out call to mono_runtime_is_shutting_down to
12765         fix build.
12766         
12767 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12768
12769         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12770         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12771
12772 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12773
12774         * reflection.c: move definition of swap_with_size
12775         to before its first call
12776
12777 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12778
12779         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12780
12781         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12782         icall.
12783
12784         * object.c: Fix warnings.
12785
12786         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12787         members if FlattenHierarchy is set.
12788
12789         * reflection.c (mono_image_add_decl_security): New function to emit
12790         declarative security.
12791
12792         * reflection.h reflection.c: Add support for declarative security.
12793
12794         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12795         
12796 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12797
12798         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12799         
12800         * appdomain.c verify.c: Moved corlib version checking into its own
12801         function in appdomain.c since it needs to create vtables etc.
12802
12803 2003-12-13  Patrik Torstensson <p@rxc.se>
12804
12805         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12806         instead of unwrapped server.
12807
12808 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12809
12810         * verify.c (check_corlib): Fix field index.
12811
12812 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12813
12814         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12815         GetGacPath icall.
12816
12817 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12818
12819         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12820         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12821         cope with sizeof(size_t) != sizeof(guint32).
12822
12823 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12824
12825         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12826         in case of failure.
12827
12828 2003-12-10  Mark Crichton <crichton@gimp.org>
12829
12830         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12831         in managed code.
12832
12833         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12834
12835 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12836
12837         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12838         marked as deleted.
12839
12840 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12841
12842         * verify.c (check_corlib): Handle the case when the version field is 
12843         initialized by a static constructor.
12844
12845 2003-12-08  Patrik Torstensson  <p@rxc.se>
12846
12847     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12848
12849 2003-12-08  Martin Baulig  <martin@ximian.com>
12850
12851         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12852         a MonoReflectionGenericParameter, also take the parameter index
12853         and name as arguments.
12854         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12855         (ves_icall_MonoGenericParam_initialize): New interncall.
12856         (ves_icall_Type_make_byref_type): New interncall.
12857
12858         * reflection.h (MonoReflectionGenericParam): Derive from
12859         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12860         `index' fields.
12861
12862         * reflection.c (mono_reflection_define_generic_parameter): Create
12863         and return a new MonoReflectionGenericParam; don't initialize the
12864         constraints here.
12865         (mono_reflection_initialize_generic_parameter): New public method;
12866         initializes the constraints and creates the `param->pklass'.
12867
12868 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12869
12870         * reflection.h reflection.c: Use the new fields 'num_types', 
12871         'num_fields' and 'num_methods' to track the number of types etc.
12872
12873         * verify.c (check_corlib): Check corlib version number.
12874
12875 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12876
12877         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12878         function works on all methods.
12879
12880 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12881
12882         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12883         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12884         the custom_type_info flag of the transparent proxy.
12885         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12886         objects that supports IRemotingTypeInfo.
12887         * object.h: Added custom_type_info field in transparent proxy.
12888
12889 2003-12-06  Martin Baulig  <martin@ximian.com>
12890
12891         * class.c (mono_class_create_from_generic): Removed.
12892         (mono_class_from_generic): Check `ginst->klass' before doing
12893         anything else.  This is important to fully support "recursive"
12894         generic types.
12895
12896         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12897         empty `generic_inst->klass' before doing anything else.
12898
12899 2003-12-06  Dick Porter  <dick@ximian.com>
12900
12901         * verify.c: 
12902         * object.h:
12903         * icall.c:
12904         * locales.c: Use C structs to access class fields.  Don't do a
12905         conversion between MonoString and UChar because both are
12906         platform-endian UTF-16.  Compare now takes startindex and count
12907         parameters.  Add a char overload for IndexOf.  Speed up the
12908         invariant string IndexOf.
12909
12910 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12911
12912         * Makefile.am (monosn_LDADD): Fix parallel build.
12913
12914 2003-12-04  Martin Baulig  <martin@ximian.com>
12915
12916         * icall.c
12917         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12918         (ves_icall_Type_make_array_type): New interncall.       
12919
12920 2003-12-04  Martin Baulig  <martin@ximian.com>
12921
12922         * locales.c: also change it in the !HAVE_ICU case.
12923
12924 2003-12-04  Dick Porter  <dick@ximian.com>
12925
12926         * icall.c:
12927         * locales.c: construct_compareinfo is now in CompareInfo, not
12928         CultureInfo.
12929
12930 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
12931
12932         * image.c (mono_image_load_file_for_image): Cache loaded images in the
12933         image->files array.
12934
12935         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
12936         table as well.
12937
12938         * assembly.c (mono_assembly_load_references): Only load references
12939         once.
12940
12941         * class.c (mono_class_from_name): Avoid linear search of the 
12942         EXPORTEDTYPE table.
12943
12944         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
12945
12946 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
12947
12948         * image.h (MonoImage): Add 'field_cache' field.
12949
12950         * loader.c (mono_field_from_token): Cache field lookups.
12951         
12952         * reflection.c (mono_module_get_object): Fix name property.
12953
12954         * icall.c (ves_icall_get_enum_info): Update after changes to 
12955         mono_metadata_get_constant_index ().
12956
12957         * icall.c: Get rid of get_type_info icall, use a separate icall for
12958         each type property to avoid needless memory allocations. Fixes #51514.
12959
12960         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
12961         to avoid needless binary searches.
12962
12963         * class.c (class_compute_field_layout): Move the initialization of
12964         field->def_value to mono_class_vtable ().
12965
12966         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
12967         non-corlib types.
12968
12969         * object.c (mono_object_allocate): Make it inline.
12970
12971         * object.c (mono_object_allocate_spec): Make it inline.
12972         
12973 2003-12-02  Dick Porter  <dick@ximian.com>
12974
12975         * locales.c (create_NumberFormat): NumberFormatInfo construction.
12976         Patch by Mohammad DAMT (mdamt@cdl2000.com).
12977
12978 2003-12-01  Dick Porter  <dick@ximian.com>
12979
12980         * threads.c: Fix signature and call in CreateMutex and
12981         CreateEvent.
12982
12983 2003-12-01  Dick Porter  <dick@ximian.com>
12984
12985         * icall.c: 
12986         * locales.c: Implement string compares and searching
12987
12988         * object.h: Add extra Thread field
12989
12990 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
12991
12992         * reflection.c (fixup_method): Add support for MonoCMethod.
12993
12994 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
12995
12996         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
12997
12998         * reflection.c (assembly_name_to_aname): Allow extra characters in
12999         assembly names. Fixes #51468.
13000
13001 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13002
13003         * exception.c (mono_exception_from_name_domain): New helper function.
13004
13005         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13006         exception object in the correct domain.
13007
13008         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13009         formatting + make a copy a the input data.
13010
13011         * loader.c (mono_get_method_from_token): Methods which contain
13012         native code do not have entries in the ImplMap.
13013
13014         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13015         Thanks to Gonzalo for spotting this.
13016         
13017         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13018         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13019
13020         * assembly.h (mono_assembly_load_from): Split the second part of 
13021         assembly loading into a new public function.
13022
13023         * exception.h (mono_get_exception_bad_image_format): New function.
13024
13025 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13026
13027         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13028         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13029         
13030         * icall.c: Add new icall for creating dynamic methods.
13031
13032         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13033
13034         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13035
13036         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13037         create a dynamic method.
13038
13039         * reflection.c (resolve_object): New helper function.
13040
13041         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13042         which manipulate it so they can also work on dynamic methods.
13043
13044         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13045         creating the MonoReflectionMethodAux structure if it is not needed.
13046         
13047         * reflection.h verify.c: Update after changes to object layout.
13048
13049         * reflection.c (method_builder_encode_signature): Fix compilation on
13050         gcc 2.95.x.
13051
13052 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13053
13054         * appdomain.h: Added support for context static fields. Added static_data
13055           field to MonoAppContext and renamed thread_static_fields to a more
13056           generic special_static_fields in MonoAppDomain, since it can now contain
13057           context static fields.
13058         * domain.c: Updated hashtable name.
13059         * object.c: Replaced field_is_thread_static() for a more generic
13060           field_is_special_static() which also checks for context static attribute.
13061           In mono_class_vtable(), added support for static context fields.
13062         * threads.c: Changed methods that manage thread static fields to more
13063           generic methods so they can be reused both for thread and context static
13064           data.
13065         * threads.h: Declared some new methods.
13066
13067 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13068
13069         * reflection.h: Update after changes to the managed types.
13070
13071         * reflection.c (encode_custom_modifiers): New helper function.
13072
13073         * reflection.c (method_encode_signature): Emit custom modifiers.
13074
13075         * reflection.c (field_encode_signature): Emit custom modifiers.
13076
13077 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13078
13079         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13080
13081         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13082         implementation.
13083
13084         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13085         icall.
13086
13087         * object.c (mono_field_get_value_object): New function.
13088
13089         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13090         specific.
13091
13092 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13093
13094         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13095         return a preallocated out-of-memory exception instance.
13096
13097         * object.c (out_of_memory): Use the new function.
13098
13099         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13100         flag is before the custom modifiers. Fixes #49802.
13101
13102 2003-11-16  Martin Baulig  <martin@ximian.com>
13103
13104         * class.c (mono_class_is_open_constructed_type): Implemented the
13105         MONO_TYPE_GENERICINST case.
13106
13107 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * assembly.c (mono_assembly_fill_assembly_name): New function to
13110         fill out the MonoAssemblyName structure.
13111         (mono_assembly_open): Use the new function.
13112
13113         * icall.c (fill_reflection_assembly_name): New helper function.
13114
13115         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13116         new function.
13117
13118         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13119
13120 2003-11-15  Martin Baulig  <martin@ximian.com>
13121
13122         * class.c (mono_class_is_open_constructed_type): New public
13123         function; checks whether a type is an open constructed type,
13124         ie. whether it still contains type parameters.
13125         (mono_class_inflate_generic_type): If we're a type parameter and
13126         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13127         type.
13128
13129         * class.h (MonoGenericInst): Added `guint32 is_open'.
13130
13131         * loader.c (method_from_methodspec): Check whether we're an open
13132         or closed constructed type and set `ginst->is_open'.
13133
13134         * reflection.c (mono_reflection_bind_generic_parameters): Check
13135         whether we're an open or closed constructed type and set
13136         `ginst->is_open'.
13137         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13138         from open constructed types.
13139
13140 2003-11-15  Martin Baulig  <martin@ximian.com>
13141
13142         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13143         a generic instance (instead of a generic type declaration) with
13144         unbound generic parameters, bind them to our actual types.
13145
13146 2003-11-14  Martin Baulig  <martin@ximian.com>
13147
13148         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13149
13150         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13151         an interface type, populate `res->interfaces' with instantiated
13152         versions of all the interfaces we inherit.
13153
13154 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13155
13156         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13157         when MONO_PATH is set but doesn't contain the install dir.
13158
13159 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13160
13161         * icall.c:
13162         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13163         it's also implemented in base classes. Fixes bug #50927.
13164
13165 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13166
13167         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13168         if this method is called from a finalizer. Fixes #50913.
13169
13170 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13171
13172         * threads.c: Implement VolatileRead/VolatileWrite
13173
13174         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13175
13176 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13177
13178         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13179         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13180         2.95.3.
13181
13182         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13183         from Peter Ross (pro@missioncriticalit.com).
13184         
13185 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13186
13187         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13188
13189 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13190
13191         * assembly.c (mono_assembly_load_references): Disable check because it
13192         triggers on older corlibs which lots of people have.
13193
13194 2003-11-12  Jackson Harper  <jackson@ximian.com>
13195
13196         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13197         load corlib.dll if mscorlib.dll is not found.
13198         * assembly.h: Remove corlib name define.
13199         * class.c:
13200         * domain.c:
13201         * image.c: Change corlib name to mscorlib.
13202         
13203 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13204
13205         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13206
13207 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13208
13209         * appdomain.h: Added loader_optimization here to sync with the C#
13210         code, and add disallow_binding_redirects field.
13211
13212 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13213
13214         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13215
13216         * reflection.c (mono_image_build_metadata): Fix crash on modules
13217         with no types.
13218
13219         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13220
13221         * icall.c (ves_icall_get_method_info): Return callingConvention as
13222         well.
13223
13224         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13225         namespaces from the EXPORTEDTYPE table as well.
13226
13227         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13228         from all modules inside the assembly.
13229         
13230 2003-11-11  Martin Baulig  <martin@ximian.com>
13231
13232         * reflection.c (mono_reflection_bind_generic_parameters): Make
13233         this work for interfaces.
13234
13235 2003-11-11  Martin Baulig  <martin@ximian.com>
13236
13237         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13238
13239 2003-11-11  Martin Baulig  <martin@ximian.com>
13240
13241         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13242         "MonoInflatedMethod" and "MonoInflatedCtor".
13243
13244 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13245
13246         * reflection.c (resolution_scope_from_image): Use the assembly table
13247         from the manifest module, since other modules don't have it.
13248
13249         * debug-helpers.c (mono_type_full_name): New helper function.
13250
13251         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13252
13253         * image.c (mono_image_load_file_for_image): New public function which
13254         is a replacement for the load_file_for_image in class.c.
13255
13256         * assembly.c (mono_assembly_load_module): A wrapper for the function
13257         above which does assembly association and reference loading too.
13258
13259         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13260
13261 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13262
13263         * appdomain.c: not all of the attributes for the full assembly name
13264         are required and the order doesn't matter. Fixes bug #50787.
13265
13266 2003-11-10  Dick Porter  <dick@ximian.com>
13267
13268         * locales.c: Use platform-endian UTF16
13269
13270 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13271
13272         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13273         
13274 2003-11-10  Martin Baulig  <martin@ximian.com>
13275
13276         * metadata.c
13277         (mono_metadata_load_generic_params): Make this actually work.
13278
13279         * reflection.c (mono_reflection_bind_generic_parameters): If our
13280         parent is a generic instance, pass all the `types' to it, no
13281         matter whether it has the same number of type parameters or not.
13282
13283 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13284
13285         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13286
13287         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13288         assignment code to this function so it gets called recursively for all
13289         modules.
13290
13291         * image.c (load_modules): Remove the assembly assignment since it is
13292         now done by mono_assembly_load_references.
13293         
13294         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13295         Add 'module' argument.
13296         (mono_module_get_types): New helper function.
13297         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13298
13299 2003-11-08  Martin Baulig  <martin@ximian.com>
13300
13301         * class.c (mono_class_inflate_generic_method): Interface method
13302         don't have a header.
13303
13304         * reflection.c (mono_image_get_methodspec_token): Take an
13305         additional `MonoGenericInst *' argument instead of reading it from
13306         the header; this is necessary to support interfaces.
13307         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13308         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13309         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13310         argument.
13311
13312         * reflection.h (MonoReflectionInflatedMethod): Added
13313         `MonoGenericInst *ginst'.
13314
13315 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13316
13317         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13318
13319 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13320
13321         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13322
13323 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13324
13325         * reflection.c 
13326         (reflection_methodbuilder_from_method_builder):
13327         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13328         initialize a ReflectionMethodBuilder structure.
13329         (mono_image_get_methodbuilder_token):
13330         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13331         tokens which point to types in another module inside the same assembly.
13332
13333         * reflection.c: Use the new helper functions.
13334         
13335         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13336
13337         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13338         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13339
13340         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13341         neccesary.
13342
13343         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13344         current module. Emit the manifest only for the main module.
13345
13346         * reflection.c (mono_image_create_token): Add assertion when a 
13347         memberref needs to be created.
13348
13349         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13350
13351         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13352         larger buffer for the custom attribute blob. Fixes #50637.
13353         
13354 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13355
13356         * threadpool.c: notify listener on async processing handles after
13357         invoking the async callback. Thanks to Zoltan.
13358
13359 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13360
13361         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13362         avoid code duplication.
13363
13364         * reflection.h (MonoDynamicImage): New type which is currently unused,
13365         but will be used through the ref.emit code in place of 
13366         MonoDynamicAssembly.
13367
13368         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13369         object layout.
13370
13371         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13372         a MonoDynamicImage instead of just a MonoImage.
13373         
13374         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13375         icalls to ModuleBuilder but keep their semantics, so they will work
13376         with moduleb->assemblyb. This will change later.
13377         
13378 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13379
13380         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13381         object layout.
13382
13383         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13384         main module, since it is now done by the managed code.
13385
13386 2003-11-03  Martin Baulig  <martin@ximian.com>
13387
13388         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13389         `ginst->klass' here.
13390         (method_encode_methodspec): Don't use the `ginst->generic_method's
13391         klass if it's a generic instance, use `ginst->klass' in this case.
13392
13393 2003-11-03  Martin Baulig  <martin@ximian.com>
13394
13395         * reflection.c (mono_image_get_generic_method_param_info):
13396         Removed, use mono_image_get_generic_param_info() instead.
13397         (mono_image_get_type_info): Write the GenericParam table before
13398         the Method table.  This is neccessary because in the GenericParam
13399         table, type parameters of the class (ie. '!0' etc.) must come
13400         before the ones from its generic methods (ie. '!!0' etc).
13401
13402 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13403
13404         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13405
13406 2003-11-02  Martin Baulig  <martin@ximian.com>
13407
13408         * reflection.c (create_generic_typespec): Take a
13409         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13410         the generic parameters from it.
13411
13412 2003-11-02  Martin Baulig  <martin@ximian.com>
13413
13414         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13415         instead of a `MonoClassField *' since we just need the type.
13416         (create_generic_typespec): New static function.  Creates a
13417         TypeSpec token for a generic type declaration.
13418         (mono_image_get_generic_field_token): New static function.
13419         (mono_image_create_token): If we're a FieldBuilder in a generic
13420         type declaration, call mono_image_get_generic_field_token() to get
13421         the token.
13422
13423 2003-11-02  Martin Baulig  <martin@ximian.com>
13424
13425         * reflection.h
13426         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13427         `MonoReflectionGenericInst *declaring_type' and
13428         `MonoReflectionGenericInst *reflected_type' fields.
13429
13430         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13431         `MonoReflectionGenericInst *declaring_type' and a
13432         `MonoReflectionGenericInst *reflected_type' argument instead of a
13433         single `MonoReflectionGenericInst *type' one.  Set
13434         `res->declaring_type' and `res->reflected_type' from them.
13435         (mono_reflection_inflate_field): Likewise.      
13436
13437 2003-11-02  Martin Baulig  <martin@ximian.com>
13438
13439         * class.c (mono_class_setup_vtable): Don't store generic methods
13440         in the vtable.  
13441
13442 2003-11-02  Martin Baulig  <martin@ximian.com>
13443
13444         * reflection.h (MonoReflectionGenericInst): Added
13445         `MonoReflectionType *declaring_type'.
13446
13447         * reflection.c (mono_reflection_bind_generic_parameters): Use
13448         `if (tb->parent)' instead of `klass->parent'.
13449
13450 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13451
13452         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13453         with an empty ASSEMBLY table.
13454
13455         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13456         variable in the inner and outer loops.
13457
13458 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13459
13460         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13461         argument.
13462
13463         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13464         
13465         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13466         icalls. Instead, do everything in managed code. This is needed since
13467         it is hard to restore the original domain etc. in unmanaged code in the
13468         presence of undeniable exceptions.
13469
13470         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13471         New icalls to push and pop appdomain refs.
13472
13473 2003-10-31  Martin Baulig  <martin@ximian.com>
13474
13475         * class.c (inflate_generic_type): Renamed to
13476         mono_class_inflate_generic_type() and made it public.
13477
13478         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13479         New interncall.
13480
13481         * loader.c (mono_field_from_memberref): Also set the retklass for
13482         typespecs.
13483
13484         * fielder.c (mono_image_get_inflated_field_token): New static
13485         method; creates a metadata token for an inflated field.
13486         (mono_image_create_token, fixup_method): Added support for
13487         "MonoInflatedField".
13488         (fieldbuilder_to_mono_class_field): New static function.
13489         (mono_reflection_inflate_field): New public function.
13490
13491         * reflection.h
13492         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13493         (MonoReflectionInflatedField): New typedef.     
13494
13495 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13496
13497         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13498         for Solaris and other platforms without s6_addr16
13499
13500 2003-10-30  Martin Baulig  <martin@ximian.com>
13501
13502         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13503         argument instead of two.
13504         (mono_class_inflate_generic_signature): Likewise.
13505         (inflate_generic_header): Likewise.
13506         (mono_class_inflate_generic_method): Likewise.  In addition, if
13507         `ginst->klass' is set, it becomes the new `method->klass'.
13508
13509         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13510         field.
13511
13512         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13513         first byte. [FIXME]
13514         (method_encode_methodspec): If we have generic parameters, create
13515         a MethodSpec instead of a MethodRef.
13516         (fixup_method): Added support for "MonoInflatedMethod" and
13517         "MonoInflatedCtor".
13518         (mono_image_create_token): Added support for "MonoInflatedMethod"
13519         and "MonoInflatedCtor".
13520         (inflated_method_get_object): New static function; returns a
13521         managed "System.Reflection.MonoInflatedMethod" object.
13522         (mono_reflection_bind_generic_method_parameters): Return a
13523         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13524         (mono_reflection_inflate_method_or_ctor): Likewise.
13525         (mono_image_get_generic_method_param_info): Initialize unused
13526         fields to zero.
13527         (mono_image_get_generic_param_info): Likewise.
13528
13529         * reflection.h (MonoReflectionInflatedMethod): New public
13530         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13531         "S.R.MonoInflatedCtor" classes.
13532
13533         * loader.c (method_from_memberref): If we're a TypeSpec and it
13534         resolves to a generic instance, inflate the method.
13535
13536 2003-10-28  Dick Porter  <dick@ximian.com>
13537
13538         * object.c (mono_runtime_run_main): Convert command-line arguments
13539         into utf8, falling back to the user's locale encoding to do so.
13540
13541 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13542
13543         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13544         at this time.
13545
13546         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13547
13548         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13549         up icalls at method definition time. Partially fixes #33569.
13550
13551 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13552
13553         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13554         marshalling of arrays. Fixes #50116.
13555
13556         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13557
13558         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13559         points to a vtable in the dying appdomain.
13560
13561         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13562         listeners into unmanaged code inside the lock.
13563
13564         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13565         domains and add some comments.
13566
13567 2003-10-25  Martin Baulig  <martin@ximian.com>
13568
13569         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13570
13571         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13572
13573         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13574         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13575         currently parsing.  Create the generic class and store it in
13576         `generic_inst->klass' before parsing the type arguments.  This is
13577         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13578         for an example.
13579         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13580         to support recursive typespec entries.
13581
13582         * class.c (mono_class_setup_parent): If our parent is a generic
13583         instance, we may get called before it has its name set.
13584         (mono_class_from_generic): Splitted into
13585         mono_class_create_from_generic() and mono_class_initialize_generic().
13586
13587 2003-10-25  Martin Baulig  <martin@ximian.com>
13588
13589         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13590         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13591         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13592         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13593
13594         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13595         (create_typespec): Likewise.
13596         (mono_reflection_bind_generic_parameters): Return a
13597         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13598         (mono_reflection_inflate_method_or_ctor): New public function.
13599
13600         * reflection.h (MonoReflectionGenericInst): New typedef.        
13601
13602 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13603
13604         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13605         inside the domain lock. Fixes #49993.
13606         
13607         * object.c (mono_class_vtable): When typed allocation is used, 
13608         allocate vtables in the GC heap instead of in the mempool, since the
13609         vtables contain GC descriptors which are used by the collector even
13610         after the domain owning the mempool is unloaded.
13611
13612         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13613
13614         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13615         reflect what it does. Also invalidate mempools instead of freeing
13616         them if a define is set.
13617
13618         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13619         of the appdomain.
13620         
13621         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13622         hold the finalizable objects in this domain.
13623
13624         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13625         appdomain.
13626
13627         * appdomain.c (mono_domain_set): New function to set the current
13628         appdomain, but only if it is not being unloaded.
13629
13630         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13631         appdomain which is being unloaded.
13632         
13633         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13634         unloading of the root appdomain.
13635
13636         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13637         icall to execute a method in another appdomain. Intended as a 
13638         replacement for InternalSetDomain, which can confuse the code 
13639         generation in the JIT.
13640
13641         * appdomain.c (mono_domain_is_unloading): New function to determine
13642         whenever an appdomain is unloading.
13643
13644         * appdomain.c (mono_domain_unload): New function to correctly unload
13645         an appdomain.
13646
13647         * assembly.c (mono_assembly_load_references): Check that an assembly
13648         does not references itself.
13649
13650         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13651         domain manually, it asks the finalizer thread to do it, then waits for
13652         the result. Also added a timeout.
13653
13654         * icall.c: Register the new icalls.
13655
13656         * threads.h threads.c: Export the mono_gc_stop_world and 
13657         mono_gc_start_world functions.
13658         
13659         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13660         function to fill out the mempool with 0x2a.
13661
13662 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13663
13664         * reflection.h (MonoReflectionMethodAux): New structure to store
13665         information which is rarely used, thus is not in the MonoMethod
13666         structure.
13667
13668         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13669         store the aux info.
13670
13671         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13672         and marshalling info into the aux structure.
13673
13674         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13675         from the aux structure.
13676
13677         * loader.c (mono_method_get_param_names): Retrieve the param names from
13678         the aux structure.
13679         
13680 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13681
13682         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13683         warning.
13684
13685 2003-10-21  Dick Porter  <dick@ximian.com>
13686
13687         * socket-io.c
13688         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13689         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13690
13691 2003-10-21  Martin Baulig  <martin@ximian.com>
13692
13693         * reflection.c (mono_reflection_bind_generic_parameters):
13694         `klass->parent' is NULL for interfaces.
13695
13696 2003-10-21  Martin Baulig  <martin@ximian.com>
13697
13698         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13699
13700 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13701
13702         * exception.c (mono_exception_from_name_msg): New helper function for
13703         creating exceptions and initializing their message field.
13704
13705         * exception.c: Simplify functions using the new helper.
13706
13707         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13708         New function.
13709
13710         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13711         mono_raise_exception, since otherwise gcc doesn't generate the function
13712         epilog for raise_exception, confusing the stack unwinding in the JIT.
13713         Fixes #45043.
13714
13715         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13716         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13717         Fixes #49499.
13718
13719 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13720
13721         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13722         utf8.
13723
13724 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13725
13726         * icall.c: Removed GetUninitializedObject method because
13727           AllocateUninitializedClassInstance does the same.
13728
13729 2003-10-18  Martin Baulig  <martin@ximian.com>
13730
13731         * class.c (inflate_generic_signature): Renamed to
13732         mono_class_inflate_generic_signature() and made it public.
13733         (my_mono_class_from_generic_parameter): New static function; if we
13734         don't already have the generic parameter's MonoClass, create a
13735         very simple one which is just used internally in the runtime and
13736         not passed back to managed code.
13737
13738         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13739
13740         * metadata.h (MonoMethodSignature): Moved the
13741         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13742         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13743
13744         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13745         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13746         interncall on the MonoMethod class, not on MethodInfo.
13747         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13748         calling mono_reflection_bind_generic_method_parameters() directly.
13749
13750         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13751         return the already computed `method->signature'.
13752         (method_from_methodspec): New static function to load a method
13753         from a MethodSpec entry.
13754         (mono_get_method_from_token): Call the new method_from_methodspec()
13755         for MethodSpec tokens.  
13756         (mono_get_method_from_token): If we're a generic method, load the
13757         type parameters.
13758
13759         * reflection.c (mono_image_get_memberref_token): Allow
13760         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13761         table.
13762         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13763         (mono_image_create_token): First check whether it's a generic
13764         method (so we'd need to create a MethodSpec), then do the other
13765         two alternatives.
13766         (mono_reflection_bind_generic_method_parameters): Return a
13767         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13768         called directly from the interncall.
13769
13770 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13771
13772         * reflection.c (load_public_key): Move loading of the public key
13773         into managed code.
13774
13775         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13776
13777         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13778         fields.
13779
13780         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13781         culture, hash_alg and public_key. Fixes #49555.
13782
13783 2003-10-17  Martin Baulig  <martin@ximian.com>
13784
13785         * class.h (MonoGenericInst): Moved this declaration here and added
13786         `MonoMethod *generic_method'.
13787
13788         * icall.c
13789         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13790         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13791
13792         * metadata.c (mono_metadata_type_equal): Two types of
13793         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13794         index; ie. don't compare the address of the `MonoGenericParam'
13795         structure.
13796         (mono_metadata_load_generic_params): Removed the `MonoMethod
13797         *method' argument.
13798
13799         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13800         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13801
13802         * reflection.c (method_encode_signature): Encode the number of
13803         generic parameters.
13804         (encode_generic_method_sig): New static function.
13805         (method_encode_methodspec): New static function; creates an entry
13806         in the MethodSpec table for a generic method.
13807         (mono_image_get_methodspec_token): New static function.
13808         (mono_image_create_token): Call mono_image_get_methodspec_token()
13809         for generic methods.
13810         (mono_reflection_bind_generic_method_parameters): New public
13811         function.  Instantiates a generic method.
13812
13813 2003-10-16  Martin Baulig  <martin@ximian.com>
13814
13815         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13816         *gen_params' here from MonoMethodHeader.
13817
13818         * metadata.c (mono_metadata_parse_method_signature): If we have
13819         generic parameters, initialize `method->gen_params' and then set
13820         the correct `type->data.generic_param' in all the parameters.
13821
13822 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13823
13824         * threads.c (mono_threads_get_default_stacksize): New function to 
13825         return the default stacksize.
13826
13827         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13828         termination of the finalizer thread, since the previous method had
13829         race conditions. Fixes #49628.
13830
13831         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13832         as for the other managed threads.
13833
13834 2003-10-16  Martin Baulig  <martin@ximian.com>
13835
13836         * class.c (inflate_generic_signature): Copy `generic_param_count'
13837         and `gen_params'.
13838
13839         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13840         New interncall.
13841
13842         * metadata.c (mono_metadata_parse_method_signature): Actually set
13843         the `method->generic_param_count' here.
13844         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13845
13846 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13847
13848         * object.h: Add a new field to TypedRef to simplify the implementation
13849         of the REFANY opcodes in the JIT.
13850
13851         * icall.c: Make use of the new field.
13852
13853         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13854         dynamically.
13855
13856 2003-10-15  Martin Baulig  <martin@ximian.com>
13857
13858         * class.c (mono_class_from_gen_param): Renamed to
13859         mono_class_from_generic_parameter() and moved most of the
13860         functionality from mono_reflection_define_generic_parameter()
13861         here; ie. we create a "real" class here.
13862         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13863         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13864         previously been called.
13865
13866         * class.h (MonoGenericParam): Moved the declaration of this struct
13867         here from metadata.h and added `MonoMethod *method'.
13868
13869         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13870         interncall.
13871
13872         * loader.c (mono_get_method_from_token): If we have any generic
13873         parameters, call mono_metadata_load_generic_params() to read them
13874         from the MONO_TABLE_GENERICPAR.
13875
13876         * metadata.c (mono_metadata_load_generic_params): Added
13877         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13878
13879         * metadata.h (MonoMethodSignature): Replaced
13880         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13881         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13882
13883         * reflection.c (mono_reflection_define_generic_parameter): Moved
13884         most of the functionality into the new
13885         mono_class_from_generic_parameter(); set the `method' field if
13886         we're a method parameter.       
13887
13888 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13889
13890         * marshal.c (emit_struct_conv): if native size is 0
13891         emit no code.
13892
13893 2003-10-14  Martin Baulig  <martin@ximian.com>
13894
13895         * icall.c: The generics API has changed in the spec since it was
13896         added to System.Type; these modifications make it match the spec
13897         again.
13898         (ves_icall_Type_GetGenericParameters): Renamed to
13899         `ves_icall_Type_GetGenericArguments'.
13900         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13901         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13902         `ves_icall_MonoType_get_HasGenericArguments'.
13903         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13904         `ves_icall_MonoType_get_IsGenericParameter'.
13905         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13906         this is no interncall anymore.
13907         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13908         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13909
13910 2003-10-14  Martin Baulig  <martin@ximian.com>
13911
13912         * reflection.c (mono_reflection_bind_generic_parameters): Also
13913         inflate generic methods if we're reading the class from IL.
13914
13915 2003-10-13  Martin Baulig  <martin@ximian.com>
13916
13917         * reflection.c (mono_reflection_define_generic_parameter): This
13918         method isn't called directly from the icall anymore; take a
13919         `MonoReflectionAssemblyBuilder *' so we can use this for type and
13920         method generic parameters.
13921         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
13922         (method_builder_encode_signature): Encode generic parameters.
13923         (mono_image_get_method_info): Write generic params to the
13924         MONO_TABLE_GENERICPARAM table.
13925
13926         * reflection.h (MonoReflectionMethodBuilder): Added
13927         `MonoArray *generic_params'.
13928
13929         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
13930
13931         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
13932         wrapper for mono_reflection_define_generic_parameter().
13933         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
13934
13935 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
13936
13937         * marshal.h: Add missing function to fix build.
13938
13939         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
13940         the SetLastError pinvoke attribute.
13941
13942         * marshal.c (mono_marshal_set_last_error): New helper function called
13943         by the generated code.
13944         
13945         * marshal.c (mono_mb_emit_branch): New helper function.
13946
13947         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
13948
13949         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13950         classes as parameters and return values of delegates. Fixes #29256. 
13951
13952 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
13953
13954         * locales.c: use gint32 in non HAVE_ICU case
13955
13956 2003-10-11  Martin Baulig  <martin@ximian.com>
13957
13958         * mono-debug.c (mono_debug_add_method): Added a workaround for
13959         bug #48591.
13960
13961 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
13962
13963         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
13964         delegates passed to native code must use the STDCALL calling 
13965         convention. Fixes #35987.
13966
13967 2003-10-10  Martin Baulig  <martin@ximian.com>
13968
13969         * class.c (inflate_generic_type): If we're inflating for a generic
13970         type instance (and not for a generic method), return
13971         MONO_TYPE_MVAR unchanged.
13972
13973 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13974
13975         * string-icalls.c: Join ignores null strings in the source array.
13976         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
13977         * threads.c: GetAvailableTheads is slightly more accurate.
13978
13979 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
13980
13981         * threads.h threads.c : add mono_threads_set_default_stacksize
13982         and pass default to CreateThread calls.
13983
13984 2003-10-09  Dick Porter  <dick@ximian.com>
13985
13986         * icall.c:
13987         * locales.h:
13988         * locales.c: Internal calls for constructing CultureInfo and
13989         related objects from libicu (if its available.)
13990
13991 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
13992
13993         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
13994
13995 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13996
13997         * threadpool.c: added an argument to async_invoke_thread that is the
13998         item to process, pass the MonoAsyncResult to the thread start function
13999         when creating a new thread. This way we don't need to acquire any lock
14000         when we're creating a new thread. Readded a semaphore for faster
14001         response times (instead of that Sleep i added).
14002
14003 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14004
14005         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14006         get daylight change dates better on Windows, fix handling
14007         of platforms without tm_gmtoff.
14008
14009 2003-10-06  Martin Baulig  <martin@ximian.com>
14010
14011         * class.c (inflate_generic_method): Renamed to
14012         mono_class_inflate_generic_method() and made public.
14013         (mono_class_init): Don't inflate the generic methods here.
14014         (mono_class_from_generic): Added `gboolean inflate_methods'
14015         argument.  Inflate the methods here.
14016
14017         * loader.c (mono_method_get_param_names): Ignore instances of
14018         generic types for the moment.
14019
14020         * reflection.c (fixup_method): Added support for inflated methods.
14021         (mono_image_create_token): Use mono_image_get_methodref_token()
14022         for inflated methods.
14023         (mono_custom_attrs_from_param): Ignore instances of generic types
14024         for the moment.
14025         (mono_reflection_bind_generic_parameters): New public function.
14026         Moved all the functionality from
14027         ves_icall_Type_BindGenericParameters() here and added support for
14028         dynamic types.
14029         (mono_reflection_define_generic_parameter): Initialize
14030         `klass->methods' here.
14031
14032         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14033         functionality into mono_reflection_define_generic_parameter().
14034         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14035         TypeBuilder, return that TypeBuilder.
14036
14037 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14038
14039         * appdomain.c: removed mono_delegate_semaphore.
14040
14041         * threadpool.c:
14042         (mono_thread_pool_add): moved hash table creation inside and the thread 
14043         creation outside of the critical region.
14044         (mono_thread_pool_finish): removed obsolete code.
14045         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14046         continue or exit the thread depending on the queue.
14047
14048 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14049
14050         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14051         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14052         handle more bool marshalling options
14053
14054 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14055
14056         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14057         arrays of structs. Also add a more descriptive error message when
14058         a structure member is marshalled as LPArray.
14059
14060 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14061
14062         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14063         marshalling arrays of complex types. Fixes #29098. Also remove an
14064         usused and incomplete function.
14065
14066 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14067
14068         * gc.c: report heap_size - free_bytes as total memory allocated
14069         (bug#49362).
14070
14071 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14072
14073         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14074         fix timezone handling problems on Windows.
14075         
14076         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14077         asserts when the year is outside the range handled by ms the functions.
14078
14079         * class.c (setup_interface_offsets): If the class is an interface,
14080         fill out its interface_offsets slot.
14081
14082 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14083
14084         * threadpool.c: mark threadpool threads as background.
14085
14086 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14087
14088         * decimal.c - define DECINLINE to nothing if not using GCC
14089
14090 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14091
14092         * assembly.c: More refcount fixes.
14093
14094 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14095
14096         * string-icalls.c: if we're not trimming, return the same string.
14097         When not splitting, don't create a new string.
14098
14099 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14100
14101         * image.c:
14102         (mono_image_open): increment the ref_count inside the critical section.
14103
14104 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14105
14106         * image.c (mono_image_open): Fix reference counting bug.
14107
14108 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14109
14110         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14111         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14112         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14113         mono_lookup_pinvoke_call throws.        
14114
14115 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14116
14117         * reflection.c (mono_reflection_parse_type): Fix #49114.
14118
14119         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14120         temporary workaround for cygwin header problem.
14121
14122         * object.c (mono_object_isinst): Synchronize this with the code
14123         generated by the JIT for casts.
14124
14125 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14126
14127         * reflection.c (encode_type): Fix #38332.
14128
14129 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14130
14131         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14132         the original method from the wrapper method.
14133
14134 2003-09-25  Martin Baulig  <martin@ximian.com>
14135
14136         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14137         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14138         (ves_icall_Type_get_IsGenericInstance): New interncall.
14139
14140 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14141
14142         * object.c: fix cast warning in big endian code.
14143
14144 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14145
14146         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14147         
14148 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14149
14150         * assembly.c: don't call check_env from mono_assembly_load. It's
14151         already done once in mono_assemblies_init and may cause headaches when
14152         multiple threads are loading assemblies.
14153
14154 2003-09-19  Martin Baulig  <martin@ximian.com>
14155
14156         * reflection.c (mono_reflection_define_generic_parameter): Don't
14157         allocate `klass->methods', set `klass->flags' to
14158         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14159
14160 2003-09-18  Martin Baulig  <martin@ximian.com>
14161
14162         * class.c (mono_class_init): Don't create `class->methods' if it's
14163         already initialized.
14164
14165         * metadata.c (mono_metadata_load_generic_params): Make this
14166         actually work.
14167
14168         * reflection.c (mono_reflection_define_generic_parameter): Set
14169         parent class and interfaces from the constraints.
14170
14171         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14172         to keep this struct in sync with the declaration in TypeBuilder.cs.
14173
14174 2003-09-17  Martin Baulig  <martin@ximian.com>
14175
14176         * metadata.h (MonoType): Replaced the data's `int type_param'
14177         field with `MonoGenericParam *generic_param'.
14178         (MonoGenericParam): Added `MonoClass *klass'.
14179
14180         * class.c (mono_class_from_gen_param): Removed the
14181         `MonoImage *image' and `int type_num' arguments.
14182
14183         * metadata.c (mono_metadata_parse_generic_param): New static
14184         method; creates a MonoGenericParam which just contains the index.
14185         (do_mono_metadata_parse_type): Call
14186         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14187         MONO_TYPE_MVAR.
14188
14189         * reflection.c (mono_image_typedef_or_ref): Generic type
14190         parameters may be in the same assembly, but never use a typedef
14191         for them.
14192         (mono_reflection_define_generic_parameter): We're now creating a
14193         "real" class for the type parameter; it's now safe to call
14194         mono_class_from_mono_type() on the class'es type, it'll do the
14195         right thing.
14196
14197 2003-09-16  Martin Baulig  <martin@ximian.com>
14198
14199         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14200         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14201         the `symfile' data structure must be fully initialized before it
14202         gets added to the table.
14203
14204 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14205
14206         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14207
14208         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14209         class init trampolines.
14210
14211 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14212
14213         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14214         to the built-in profiler to turn off time and allocation profiling
14215         respectively.
14216
14217 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14218
14219         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14220         g_direct_equal.
14221
14222         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14223         in human readable form.
14224
14225 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14226
14227         * reflection.c icall.c: Fixed warnings.
14228
14229         * image.c (load_class_names): Use a temporary hash table to hold the
14230         namespaces in order to avoid doing many string comparisons.
14231
14232         * image.h: Fix typo.
14233
14234         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14235         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14236         since the NULL case is short-circuited inside g_hash_table_lookup, 
14237         leading to better performance.  
14238
14239         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14240         obtain the first custom attribute for a given index. Depends on the
14241         CustomAttribute table being sorted by the parent field.
14242
14243         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14244         for better performance.
14245
14246 2003-09-07  Martin Baulig  <martin@ximian.com>
14247
14248         * class.c (mono_class_init): If we're a generic instance, inflate
14249         all our methods instead of loading them from the image.
14250         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14251
14252 2003-09-07  Martin Baulig  <martin@ximian.com>
14253
14254         * mono-debug-debugger.c: Added support for constructors.
14255
14256 2003-09-06  Martin Baulig  <martin@ximian.com>
14257
14258         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14259         New interncall.
14260
14261         * reflection.c (mono_reflection_setup_generic_class): Call
14262         ensure_runtime_vtable() to create the vtable.
14263
14264 2003-09-05  Martin Baulig  <martin@ximian.com>
14265
14266         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14267         MONO_TYPE_MVAR.
14268
14269 2003-09-04  Martin Baulig  <martin@ximian.com>
14270
14271         * reflection.c (mono_reflection_define_generic_parameter): Generic
14272         parameters start with zero.
14273
14274 2003-09-04  Martin Baulig  <martin@ximian.com>
14275
14276         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14277
14278         * reflection.h (MonoReflectionGenericParam): New typedef.
14279         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14280         the generic parameters from the managed TypeBuilder.
14281
14282         * reflection.c (mono_reflection_define_generic_parameter): New function.
14283         (mono_reflection_create_runtime_class): Encode generic parameters.
14284         (mono_reflection_setup_generic_class): New function; this is
14285         called after adding adding all generic params to the TypeBuilder.
14286         (encode_type): Added MONO_TYPE_VAR.
14287
14288 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14289
14290         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14291         here from the JIT.
14292
14293         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14294         load hook.
14295
14296 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14297
14298         * reflection.h reflection.c class.h class.c: Delete duplicate 
14299         definition of mono_type_get_name () from reflection.c and export the
14300         one in class.c.
14301
14302         * class.c: Class loading fixes from Bernie Solomon 
14303         (bernard@ugsolutions.com).
14304
14305         * reflection.c: Endianness fixes from Bernie Solomon 
14306         (bernard@ugsolutions.com).
14307         
14308 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14309
14310         * assembly.h assembly.c: Define a file format version for AOT
14311         libraries.
14312         
14313         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14314
14315         * appdomain.h (MonoJitInfo): New field to determine whenever the
14316         code is domain neutral.
14317         
14318 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14319
14320         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14321
14322 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14323
14324         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14325         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14326         Avoid caching the result since strings must be domain specific. Fixes
14327         #48050.
14328
14329 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14330
14331         * marshal.c (mono_marshal_init): Make this callable multiple times
14332         since it is hard to find a correct place to call it.
14333
14334         * object.c (mono_runtime_class_init): Execute static constructors in
14335         the correct appdomain.
14336
14337         * image.c (build_guid_table): Handle the case when multiple images have
14338         the same GUID.
14339
14340 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14341
14342         * icall.c: added a couple of icalls for System.Web.
14343
14344 2003-08-28  Martin Baulig  <martin@ximian.com>
14345
14346         * icall.c (ves_icall_Type_BindGenericParameters): Use
14347         `klass->generic_inst' instead of `&klass->byval_arg' in the
14348         mono_type_get_object() call.  The returned type must be
14349         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14350
14351 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14352
14353         * NOTES: New file.
14354
14355         * object.c (mono_class_proxy_vtable): Make it thread safe.
14356
14357         * pedump.c: Fix warning.
14358
14359         * object.c appdomain.h: Get rid of metadata_section. 
14360         It is no longer needed and it was causing deadlocks with domain->lock.
14361
14362         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14363
14364 2003-08-26  Martin Baulig  <martin@ximian.com>
14365
14366         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14367
14368 2003-08-26  Martin Baulig  <martin@ximian.com>
14369
14370         * pedump.c (main): Call mono_metadata_init(),
14371         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14372         and mono_loader_init().
14373
14374 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14375
14376         * loader.h: Add missing include to fix build.
14377
14378         * image.h: mono_image_load_references is no more.
14379
14380         * assembly.c: Reworked assembly loading to make it really thread safe.
14381         After these changes, the assembly returned by mono_assembly_open is
14382         fully initialized, i.e. all its references assemblies are loaded.
14383
14384         * assembly.c (mono_image_load_references): Renamed to 
14385         mono_assembly_load_references, and made private, since clients no
14386         longer need to call it.
14387
14388         * class.c: Removed calls to mono_assembly_load_references, since it was
14389         a source of deadlocks.
14390
14391         * loader.h loader.c class.h class.c: Protect data structures using a 
14392         new lock, the loader lock.
14393
14394         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14395         GPtrArrays only when needed.
14396
14397         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14398         into empty structures by mcs. Fixes pinvoke7.cs.
14399         
14400         * domain.c (mono_init): Call a new initialization function.
14401
14402         * appdomain.c (mono_runtime_init): Call the new initializer function
14403         of the marshal module.
14404
14405         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14406         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14407
14408         * marshal.h marshal.c: Added locks around the wrapper caches to make
14409         this module thread safe.
14410
14411         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14412         this argument. Fixes pinvoke1.exe.
14413
14414 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14415
14416         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14417         enumeration of values. Removed fields to store remote call output values in
14418         MonoAsyncResult. Not needed any more.
14419         * object.c: Initialize call_type and async_result fields in mono_message_init.
14420         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14421         dispatching the message.
14422         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14423         async call to finish. To do it use a message with EndInvoke call type.
14424
14425 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14426
14427         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14428         determines whenever a method has marshalling info.
14429
14430 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14431
14432         * assembly.c: fix the build on windows.
14433
14434 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14435
14436         * object.cs: Fixed bug #47785.
14437
14438 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14439
14440         * string-icalls.c (StringReplace): If their are no occurances of
14441         the old string found return a reference to the supplied
14442         string. This saves some memory and matches MS behavoir.
14443         
14444 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14445
14446         * socket-io.c: fixed compilation for systems that define AF_INET6
14447         and don't define SOL_IP/SOL_IPV6.
14448
14449 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14450
14451         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14452         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14453
14454         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14455
14456         * domain.c: Make this module thread safe.
14457
14458         * domain.c (mono_init): Call new initialization function.
14459
14460         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14461         reference types too. Fixes #38812.
14462
14463         * image.c (mono_image_init): Fixed warnings.
14464
14465         * class.c (mono_class_from_typeref): Handle assembly load failure
14466         correctly.
14467
14468         * appdomain.c (add_assemblies_to_domain): Handle the case when
14469         the references of an assembly are not yet loaded.
14470
14471         * metadata.c image.c assembly.c: Moved initialization of global
14472         variables to a separate function called at startup since lazy 
14473         initialization of these variables is not thread safe.
14474         
14475         * image.c assembly.c: Made this module thread safe by adding locks in 
14476         the appropriate places.
14477
14478         * domain.c (mono_init): Call the new initialization functions of the
14479         three modules.
14480
14481 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14482
14483         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14484           make a direct call. It is proxy's work to make the call asynchronous.
14485           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14486           the return values.
14487         * object.cs: mono_method_call_message_new(): read AsyncResult and
14488           state object from parameters list, if this info is requested.
14489         * object.h: Added fields to store remote call output values in
14490           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14491
14492 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14493
14494         * object.h: add needed fields to MonoThread.
14495         * threads.c, threads.h: allow registering a function to cleanup data
14496         allocated per thread by the JIT.
14497
14498 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14499
14500         * loader.h: portability fix by Bernie Solomon
14501         * <bernard@ugsolutions.com>.
14502
14503 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14504
14505         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14506         return a MonoArray. This simplifies the code and also ensures that
14507         the cache allways contains an object reference as a value.
14508
14509         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14510         function.
14511
14512 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14513
14514         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14515         fixes a problem with byte ordering when getting the address family for
14516         a socket.
14517
14518 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14519
14520         * .cvsignore: Added monosn.
14521
14522         * reflection.h reflection.c loader.c: Added support for parameter
14523         marshalling to dynamically created types. Fixes #47295.
14524
14525 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14526
14527         * rand.c: remove useless warnings.
14528
14529 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14530
14531         * class.c: implemented ldtoken for methods and fieldrefs.
14532
14533 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14534
14535         * threadpool.c: when mono_async_invoke was called, no one took care of
14536         monitoring the queue. So if the method invoked took some time and we
14537         got new async invoke requests after 500 ms (the thread created waited
14538         that long in WaitForSingleObject), the new async invoke was not called
14539         until the previous one finished.
14540
14541         This is fixed now. Thanks to Totte for helping with it.
14542
14543 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14544
14545         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14546
14547 2003-08-11  Martin Baulig  <martin@ximian.com>
14548
14549         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14550
14551 2003-08-06  Martin Baulig  <martin@ximian.com>
14552
14553         * mono-debug-debugger.c: Added support for static fields,
14554         properties and methods.
14555
14556 2003-08-06  Martin Baulig  <martin@ximian.com>
14557
14558         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14559         make this work for applications with multiple application domains.
14560
14561 2003-08-04  Martin Baulig  <martin@ximian.com>
14562
14563         * mono-debug-debugger.c: Completely reworked the type support; the
14564         most important thing is that we're now just using one single
14565         `MonoType' instance per type.
14566
14567 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14568
14569         * mono-endian.h, mono-endian.c, icall.c: Added icall
14570         ves_icall_System_Double_AssertEndianity to assert double word endianity
14571         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14572
14573 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14574
14575         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14576         support, icalls and fixes.
14577
14578 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14579
14580         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14581         classes that are a punctuation character in .NET is not the same a
14582         g_unichar_ispunct.
14583
14584 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14585
14586         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14587
14588 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14589
14590         * icall.c: Add new MemCopy internalcall.
14591         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14592         Simplified code; It is not necessary to handle all the cases here,
14593         as the C# code takes care of it.  Only handle the case of the name
14594         resource embedded into the assembly.
14595
14596         Changed signature to return the data pointer and the size of the
14597         data. 
14598
14599 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14600
14601         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14602         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14603
14604 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14605
14606         * socket-io.c: ignore EINTR error in select.
14607
14608 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14609
14610         * class.h, class.c: removed unused subclasses field in MonoClass.
14611
14612 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14613
14614         * icall.c: improve fix of get_base_definition(). If the parent class
14615           doesn't have the mehod, look at the parent of the parent.
14616         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14617           to check if a parameter is an in or out parameter
14618           (PARAM_ATTRIBUTE_IN is not set by default).
14619           mono_method_return_message_restore(): Use mono_class_value_size to
14620           get the size of a value type. mono_type_stack_size (parameterType)
14621           does not return the correct value if parameterType is byRef.
14622           mono_load_remote_field(), mono_load_remote_field_new(),
14623           mono_store_remote_field(), mono_store_remote_field_new():
14624           raise exception if the remote call returns an exception.
14625
14626 2003-07-28  Martin Baulig  <martin@ximian.com>
14627
14628         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14629         method.  This is a wrapper around mono_runtime_invoke() which
14630         boxes the instance object if neccessary.
14631
14632 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14633
14634         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14635         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14636
14637 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14638
14639         * icall.c: disable mcs bug workaround.
14640
14641 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14642
14643         * object.c (mono_runtime_class_init): Take the metadata_section
14644         mutex before obtaining the domain mutex.
14645
14646         * appdomain.h: Added definition of metadata_section mutex here. 
14647
14648         * object.c: define metadata_mutex here.
14649
14650 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14651
14652         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14653         fixed.
14654
14655 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14656
14657         * reflection.c: Fix bug #46669
14658
14659 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14660
14661         * exception.c:
14662         * exception.h:
14663         * icall.c:
14664         * object.h: fill in the type name for TypeLoadException.
14665
14666 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14667
14668         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14669         relationship between TypeBuilders while compiling corlib) and bug
14670         45993 (Array types returned from the runtime while compiling
14671         corlib were from the loaded corlib).
14672
14673 2003-07-22  Martin Baulig  <martin@ximian.com>
14674
14675         * mono-debug-debugger.c: Reworked the type support a bit more;
14676         distinguish between types and classes.
14677
14678 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14679
14680         * icall.c: add IsArrayImpl icall.
14681
14682 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14683
14684         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14685         initializing real_size only once. Also fix bug #46602.
14686
14687 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14688
14689         * object.c: Renamed mono_metadata_section to metadata_section.
14690
14691 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14692
14693         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14694           empty array if the type is an array. Fixed.
14695           ves_icall_MonoMethod_get_base_definition: if the base method
14696           is abstract, get the MethodInfo from the list of methods of
14697           the class.
14698         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14699           and it was 1-based. Fixed in mono_param_get_objects.
14700
14701 2003-07-20  Martin Baulig  <martin@ximian.com>
14702
14703         * mono-debug.h: Set version number to 31.
14704         (mono_debug_init): Added `MonoDomain *' argument.
14705
14706         * mono-debug-debugger.c: Reworked the type support; explicitly
14707         tell the debugger about builtin types; pass the `klass' address to
14708         the debugger.
14709
14710 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14711
14712         * image.c: Allow new metadata tables to be loaded without a
14713         warning. Also update the warning message to give the new constant value.
14714                 
14715 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14716
14717         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14718         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14719         array type representation changes.
14720
14721 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14722
14723         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14724         on Environment.Exit () call.
14725
14726 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14727
14728         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14729         requires a matching corlib.
14730
14731 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14732
14733         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14734           Committed again without the CRs.
14735         
14736 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14737
14738         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14739           getting it from the "this" socket instance. Did not work
14740           if the socket is a subclass of Socket.
14741           Also fixed bug #35371.
14742
14743 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14744
14745         * metadata.c: fixed size for TypedByRef.
14746         * loader.c: when searching for a method, consider the vararg amrker.
14747         * unicode.c, decimal.c: constify some arrays.
14748
14749 2003-07-15  Dick Porter  <dick@ximian.com>
14750
14751         * socket-io.c: Fixed compilation for gcc < 3.2.
14752
14753         Fixed compilation for machines that don't have AF_INET6 (thanks to
14754         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14755
14756         Fixed compile warnings.
14757         
14758         Fixed formatting and line endings.
14759
14760 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14761
14762         * socket-io.h:
14763         * socket-io.c: Added IPv6 support.
14764
14765 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14766
14767         * class.c (mono_class_is_assignable_from): New function to implement
14768         the is_assignable_from logic. Used by mono_object_isinst, 
14769         Type::IsAssignableFrom () and the interpreter.
14770
14771         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14772         Object, even interfaces.
14773         
14774         * object.c (mono_object_isinst): Implement in terms of 
14775         is_assignable_from.
14776
14777         * icall.c (ves_icall_type_is_assignable_from): New icall.
14778
14779 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14780
14781         * domain.c (foreach_domain): fix compiler warning.
14782
14783 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14784
14785         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14786         not available on all plattforms
14787
14788 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14789
14790         * image.h image.c: Store the metadata version string in MonoImage.
14791         * icall.c: New icall to retrieve the image version.
14792         * reflection.c (create_dynamic_image): Fill in the image version field
14793         * reflection.c (build_compressed_metadata): Use the image version
14794         from the image structure.
14795
14796 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14797
14798         * appdomain.c: modified comment.
14799         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14800         That will be its last iteration when mono_gc_cleanup is called from
14801         mono_runtime_cleanup and before the domain is unloaded.
14802
14803         Fixes bug #45962.
14804
14805 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14806
14807         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14808         attributes.
14809
14810 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14811
14812         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14813         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14814         Bernie Solomon <bernard@ugsolutions.com>.
14815
14816 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14817
14818         * object.c, object.h: provide mono_object_new_fast() for faster
14819         allocation in some special cases.
14820
14821 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14822
14823         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14824         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14825
14826 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14827
14828         * threadpool.c: fix leaks.
14829
14830 2003-07-01  Dick Porter  <dick@ximian.com>
14831
14832         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14833         using MonoGHashTables.  Fixes threadpool bug posted to list.
14834
14835 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14836
14837         * image.h, image.c: added support to load an assembly from a byte array.
14838         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14839         assembly bundle support.
14840
14841 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14842
14843         * threadpool.c (mono_thread_pool_add): keep a reference to the
14844         AsyncResult to prevent GC
14845
14846 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14847
14848         * class.c: leak fix.
14849
14850 2003-06-25  Dick Porter  <dick@ximian.com>
14851
14852         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14853         for the async object, the WaitHandle object will close the handle.
14854         Fixes bug 45321.
14855
14856 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14857
14858         * class.c: in mono_array_class_get (), lookup from the hash with the
14859         same type we insert: this works around a bug in
14860         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14861         lluis. The real fix will have to wait for after the release.
14862
14863 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14864
14865         * icall.c: fix memory leak when getting type members.
14866
14867 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14868
14869         * reflection.c: added more pubtoken special cases.
14870
14871 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14872
14873         * class.c: handle field offset correctly when class size
14874         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14875
14876 2003-06-20  Martin Baulig  <martin@ximian.com>
14877
14878         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14879         *image' field.
14880
14881 2003-06-20  Martin Baulig  <martin@ximian.com>
14882
14883         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14884
14885 2003-06-20  Martin Baulig  <martin@ximian.com>
14886
14887         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14888         just distinguish between variables in registers and variables at
14889         an offset relative to a register.
14890
14891 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14892
14893         * icall.c: #ifdef out latest changes until mcs is fixed.
14894
14895 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14896
14897         * icall.c: return members in metadata order.
14898
14899 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14900
14901         * icall.c: avoid infinite loop in GetTimeZoneData.
14902
14903 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14904
14905         * icall.c: added Marshal.Prelink/All icalls.
14906
14907 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14908
14909         * object.c, object.h: fix warnings and do some overflow checking
14910         when creating arrays.
14911
14912 2003-06-17  Dick Porter  <dick@ximian.com>
14913
14914         * file-io.h:
14915         * file-io.c: File attributes need to be tweaked slightly when
14916         passed from the managed to the w32 world.
14917
14918 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14919         * profiler.h profiler-private.h profiler.c: Rework last patch
14920         based on suggestion by Paolo.
14921         
14922 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14923
14924         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
14925         instruction level coverage data collection.
14926         * profiler.h profiler.c (: Added new callback function which can be
14927         used by the profiler to limit which functions should have coverage
14928         instrumentation.
14929         * profiler.c (mono_profiler_load): Call g_module_build_path to
14930         generate the file name of the profiler library.
14931
14932 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14933
14934         * profiler.c, profiler.h, profiler-private.h: added basic block 
14935         coverage profiling API.
14936
14937 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
14938
14939         * reflection.c (mono_reflection_create_runtime_class): Add support
14940         for events in dynamically generated code.
14941
14942         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
14943         not allocated.
14944
14945 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14946
14947         * icall.c: when getting timezone info, return reasonable values if we
14948         can't get the actual data.
14949
14950 2003-06-14  Dick Porter  <dick@ximian.com>
14951
14952         * threads.c (start_wrapper): Remove the reference to the thread
14953         object in the TLS data, so the thread object can be finalized.
14954         This won't be reached if the thread threw an uncaught exception,
14955         so those thread handles will stay referenced :-( (This is due to
14956         missing support for scanning thread-specific data in the Boehm GC
14957         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
14958
14959 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
14960
14961         * reflection.c: ensure streams and tables are first allocated with
14962         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
14963
14964 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14965
14966         * icall.c: fixed GetElementType for byrefs (bug# 44792).
14967
14968 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
14969
14970         * reflection.c (mono_reflection_create_runtime_class): Add support for
14971         properties to dynamically created classes.
14972         * reflection.c: Fix a few places where non-MonoObjects were inserted
14973         into the tokens hashtable.
14974
14975 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14976
14977         * object.c: some support to handle out of memory exceptions.
14978
14979 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
14980
14981         * marshal.c (mono_marshal_get_native_wrapper): support reference
14982         return types
14983
14984 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14985
14986         * object.h, object.c: more portability stuff from Bernie Solomon.
14987         Unexport mono_object_allocate(). Added mono_object_unbox ().
14988         Set exitcode when an unhandled exception is thrown.
14989
14990 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
14991
14992         * marshal.c (mono_marshal_get_native_wrapper): use custom
14993         marshaler for return types.
14994
14995 2003-06-10  Dick Porter  <dick@ximian.com>
14996
14997         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
14998         ip_mreq is available
14999
15000 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15001
15002         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15003         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15004         by Bernie Solomon <bernard@ugsolutions.com>.
15005
15006 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15007
15008         * gc.c (mono_gc_init): Avoid error message on shutdown when
15009         GC_DONT_GC=1 is used.
15010
15011         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15012         New icall to return the GUID of a module.
15013
15014 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15015
15016         * class.c: ensure instance size always includes the parent's size
15017         even whem class size is set explicitly (fixes bug#44294).
15018
15019 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15020
15021         * profiler.h, profiler.c: made the simple profiler thread-safe,
15022         get more accurate timing info. Allow the loading of an
15023         externally-developed profiler module.
15024
15025 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15026
15027         * marshal.c (mono_marshal_get_native_wrapper): improved
15028         class/byref arguments.
15029         (mono_marshal_get_native_wrapper): better string marshaling support.
15030
15031 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15032
15033         * class.c: ensure .pack and .size are handled correctly and
15034         simplified layout of static fields.
15035
15036 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15037
15038         * appdomain.c
15039         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15040
15041         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15042         current directory (fix bug 44008)
15043
15044 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15045
15046         * marshal.c (mono_marshal_get_native_wrapper): started support for
15047         custom marshalers.
15048         (mono_delegate_to_ftnptr): consider marshalling specifications
15049
15050 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15051
15052         * reflection.c, reflection.h: emit custom marshal info.
15053
15054 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15055
15056         * object.c: free the GError.
15057         * icall.c: added CloseEvent_internal.
15058         * threads.[ch]:
15059         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15060         call.
15061
15062 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15063
15064         * loader.c (mono_method_get_signature): Add support for dynamic
15065         assemblies.
15066
15067 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15068
15069         * reflection.c: fixed bug #43905.
15070
15071 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15072
15073         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15074         handling TypedReference and ArgIterator.
15075         * loader.c, loader.h: added function to get signature at call site.
15076
15077 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15078
15079         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15080         data readonly. Buglets and warning fixes. Some MethodSpec support.
15081
15082 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15083
15084         * class.h, class.c, object.c: remove relative numbering support.
15085
15086 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15087
15088         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15089         free the string, until we get a chance to fix Gtk#
15090
15091 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15092
15093         * marshal.c: revert last patch.
15094
15095 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15096
15097         * icall.c: updates for new mono_class_vtable() not calling
15098         the type constructor anymore.
15099
15100 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15101
15102         * object.h, object.c: separate vtable creation from type
15103         initialization. Make running the .cctor thread safe.
15104
15105 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15106
15107         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15108
15109 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15110
15111         * loader.c (mono_get_method): consider calling convention
15112
15113 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15114
15115         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15116         to return the invisible global type for a module.
15117
15118         * reflection.c (mono_image_build_metadata): Emit global fields too.
15119
15120 2003-05-20  Peter Williams  <peterw@ximian.com>
15121
15122         * loader.c (mono_lookup_internal_call): Add a few newlines.
15123
15124 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15125
15126         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15127         literal strings.
15128
15129         * appdomain.c (set_domain_search_path): Recalculate search path when
15130         AppDomainSetup.PrivateBinPath changes.
15131
15132         * object.c (mono_class_compute_gc_descriptor): It turns out some
15133         parts of the class libs (like System.Thread) holds pointers to
15134         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15135         to treat native int a pointer type here.
15136         
15137 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15138
15139         * appdomain.h, domain.c: add hashtable for jump target resolution.
15140
15141 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15142
15143         * reflection.h reflection.c icall.c: Added new icalls 
15144         GetManifestResourceInfoInternal, GetModulesInternal and support
15145         infrastructure.
15146
15147 2003-05-16  Dick Porter  <dick@ximian.com>
15148
15149         * icall.c:
15150         * file-io.h:
15151         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15152
15153 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15154
15155         * object.c: mono_store_remote_field: little fix to previous patch.
15156
15157 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15158
15159         * class.c: add constructors to array classes.
15160         * icall.c: special case array construction for InternalInvoke (),
15161
15162 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15163
15164         * class.h class.c reflection.c object.c: Added support for field
15165         defaults in dynamically generated classes.
15166
15167 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15168
15169         * reflection.c: properly encode charset for ddlimport.
15170
15171 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15172
15173         * threads.c: allow compiling without GC.
15174
15175 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15176
15177         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15178         handling of thread static data.
15179
15180 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15181
15182         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15183
15184 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15185
15186         * class.c (mono_array_class_get): always set the serializable flags
15187         (mono_array_class_get): always set the SEALED attribute for array types
15188
15189 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15190
15191         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15192         attributes (fix for bug 42021).
15193
15194 2003-05-12  Dick Porter  <dick@ximian.com>
15195
15196         * gc.c: Don't run finalizers when the finalizer thread is
15197         finishing up, because the default domain has already been
15198         destroyed.
15199
15200 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15201
15202         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15203         value is null, we should throw an exception.   This is slightly
15204         different than the other conventions used for the constructor.
15205
15206 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15207
15208         * socket-io.c: fixed windows build.
15209
15210 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15211
15212         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15213
15214 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15215
15216         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15217         compilers.
15218
15219 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15220
15221         * class.c (mono_class_layout_fields): Add experimental GC aware
15222         auto layout facility. Requires class library changes to work correctly.
15223
15224         (mono_class_setup_vtable): Avoid overriding explicit interface
15225         method implementations. Fixes iface3.exe test.
15226
15227         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15228         object reference.
15229         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15230         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15231
15232         * metadata.h: Add new type classification macro which determines
15233         whenever the type holds an object reference.
15234
15235 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15236
15237         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15238
15239 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15240
15241         * gc.c (finalizer_thread): Work around a GC bug.
15242
15243 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15244
15245         * marshal.c (emit_struct_conv): allow unions
15246
15247         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15248
15249 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15250
15251         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15252
15253 2003-05-06  Martin Baulig  <martin@ximian.com>
15254
15255         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15256
15257 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15258
15259         * socket-io.c:
15260         (Select_internal): allow NULLs, don't create arrays if not needed.
15261         Coupled with Socket.cs changes.
15262
15263         * threadpool.c:
15264         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15265         register a finalizer for it that will close the semaphore handle. This
15266         fixes the leak and make Lupus' test run with > 4080 loops.
15267
15268 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15269
15270         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15271         Jerome Laban (bug #42287)
15272
15273 2003-05-02  Martin Baulig  <martin@ximian.com>
15274
15275         * debug-mono-symfile.h
15276         (MonoSymbolFile): Moved declaration into mono-debug.h.
15277         (MonoDebugMethodJitInfo): Likewise.
15278         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15279         argument.
15280         (_mono_debug_address_from_il_offset): Take a
15281         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15282
15283         * mono-debug.h
15284         (MonoDebugDomainData): New struct.
15285         (mono_debug_get_domain_data): New function.
15286         (mono_debug_add_method): Take an additional `MonoDomain *'
15287         argument.
15288         (mono_debug_source_location_from_address): Likewise.
15289         (mono_debug_il_offset_from_address): Likewise.
15290         (mono_debug_address_from_il_offset): Likewise.
15291
15292 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15293
15294         * reflection.c: one more check for null type in custom attrs.
15295
15296 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15297
15298         * reflection.c: avoid warning (comparison is always false due to limited
15299         range of data type).
15300
15301 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15302
15303         * icall.c: throw an exception in Type.GetField if the argument 'name'
15304         is NULL.
15305
15306 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15307
15308         * reflection.c: fixed handling of enums in named arguments to custom
15309         attributes (bug #42123).
15310
15311 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15312
15313         * reflection.c: use the right array element type and handle
15314         a null for a Type argument, too.
15315
15316 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15317
15318         * reflection.c: handle arrays as arguments to custom attributes.
15319
15320 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15321
15322         * reflection.c: handle a string value in a custom attr
15323         ctor that takes an object.
15324
15325 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15326
15327         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15328         (fix bug #42063)
15329
15330 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15331
15332         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15333
15334 2003-04-27  Martin Baulig  <martin@ximian.com>
15335
15336         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15337         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15338         MONO_DEBUGGER_EVENT_BREAKPOINT.
15339         (mono_breakpoint_trampoline_code): Removed.
15340         (mono_debugger_event_handler): The last argument is now a
15341         `guint32'.
15342         (mono_debugger_insert_breakpoint_full): Removed the
15343         `use_trampoline' argument.
15344         (mono_debugger_method_has_breakpoint): Likewise.
15345         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15346         mono_debugger_breakpoint_callback(); take the method and
15347         breakpoint number as arguments.
15348
15349 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15350
15351         * metadata.c: fix off by one when loading parameters attributes.
15352
15353 2003-04-24  Martin Baulig  <martin@ximian.com>
15354
15355         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15356
15357 2003-04-24  Martin Baulig  <martin@ximian.com>
15358
15359         * mono-debug-debugger.c: Moved all code which interacts with the
15360         Mono Debugger here.
15361
15362         * debug-mono-symfile.c: This code now just deals with the symbol
15363         file itself, the debugger code is now in mono-debug-debugger.c.
15364
15365 2003-04-23  Martin Baulig  <martin@ximian.com>
15366
15367         * mono-debug.c (mono_debug_source_location_from_il_offset):
15368         New method; like mono_debug_source_location_from_address(), but
15369         takes an IL offset instead of a machine address.
15370
15371 2003-04-23  Martin Baulig  <martin@ximian.com>
15372
15373         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15374         `line' field; this is now computed by the debugger.
15375
15376 2003-04-23  Martin Baulig  <martin@ximian.com>
15377
15378         * mono-debug.[ch]: New files.  This is the new debugging interface.
15379
15380         * mono-debug-debugger.[ch]: New files.  Moved all code which
15381         interacts with the Mono Debugger here.
15382
15383 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15384
15385         * domain.c (mono_init): initialize mono_defaults.monitor_class
15386
15387 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15388
15389         * reflection.c (method_encode_code): Add a spicy exception to help
15390         future compiler authors.
15391
15392 2003-04-21  Martin Baulig  <martin@ximian.com>
15393
15394         * icall.c
15395         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15396         Make this work with relative pathnames; g_filename_to_uri() needs
15397         an absolute filename.
15398
15399 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15400
15401         * icall.c: Track name changes in Object and ValueType.
15402
15403 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15404
15405         * metadata.c (mono_type_stack_size): size should be a multiple of
15406         sizeof (gpointer)
15407
15408 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15409
15410         * gc.c:
15411         (internal_domain_finalize): moved into mono_domain_finalize. No need
15412         to create another thread because the finalizers will be run in the
15413         finalizer thread.
15414         
15415         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15416         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15417         to be run (MS does this too).
15418
15419 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15420
15421         * object.c (mono_class_compute_gc_descriptor): Update comment.
15422
15423         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15424
15425         * image.h: Add synchronized wrapper cache.
15426
15427         * image.c (do_mono_image_open): Initialize cache.
15428
15429         * reflection.c (create_dynamic_mono_image): Initialize cache.
15430
15431 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15432
15433         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15434         ves_icall_System_Buffer_ByteLengthInternal.
15435
15436 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15437
15438         * reflection.c: setup klass->nested_in earlier. Allow
15439         a dash in the assembly name.
15440
15441 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15442
15443         * metadata.c (mono_type_to_unmanaged): dont access
15444         type->data.klass for MONO_TYPE_OBJECT
15445         (mono_type_to_unmanaged): consider System.Delegate class
15446
15447 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15448
15449         * class.c: just setup supertypes in the proper place instead of
15450         initializing the full element class for arrays.
15451
15452 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15453
15454         * class.c: ensure the element class of arrays is initialized.
15455         Setup the supertype info for array classes, too.
15456
15457 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15458
15459         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15460
15461 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15462
15463         * Makefile.am: re-added -m option when running cygpath. This way,
15464         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15465         separator.
15466         * mono-config.c: same codepath for locating mono config file for WIN32
15467         and the rest.
15468         * assembly.c: if mono_assembly_setrootdir is called, don't override
15469         the value set.
15470
15471 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15472
15473         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15474         MONO_ASSEMBLIES variable.
15475
15476 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15477
15478         * icall.c: added Assembly::GetNamespaces() icall.
15479
15480 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15481
15482         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15483
15484 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15485
15486         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15487         * object.c: fixed bug in the construction of vtable for proxies
15488
15489 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15490
15491         * object.c (mono_array_new): Mark mono_array_new as an icall.
15492
15493 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15494
15495         * class.c: fixed test for public method when overriding interfaces.
15496         Closes bug #40970.
15497
15498 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15499
15500         * appdomain.h, domain.c: added mono_domain_foreach() to
15501         be able to access the currently loaded appdomains.
15502         * object.c: make string interning work across sppdomains.
15503         Mark some functions for use as icalls.
15504
15505 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15506
15507         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15508
15509         * reflection.h reflection.c: Allocate long living data using 
15510         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15511
15512         * reflection.c: Double the allocation size in streams instead of
15513         increasing it, to prevent unneccesary copying on large assemblies.
15514         
15515         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15516         creation if the assembly does not have the Run flag set.
15517
15518 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15519
15520         * class.h: avoid the C++ keywords in header files (Jerome Laban
15521         spotted and fixed this).
15522
15523 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15524
15525         * object.c:
15526         (mono_unhandled_exception): fill in the arguments for the
15527         UnhandledException event. Only trigger that event for the default
15528         domain (as MS does).
15529
15530 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15531
15532         * object.c: Improve typed allocation stuff based on suggestions from
15533         Paolo. Also turn it on if the GC library supports it.
15534
15535 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15536
15537         * object.c object.h class.h: Added experimental typed allocation
15538         facility using the interfaces in gc_gcj.h.
15539
15540         * os/gc_wrapper.h: Added new include files.
15541         
15542 2003-04-03  Martin Baulig  <martin@ximian.com>
15543
15544         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15545         which is not yet enabled by default.
15546
15547         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15548         functions.
15549         (mono_gc_lock, mono_gc_unlock): New static functions.
15550
15551         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15552         functions; stop/start the world for the garbage collector.  This
15553         is using the windows API; we need to complete the SuspendThread()/
15554         ResumeThread() implementation in the io-layer to make this work on Unix.
15555         (mono_gc_push_all_stacks): New public function; tells the garbage
15556         collector about the stack pointers from all managed threads.
15557
15558 2003-04-03  Martin Baulig  <martin@ximian.com>
15559
15560         * object.h (MonoThread): Added `gpointer stack_ptr'.
15561
15562         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15563
15564 2003-04-03  Martin Baulig  <martin@ximian.com>
15565
15566         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15567
15568 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15569
15570         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15571         field.last.
15572
15573 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15574
15575         * loader.c (mono_lookup_internal_call): Report the corlib that is
15576         out of sync.
15577
15578 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15579
15580         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15581         System.DBNull (it's class not valuetype).
15582
15583 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15584
15585         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15586         if the array method was already assigned a token (fixes bug#40646).
15587
15588 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15589
15590         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15591         if no assembly is given.
15592
15593 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15594
15595         * metadata.h: Added the new tables.
15596
15597         * row-indexes.h: Added definitions for new tables.
15598
15599         * metadata.c: Add schemas for new tables, and add support for
15600         computing the sizes of them.
15601
15602         * class.c: Update for handling the new type cases.
15603
15604 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15605
15606         * metadata.h (MONO_TYPE_IS_VOID): new macro
15607
15608 2003-03-31  Martin Baulig  <martin@ximian.com>
15609
15610         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15611
15612         * threads.c (mono_thread_new_init): Call `thread_created' in the
15613         mono_thread_callbacks.
15614
15615 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15616
15617         * loader.h: added marshalbyrefobject_class to mono_defaults
15618         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15619         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15620           generation of output parameters.
15621           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15622         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15623           contextbound and the target object belongs to the context of the caller.
15624         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15625         * object.c: Implemented support for interfaces and abstract classes
15626           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15627           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15628
15629 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15630
15631         * class.h class.c (mono_class_is_subclass_of): New function.
15632         
15633         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15634         routines for most common case (calls from ArrayList::ToArray).
15635
15636         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15637         routine so programs which call Environment::Exit() can be profiled.
15638
15639         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15640         Added MONO_ARCH_SAVE_REGS.
15641
15642         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15643
15644 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15645
15646         * blob.h: Add a couple of new MonoType types definitions.
15647
15648         * tabledefs.h: Add a couple of new call convs.
15649
15650 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15651
15652         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15653         the layout of the class.
15654
15655         * reflection.c (alloc_table): double the size on overflow to avoid
15656         unnecessary copying.
15657
15658         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15659         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15660         null so it can be garbage collected.
15661         
15662 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15663
15664         * reflection.c (mono_reflection_get_type): Return the resolved type
15665         only if it is in the assembly we searched.
15666
15667         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15668
15669         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15670         method.
15671
15672 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15673
15674         * appdomain.c:
15675         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15676         the right one is 'file:///blah', but MS allows it.
15677         * assembly.c:
15678         (mono_assembly_open): allow 'file://blah'
15679
15680         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15681
15682 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15683
15684         * socket-io.c: fixes bug #40310.
15685
15686 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15687
15688         * reflection.c (mono_reflection_parse_type): handle deeply nested
15689         types correctly.
15690
15691         * reflection.c (mono_image_create_token): Use unique token values
15692         since they will be put into a hash table.
15693
15694         * class.c (mono_class_setup_vtable): If a method occurs in more than
15695         one place in the vtable, and it gets overriden, then change the
15696         other occurances too.
15697
15698         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15699         object as return type.
15700
15701 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15702
15703         * icall.c: Deleted "ToString" implementation for double and float
15704         because they are full implemented in managed code.
15705
15706 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15707
15708         * reflection.c, reflection.h: implemented and exported functions
15709         to retrieve info about custom attributes.
15710
15711 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15712
15713         * appdomain.c: moved Uri handling to assembly.c
15714         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15715         work when using a file Uri in *nix and windows.
15716
15717         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15718         GetReferencedAssemblies.
15719
15720 2003-03-18  Dick Porter  <dick@ximian.com>
15721
15722         * icall.c: Rename a couple of internal calls
15723
15724         * threads.c: Set the thread state to Stopped when a thread exits.
15725         Fixes bug 39377.
15726
15727 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15728
15729         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15730         New icall.
15731
15732         * object.c (mono_class_vtable): fix warning.
15733
15734 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15735
15736         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15737
15738         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15739         memory.
15740         (method_encode_clauses): Create exception info structures in the right
15741         order.
15742         (mono_reflection_setup_internal_class): Initialize supertypes field.
15743
15744         * class.c object.c: Handle interfaces which implement other interfaces 
15745         correctly.
15746
15747         * class.h class.c: Move the supertypes array initialization code into 
15748         a separate function so it can be used for dynamic types too. Also call
15749         it earlier, in mono_class_init(), since it can be used before the
15750         type is initialized.
15751
15752 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15753
15754         * Makefile.am:
15755         * assembly.c:
15756         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15757
15758         * appdomain.c:
15759         * appdomain.h:
15760         * marshal.c:
15761         * object.c: remove warnings.
15762
15763 2003-03-13  Martin Baulig  <martin@ximian.com>
15764
15765         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15766         (MonoDebugLexicalBlockEntry): New types.
15767
15768         * debug-mono-symfile.c
15769         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15770
15771 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15772
15773         * process.c: ret can be any non-zero value accroding to MS doc.
15774
15775 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15776
15777         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15778         fixing a warning for a miss-used prototype, would have cause
15779         random memory corruption.
15780
15781 2003-03-07  Martin Baulig  <martin@ximian.com>
15782
15783         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15784         getting really annoying ....
15785
15786 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15787
15788         * reflection.c (fixup_method): added support for array methods.
15789
15790 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15791
15792         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15793         (pointed out by Michael Adams).
15794
15795 2003-03-04  Dick Porter  <dick@ximian.com>
15796
15797         * icall.c: Temporarily reverted the Double and Single ToString()
15798         change, because it broke nunit.
15799
15800 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15801
15802         * object.h, threads.h: make include files compatible with C++
15803         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15804
15805 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15806
15807         * icall.c: Erased ToString helper functions for Double and Single.
15808         Now, that implementations ar all in managed code (Double and Single
15809         Formatters).
15810
15811 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15812
15813         * appdomain.c: Added method for initializing the default context of
15814         a domain. Added internal call for getting the default context.
15815         * appdomain.h: Added context variable in MonoDomain struct.
15816         * domain.c: mono_domain_set also sets the default context of the domain
15817         * icall.c: Mapped internal method InternalGetDefaultContext.
15818         * object.c: mono_object_get_virtual_method returns always a remoting
15819         wrapper if the object is a transparent proxy.
15820         mono_runtime_invoke_array: when creating an object by calling the
15821         constructor, if the created object is a proxy, then the constructor should
15822         be called using the a remoting wrapper.
15823
15824 2003-03-03  Dick Porter  <dick@ximian.com>
15825
15826         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15827         variable so it compiles on solaris.  Problem spotted by
15828         Christopher Taylor <ct@cs.clemson.edu>
15829
15830 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15831
15832         * appdomain.c:
15833         (get_info_from_assembly_name): don't leak value.
15834
15835         * icall.c:
15836         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15837         result.
15838
15839 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15840
15841         * assembly.c: export mono_image_load_references ().
15842         * class.c: handle function pointers. mono_class_from_name() now
15843         supports nested type names directly.
15844
15845 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15846
15847         * reflection.h reflection.c: Encode already created dynamic methods 
15848         and fields correctly as a DEF instead of a REF.
15849
15850         * reflection.c: Get rid of the force_ref argument to 
15851         mono_image_typedef_or_ref since it was wrong in the first place.
15852
15853         * string-icalls.c: add error checking to string constructors according
15854         to the MSDN docs.
15855
15856         * reflection.c: Emit types in the order their TypeBuilders were 
15857         created. Previously, a new table index was assigned to each type before
15858         the tables were emitted. This was wrong because the signature blob
15859         might already refer to a type by its original table index.
15860
15861 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15862
15863         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15864         change.
15865         
15866 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15867
15868         * Makefile.am: make assemblies dir have \ instead of / on windows.
15869
15870 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15871
15872         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15873         iterate over the NESTEDCLASS table using a linear search since the
15874         table is not guaranteed to be sorted by the secondary key.
15875
15876         * class.c (mono_class_create_from_typedef): fixed up call to
15877         mono_metadata_nesting_typedef.
15878         
15879 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15880
15881         * marshal.c (mono_string_to_byvalstr): clear the memory as
15882         suggested by Jerome Laban <jlaban@wanadoo.fr>
15883
15884 2003-02-26  Dick Porter  <dick@ximian.com>
15885
15886         * process.c: Cope with padding in .rsrc blocks
15887
15888 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15889
15890         * metadata.h: reverted the filter_len change, it breaks reflection
15891         
15892 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15893
15894         * metadata.h: added a new field to store the filter_len
15895         
15896
15897 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15898
15899         * reflection.c: handle custom attributes for types and members
15900         created with Reflection.Emit (bug#38422).
15901
15902 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15903
15904         * reflection.c: define RTSpecialName automatically for constructors for
15905         compatibility with MS.NET.
15906
15907         * reflection.c (mono_reflection_create_runtime_class): initialize
15908         nested_in field of dynamically created classes.
15909
15910 2003-02-22  Martin Baulig  <martin@ximian.com>
15911
15912         * debug-mono-symfile.h: Incremented version number.
15913
15914 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15915
15916         * object.h icall.c process.c: fix warnings.
15917
15918 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15919
15920         * appdomain.h appdomain.c:
15921         (mono_domain_try_type_resolve): split the 
15922         name_or_tb argument into a name and a tb argument.
15923         (mono_domain_has_type_resolve): new function to check whenever the
15924         application has registered a TypeResolve event handler.
15925         
15926         * icall.c reflection.h reflection.c: move the type resolve logic into
15927         mono_reflection_get_type () so it will be invoked when 
15928         Assembly::GetType () is called.
15929
15930         * reflection.c:
15931         (mono_reflection_get_type): renamed to get_type_internal.
15932         (mono_reflection_get_type): fixed type name generation so it works 
15933         for nested types too.
15934         (mono_reflection_get_type): call has_type_resolve () to avoid the 
15935         costly type name generation if there is no resolve event handler.
15936
15937 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15938
15939         * class.c, image.c: load exported types from file references.
15940
15941 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
15942
15943         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
15944           used to cache the managed methods used to create proxies and make 
15945           remote invocation of methods.
15946         * class.h: Added in MonoVTable a flag to indicate that a class needs 
15947           to be remotely created.
15948         * object.c: Modified the method mono_class_vtable(). It now initializes 
15949           the remote flag of the vtable. Modified mono_object_new_specific(), 
15950           so now it checks the remote flag.
15951         * icall.c: Added a couple of internal methods, one for enabling instance 
15952           creation interception for a type, and one for creating objects bypassing
15953           the remote check.
15954
15955 2003-02-18  Martin Baulig  <martin@ximian.com>
15956
15957         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
15958         New interncall to get a method's metadata token.
15959
15960         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
15961         New interncall for the debugger.
15962
15963 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
15964
15965         * class.c (mono_class_setup_vtable): allocate supertype array
15966
15967 2003-02-18  Martin Baulig  <martin@ximian.com>
15968
15969         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
15970
15971 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15972
15973         * reflection.c:
15974         (assembly_name_to_aname): jump over unknown properties (i've found
15975         something like: 'type, assembly, version=xxx, custom=null, public...',
15976         so now will ignore custom=null and still get the rest of the values).
15977
15978 2003-02-17  Dick Porter  <dick@ximian.com>
15979
15980         * threads.c: Have Thread.Start() wait for a semaphore to signal
15981         that the thread has set up all its local data.  This fixes bug
15982         34323, where Abort() raced the new thread's TLS data.
15983
15984         Also removes the handle_store() call from start_wrapper, because
15985         threads are now always created suspended and there is no longer a
15986         race between the parent and child threads to store the info.
15987
15988 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
15989
15990         * image.c: explain the #- heap issue in a message, hopefully
15991         avoiding FAQs on mono-list.
15992
15993 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15994
15995         * icall.c:
15996         (GetEntryAssembly): if the domain has not invoked
15997         AppDomain.ExecuteAssembly yet, return the assembly of the default
15998         AppDomain.
15999
16000 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16001
16002         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16003
16004 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16005
16006         * metadata.c, reflection.c: simple speedup to type hash
16007         and equals code.
16008
16009 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16010
16011         * image.c, image.h, class.c, assembly.c: move module loading
16012         to MonoImage. When loading metadata, consider alignemnet from
16013         the start of metadata, not from the metadata address in memory.
16014
16015 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16016
16017         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16018         AssemblyBuilder objects. Factored out custom attribute creation into
16019         a separate function.
16020         (create_custom_attr): new function to create custom attributes.
16021
16022 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16023
16024         * Makefile.am: Got tired of typing the full pathname to pedump.
16025         Until there is another option, am installing this.
16026
16027 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16028
16029         * class.c (class_compute_field_layout): always set field->parent 
16030         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16031
16032 2003-02-11  Dick Porter  <dick@ximian.com>
16033
16034         * threads-types.h:
16035         * monitor.c: Rewrote Monitor, making lock much faster and
16036         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16037         creates them as needed.
16038
16039         * exception.c: Added SynchronizationLockException
16040
16041         * threads.c: Deleted old Monitor implementation.  The new one is
16042         in a new file.
16043
16044 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16045
16046         * class.c: handled TypedReference type code. Set the correct size for
16047         class data. Setup interface_offsets for interface classes, too.
16048
16049 2003-02-09  Martin Baulig  <martin@ximian.com>
16050
16051         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16052
16053 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16054
16055         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16056         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16057         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16058         * verify.c: check for code that runs after the end of the method.
16059
16060 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16061
16062         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16063         "System.Math::Round2".
16064         * sysmath.h: Added Floor, Round and Round2 definitions.
16065         * sysmath.c: Modified certain functions that were not 100% compliant
16066         with MS.NET (math precision) and added the implementation of Floor,
16067         Round and Round2.
16068
16069 2003-02-07  Martin Baulig  <martin@ximian.com>
16070
16071         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16072
16073 2003-02-07  Martin Baulig  <martin@ximian.com>
16074
16075         * debug-mono-symfile.c: Reflected latest symwriter changes.
16076         (mono_debug_create_mono_symbol_file): Removed.
16077         (mono_debug_open_mono_symbol_file): Take an argument which
16078         specifies whether to create a dynamic symbol file.
16079
16080 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16081
16082         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16083
16084 2003-02-05  Martin Baulig  <martin@ximian.com>
16085
16086         * reflection.c (mono_image_build_metadata): Make this public,
16087         protect it against being called multiple times, don't create
16088         resources and don't build the compressed metadata here.
16089         (mono_image_create_pefile): Do this here.
16090
16091         * icall.c
16092         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16093
16094 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16095
16096         * socket-io.c: fixed bug #36322.
16097
16098 2003-02-06  Piers Haken <piersh@friskit.com>
16099
16100         * appdomain.[ch]:
16101         * class.h:
16102         * debug-mono-symfile.c:
16103         * icall.c:
16104         * loader.c:
16105         * mono-config.c:
16106         * monosn.c:
16107         * reflection.c:
16108         * socket-io.c: warning cleanups
16109
16110 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16111
16112         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16113         function. works like remoting invoke, but does a check for the Proxy first.
16114
16115 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16116
16117         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16118
16119 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16120
16121         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16122         array of pointers.
16123         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16124         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16125
16126         * object.c (mono_store_remote_field_new): used by the new jit
16127         instead of mono_store_remote_field
16128         (mono_load_remote_field_new): used by the new jit
16129         instead of mono_load_remote_field
16130
16131 2003-02-05  Patrik Torstensson
16132
16133         * appdomain.c: changed unload to take the domain id instead
16134         of domain
16135         
16136         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16137
16138
16139 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16140
16141         * appdomain.c: don't look for assemblies in ApplicationBase if
16142         PrivateBinPathProbe is set.
16143
16144 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16145
16146         * object.c: make the first argument in main_args contain the absolute
16147         path to the assembly. Fixes bug #37511.
16148
16149 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16150
16151         * icall.c: get correct UTC offset for countries not using daylight
16152         time saving. Fixes bug #30030.
16153
16154 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16155
16156         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16157         and 1 are the family).
16158
16159 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16160
16161         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16162
16163         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16164
16165 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16166
16167         * reflection.c: added support for SignatureHelper tokens, which is
16168         needed by the Calli opcode.
16169
16170         * reflection.h: track changes to SignatureHelper class.
16171
16172         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16173
16174 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16175
16176         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16177
16178 2003-02-03  Patrik Torstensson
16179         * appdomain.[c|h], domain.c : 
16180          - Added support for getting a domain via domain id
16181          - Support for setting and getting domain from System.AppDomain 
16182            (used in cross appdomain channel)
16183          - Added support for get/set for a MonoAppContext on a thread 
16184            (Context class in System.Runtime.Remoting.Contexts),
16185          - Removed hack in Get/SetData and ExecuteAssembly.
16186         
16187         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16188         the managed world to get control when a proxy is created.
16189
16190         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16191         
16192 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16193
16194         * icall.c
16195         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16196         Populate the codebase field as well.
16197
16198 2003-02-02  Martin Baulig  <martin@ximian.com>
16199
16200         * debug-mono-symfile.c
16201         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16202         (mono_debug_symfile_add_method): Allow interncalls.
16203
16204 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16205
16206         * icall.c: throw parse exception if strtod fails or the string is empty.
16207
16208 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16209
16210         * marshal.c: handle object type separately from defined
16211         class types.
16212
16213 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16214
16215         * marshal.c: handle NATIVE_LPSTR for strings when it's
16216         explicitly specified.
16217
16218 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16219
16220         * reflection.c, reflection.h, icall.c: setup the reflection
16221         handle cache for ModuleBuilders and AssemblyBuilders.
16222
16223 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16224
16225         * reflection.c (reflection_methodbuilder_to_mono_method): set
16226         pinvoke flag
16227
16228 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16229
16230         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16231
16232 2003-01-29  Dick Porter  <dick@ximian.com>
16233
16234         * threads.c: No need for the fake_thread kludge now that Thread
16235         doesn't run a class constructor
16236         
16237 2003-01-29  Dick Porter  <dick@ximian.com>
16238
16239         * threads.c: Use g_direct_hash instead of the rather bogus
16240         g_int_hash
16241
16242 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16243
16244         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16245         (fix pinvoke12.exe)
16246         (mono_marshal_get_struct_to_ptr): generate valid IL code
16247         (mono_marshal_get_ptr_to_struct): generate valid IL code
16248         (*): correctly set sig->pinvoke, we need to memdup the signature
16249         to do that
16250
16251 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16252
16253         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16254         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16255
16256 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16257
16258         * profiler.c: provide more callers information.
16259
16260 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16261
16262         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16263
16264         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16265
16266         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16267
16268 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16269
16270         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16271         exception instead of going into an infinite loop on dates which it 
16272         can't yet handle.
16273
16274         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16275         out-of-range exception if needed.
16276
16277         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16278         an implementation for an interface method and to override an inherited
16279         method at the same time. 
16280         Imagine a scenario when a virtual method is used to override a
16281         virtual abstract method in a parent class, and this same method 
16282         provides an implementation for an method inherited from an interface. 
16283         In this case, the interface resolution code will set im->slot, which 
16284         means that the virtual method override pass will skip this method 
16285         which means a pointer to the abstract method inherited from the parent
16286         will remain in the vtable of this non-abstract class.
16287
16288         * class.c: (mono_class_setup_vtable): continue search for a real 
16289         method if only an abstract method is found.     
16290
16291 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16292
16293         * reflection.c: add size to encoding for ByValStr and ByValArray
16294         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16295
16296 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16297
16298         * class.c (mono_class_setup_vtable): pass the override info as an
16299         argument.
16300
16301         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16302         correctly.
16303         
16304         * reflection.c (ensure_runtime_vtable); add support for method 
16305         overrides.
16306         
16307 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16308
16309         * reflection.c (resolution_scope_from_image): Hack to work to work with
16310         dynamic assemblies.
16311
16312         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16313         added a 'force_ref' argument to force this function to allways return 
16314         a TypeRef. This is needed by mono_image_get_memberref_token ().
16315         
16316 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16317
16318         * reflection.c (mono_image_get_type_info): interfaces really don't have
16319         a parent.
16320
16321         * reflection.c (mono_image_basic_init): fill out missing fields of
16322         image structure.
16323
16324         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16325         dynamic assemblies. This is required so dynamic assemblies show up in
16326         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16327         Type::GetType() etc. This is consistent with MS behaviour.
16328
16329         * image.c image.h reflection.c: add newly created classes to the name 
16330         cache so mono_class_get () will find them.      
16331
16332 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16333
16334         First part of changes to get IKVM.NET running under mono.
16335         
16336         * appdomain.h, appdomain.c: added new function 
16337         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16338         This function will call AppDomain::DoTypeResolve to do the actual work.
16339
16340         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16341         moved existing code dealing with dynamic tokens to a new function 
16342         called mono_reflection_lookup_dynamic_token (). This function will 
16343         raise TypeResolve events when appropriate. Since reflection.c is not 
16344         part of libmetadata, a new hook function called 
16345         mono_lookup_dynamic_token() is added to class.c which will call this.
16346
16347         * assembly.h assembly.c: make the invoke_load_hook function public,
16348         so it can be called for dynamic assemblies.
16349
16350         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16351
16352         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16353         type isn't found.
16354
16355         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16356         MonoGHashTable, since it contains pointers to objects which the GC 
16357         needs to track.
16358
16359         * assembly.c (search_loaded): remove unused variable.
16360         
16361 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16362
16363         * object.c: fixed issue exposed by gcc-generated IL programs
16364         that use RVA data for pointers.
16365
16366 2003-01-25  Martin Baulig  <martin@ximian.com>
16367
16368         * threads.c (start_wrapper): Moved the initialization of
16369         `start_func' above the mono_new_thread_init() call to which we
16370         pass it as argument.
16371
16372 2003-01-24  Martin Baulig  <martin@ximian.com>
16373
16374         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16375         the MonoThread pointer.
16376
16377 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16378
16379         * icall.c: Rename `PowImpl' to Pow.
16380
16381 2003-01-23  Dick Porter  <dick@ximian.com>
16382
16383         * threads.c (start_wrapper): Create a Thread object if needed, so
16384         the Main() thread can do the class initialisation in a subthread
16385         that has been set up to allow managed code execution.
16386
16387         Pass the thread ID instead of the MonoThread pointer to the thread
16388         start and attach callbacks.  This change is required, because the
16389         jit thread start callback must be called _before_ the Thread
16390         object can be created.
16391         
16392         (mono_thread_init): Removed much object creation code that is no
16393         longer needed.  No managed code is called from here now.
16394
16395         * object.c (mono_runtime_exec_managed_code): Create a subthread
16396         for Main, and call back to the runtime to use it.
16397         Set the exit code when Main exits.
16398
16399         * gc.c: Make sure domain finalisation happens in a subthread.
16400         Re-enable threaded GC, fixing bug 31333 (again).
16401
16402         * environment.c: System.Environment internall calls (so far just
16403         ExitCode is here, the others are still in icall.c)
16404
16405         * appdomain.c (mono_runtime_cleanup): All threads running managed
16406         code should have finished before mono_runtime_cleanup() is
16407         reached, so no need to clean up threads.
16408
16409 2003-01-22  Martin Baulig  <martin@ximian.com>
16410
16411         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16412         `gpointer func' arguments.      
16413         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16414         but added `MonoThread *thread' argument.
16415         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16416
16417         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16418         and pass it to the mono_thread_start_cb callback.
16419         (mono_install_thread_callbacks): New public function to install a
16420         set of callbacks which are set by the debugger.
16421         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16422
16423 2003-01-22  Martin Baulig  <martin@ximian.com>
16424
16425         * Makefile.am: Install debug-mono-symfile.h.
16426
16427 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16428
16429         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16430
16431 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16432
16433         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16434         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16435         (mono_array_class_get): correctly set access levels of arrays
16436
16437 2003-01-20      Patrik Torstensson
16438         * image.h (MonoAssemblyName): changed major, minor, build, revision
16439         from signed to unsigned.
16440
16441 2003-01-20  sean kasun <skasun@azstarnet.com>
16442
16443         * reflection.c (load_cattr_value): Now this handles
16444         MONO_TYPE_SZARRAY.  Fixes bug #35629
16445
16446 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16447
16448         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16449         integer value
16450
16451 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16452
16453         * decimal.c: fixed bug #26056.
16454
16455 2003-01-17  Martin Baulig  <martin@ximian.com>
16456
16457         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16458
16459 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16460
16461         * exception.[ch]:
16462         (mono_get_exception_type_initialization): new function.
16463
16464         * object.c: throw a TypeInitializationException when an exception is
16465         thrown invoking the class constructor.
16466
16467 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16468
16469         * reflection.c: fixed attribute reading.
16470
16471 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16472
16473         * icall.c:
16474         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16475         provided, look for the type in the calling assembly and then in
16476         mscorlib; if the assembly name is provided, only try that one.
16477
16478 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16479
16480         * object.c: register the vtable before there is a chance it's
16481         queried again recursively.
16482
16483 2003-01-13  Duncan Mak  <duncan@ximian.com>
16484
16485         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16486         gc-internal.h. 
16487         
16488 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16489
16490         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16491
16492 2003-01-11  Martin Baulig  <martin@ximian.com>
16493
16494         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16495         this to 20 for the release.
16496
16497 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16498
16499         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16500
16501         * loader.c (mono_method_get_marshal_info): bug fix
16502
16503         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16504         structures with explicit layout
16505
16506 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16507
16508         * profiler.c: made the output more readable (and sorted). 
16509         Added caller information for the allocation profiler.
16510
16511 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16512
16513         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16514
16515 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16516
16517         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16518         to get value types.
16519         
16520 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16521
16522         * object.c, profiler.h, profiler.c, profiler-private.h:
16523         Added object allocation profiler.
16524
16525 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16526
16527         * reflection.h, reflection.c: handle global methods.
16528         Compress blob entries.
16529
16530 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16531
16532         * marshal.c: fix compilation.
16533
16534 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16535
16536         * loader.c (mono_method_get_marshal_info): impl.
16537
16538         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16539
16540 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16541
16542         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16543         for reference types.
16544
16545 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16546
16547         * loader.c: fixed off by one error in loaded parameter names.
16548
16549 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16550
16551         * marshal.c (mono_marshal_get_icall_wrapper): like
16552         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16553         instead of a MonoMethod.
16554
16555 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16556
16557         * decimal.c: fixed bug #36537.
16558
16559 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16560
16561         * marshal.c: throw a missing method exception if a
16562         P/Invoke method is not found.
16563
16564 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16565
16566         * icall.c: allow a null this for constructors.
16567
16568 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16569
16570         * icall.c: raise the proper exceptions if the arguments to the
16571         internal Invoke are incorrect.
16572
16573 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16574
16575         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16576
16577 2003-01-03  Martin Baulig  <martin@ximian.com>
16578
16579         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16580
16581 2002-12-31  Martin Baulig  <martin@ximian.com>
16582
16583         * debug-mono-symfile.c: Completely rewrote the type section.
16584         Instead of using individual malloc()ed fields, we use one big
16585         continuous memory area and offsets into this area.
16586         See the comments in the source code for details.
16587
16588 2002-12-30  Martin Baulig  <martin@ximian.com>
16589
16590         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16591
16592 2002-12-30  Martin Baulig  <martin@ximian.com>
16593
16594         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16595         line number table in this data blob instead of using an external
16596         pointer.
16597
16598 2002-12-28  Martin Baulig  <martin@ximian.com>
16599
16600         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16601
16602 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16603
16604         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16605         as a boxed return type.
16606
16607 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16608
16609         * appdomain.c
16610         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16611         g_build_filename to properly get separators on the filename created.
16612
16613         * object.h: Small change, introduce MonoMarshalByRefObject to
16614         track the layout of that structure in the C# universe as we make
16615         changes there.
16616
16617 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16618
16619         * object.c: removed assert to allow static fields on interfaces.
16620         * loader.c: a TypeSpec may be used for any type, not just arrays.
16621
16622 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16623
16624         * class.c, class.h: added mono_class_array_element_size ().
16625         Ignore static methods in interfaces.
16626
16627 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16628
16629         * threads.c: fixed the build under cygwin.
16630
16631 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16632
16633         * reflection.c: handle nullref constants. Allocate keys for
16634         reflection handles with the GC.
16635
16636 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16637
16638         * threads.c, threads.h: added mono_thread_get_abort_signal()
16639         to get a suitable signal for thread abort.
16640
16641 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16642
16643         * metadata.c: fix handling of ExportedType table.
16644
16645 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16646
16647         * icall.c: added WriteWindowsDebugString internal call.
16648
16649 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16650
16651         * reflection.h: added fields to match C# implementation.
16652
16653 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16654
16655         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16656
16657 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16658
16659         * gc.h, gc-internal.h: Rename header for GC internal calls to
16660         gc-internal.h from gc.h as to not clash with Boehm GC having its
16661         header installed as <gc.h> in outside include paths.
16662         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16663         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16664
16665 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16666
16667         * icall.c: assign minor, build and revision in FillName.
16668
16669 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16670
16671         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16672         Added support for running code generated by Reflection.Emit.
16673
16674 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16675
16676         * appdomain.c: check for NULL argument in LoadFrom.
16677
16678 2002-12-10  Dick Porter  <dick@ximian.com>
16679
16680         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16681
16682 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16683
16684         * appdomain.c: fix buglet when building exe file name.  Handle full
16685         assembly name (needed after latest changes to AssemblyName).
16686         * image.c:
16687         (mono_image_close): free some hashtables.
16688
16689 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16690
16691         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16692         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16693         on some systems (redhat 7.3) 
16694
16695 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16696
16697         * threads.c: delete the critical section of a sync block,
16698         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16699
16700 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16701
16702         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16703
16704 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16705
16706         * appdomain.[ch]: handle the assembly preload event to try loading the
16707         assemblies using the paths we have in the current domain.
16708
16709         * assembly.[ch]: created an assembly preload hook that is called to try
16710         loading the assembly by other means that the ones provided here.
16711
16712         * domain.c: initialize the domain search path.
16713
16714         From now on, assemblies (TODO: except corlib and System) are loaded
16715         according to these rules when using mono_assembly_load ():
16716
16717                 1. It tries to load the assembly from the ApplicationBase
16718                 of the current domain appending .dll and .exe (TODO: have to
16719                 try loading from name/name.dll and name/name.exe).
16720
16721                 2. It tries the search path specified in PrivateBinPath for the
16722                 current domain (if any).
16723
16724                 3. Previous behavior.
16725
16726 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16727
16728         * icall.c: implemented GetInterfaceMap() related icall.
16729         * domain.c, loader.h: load MethodInfo in mono_defaults.
16730
16731 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16732
16733         * gc.c: disable the finalizer thread for now, untill all the issues
16734         with it are resolved.
16735
16736 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16737
16738         * string-icalls.c: handle embedded nulls in string ctor when the
16739         length is specified.
16740
16741 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16742
16743         * class.c: look for explicit interface implementation in parent
16744         classes, too.
16745
16746 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16747
16748         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16749
16750 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16751
16752         * gc.c: protect handles with a critical section.
16753
16754 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16755
16756         * icall.c:
16757         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16758         parameters. If no assembly specified, try getting the type from all
16759         the assemblies in the current domain, else, load the assembly and get
16760         the type from it.
16761
16762 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16763
16764         * marshal.c: applied patch from Aleksey Demakov that fixes
16765         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16766
16767 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16768
16769         * icall.c: fixed get_location.
16770
16771 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16772
16773         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16774         declarations to make it work with older gcc. 
16775
16776         * loader.c (mono_get_method): set signature->pinvoke for native calls
16777
16778 2002-11-20  Dick Porter  <dick@ximian.com>
16779
16780         * threads.c (mono_thread_init): Set the main thread's handle
16781
16782 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16783
16784         * gc.c: allow compilation without GC support. Changed to match the
16785         mono coding style.
16786
16787 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16788
16789         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16790
16791 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16792
16793         * reflection.c: set a public key token on the core assemblies.
16794
16795 2002-11-18  Dick Porter  <dick@ximian.com>
16796
16797         * threads.c: Split out some thread initialisation so that other
16798         files can set the start callback function.
16799
16800         * gc.c: Run finalisers in a separate thread, to avoid stack
16801         overflow.  Fixes bug 31333.
16802
16803         * appdomain.c: Set up GC finalisation thread.
16804
16805         * reflection.c: 
16806         * object.c: 
16807         * domain.c: Use gc.h macros for GC_malloc
16808         
16809 2002-11-15  Dick Porter  <dick@ximian.com>
16810
16811         * threadpool.c: 
16812         * threads.c:
16813         * appdomain.c: Removed mono_runtime_init_with_attach(),
16814         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16815         merging the extra parameter with the existing function.  Removed
16816         unneeded code in mono_thread_attach().
16817
16818 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16819
16820         * image.c (mono_image_loaded_by_guid): a method to get loaded
16821         images by guid. 
16822         (load_metadata_ptrs): we store the guid as string.
16823
16824 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16825
16826         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16827
16828         * metadata.c (mono_guid_to_string): imported method form Zoltan
16829         Varga (slightly modified)
16830
16831         * assembly.c (mono_assembly_open): load precompiled code
16832
16833         * loader.h (MonoMethod): we store the method token for use in the
16834         aot compiler. 
16835
16836 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16837
16838         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16839         the hook function called when an assembly is loaded.
16840         
16841         * domain.c: Modified file.
16842         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16843
16844         Fixes bug #33196.
16845
16846 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16847
16848         * reflection.c: Map PEFileKind to the value expected by the WinNT
16849         image loader. 
16850
16851 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16852
16853         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16854         Read until the buffer is filled completely.
16855
16856 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16857
16858         * icall.c: implemented MonoType.InternalGetEvent ().
16859
16860 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16861
16862         * appdomain.c: implemented InitAppDomainSetup. Delayed
16863         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16864         the entry_assembly.
16865
16866         * assembly.c: base_dir is now an absolute path ending with
16867         G_DIR_SEPARATOR.
16868
16869         * icall.c: modified get_location according to the above changes.
16870
16871         * object.c: init AppDomain.SetupInformation for the default domain after
16872         we have the entry assembly.
16873
16874         * domain.c: when unloading a domain, setup = NULL.
16875
16876 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16877
16878         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16879
16880 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16881
16882         * object.h, object.c: introduced mono_object_get_virtual_method ()
16883         to lookup the method invoked on an object when a callvirt is done on
16884         a method.
16885         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16886
16887 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16888
16889         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16890         current domain when loaded an assembly and failed to load it.
16891
16892         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16893
16894 2002-10-31  Dick Porter  <dick@ximian.com>
16895
16896         * icall.c: 
16897         * file-io.h: 
16898         * file-io.c: Return the error status in a parameter, as the
16899         GetLastError() value has long since been blown away if we try and
16900         look it up in a subsequent internal call invocation.  Delete the
16901         GetLastError() internal call, because it's useless.
16902
16903 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16904
16905         * class.[ch]: added cast_class to fix bug 29517
16906
16907 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16908
16909         * marshal.c: create valid IL code in the filter clause:
16910         the new JIT is less forgiving:-)
16911
16912 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16913
16914         * icall.c: removed get_property internal call.
16915
16916 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16917
16918         * appdomain.h domain.c: Added an ID to appdomains.
16919         
16920         * threads.c threads.h icall.c: Implement icall
16921         Thread:GetDomainID(), and remove unused icall 
16922         CurrentThreadDomain_internal.
16923
16924 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16925
16926         * icall.c: Don't recurse through the base types in GetConstructor.
16927         Fixes bug #32063. 
16928
16929 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16930
16931         * mempool.h, mempool.c: added mono_mempool_empty() and
16932         mono_mempool_stats().
16933
16934 2002-10-23  Dick Porter  <dick@ximian.com>
16935
16936         * file-io.c: 
16937         * file-io.h: 
16938         * icall.c: Added MonoIO.GetFileType internal call
16939
16940 2002-10-17  Dick Porter  <dick@ximian.com>
16941
16942         * appdomain.c (mono_runtime_cleanup): Don't signal the async
16943         delegate semaphore before waiting for all threads to finish,
16944         because new threads can also call async delegates.  Fixes bug
16945         32004.
16946
16947         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
16948         of 3 seconds, in case another async job is queued.  (This part is
16949         needed because the bug fix reintroduced the 3s exit lag.)  This
16950         makes the mono_runtime_shutdown flag superfluous.
16951
16952 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16953
16954         * reflection.c: include ehader size in method section headers.
16955         Really check for suplicated modules entries.
16956
16957 2002-10-17  Martin Baulig  <martin@gnome.org>
16958
16959         * debug-mono-symfile.c: Added back support for locals.
16960
16961 2002-10-14  Martin Baulig  <martin@gnome.org>
16962
16963         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
16964         MONO_TYPE_VOID.
16965
16966 2002-10-14  Martin Baulig  <martin@gnome.org>
16967
16968         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
16969         mono_class_get() instead of looking in the class cache. 
16970
16971 2002-10-13  Martin Baulig  <martin@gnome.org>
16972
16973         * debug-mono-symfile.c: Set version number to 28, include the
16974         signature in method names.
16975
16976 2002-10-13  Martin Baulig  <martin@gnome.org>
16977
16978         * debug-mono-symfile.h: Set version number to 27.
16979
16980 2002-10-11  Martin Baulig  <martin@gnome.org>
16981
16982         * gc.c: Don't register/unregister NULL pointers as disappearing links.
16983
16984 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16985
16986         * metadata.c, metadata.h: added helper function to allocate signatures.
16987
16988 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16989
16990         * icall.c: added internal call to get the location of machine.config.
16991
16992 2002-10-08  Martin Baulig  <martin@gnome.org>
16993
16994         * debug-mono-symfile.c: Ignore classes with a pending init for the
16995         moment.
16996
16997 2002-10-03  Dick Porter  <dick@ximian.com>
16998
16999         * threads.c: Freebsd pthread_t is a pointer
17000
17001 2002-10-03  Dick Porter  <dick@ximian.com>
17002
17003         * socket-io.c: Implemented GetHostName_internal
17004
17005 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17006
17007         * mono-config.c:
17008         (mono_config_parse_file): don't leak the text.
17009
17010 2002-10-02  Martin Baulig  <martin@gnome.org>
17011
17012         * debug-mono-symfile.c: Added support for methods.
17013
17014 2002-10-01  Martin Baulig  <martin@gnome.org>
17015
17016         * debug-mono-symfile.c: Don't emit methods and line numbers for
17017         the dynamic symbol file, just write the type table.  We can easily
17018         have an external helper program which creates a symbol file for an
17019         IL file.        
17020
17021 2002-10-01  Dick Porter  <dick@ximian.com>
17022
17023         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17024         Only add the handle to the cleanup array when we're about to
17025         launch the thread.  Bug 31425 deadlocked when the test was run on
17026         mono under w32.
17027
17028 2002-10-01  Martin Baulig  <martin@gnome.org>
17029
17030         * debug-mono-symfile.c: Added support for properties.
17031
17032 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17033
17034         * reflection.c: unaligned store fix from Mark Crichton
17035         <crichton@gimp.org>.
17036
17037 2002-09-27  Martin Baulig  <martin@gnome.org>
17038
17039         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17040         New interncall.
17041
17042 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17043
17044         * assembly.h, assembly.c: use a sane API to hook into the assembly
17045         loading process instead of a useless special-purpouse hack
17046         (ngen needs a hook, too, for example).
17047
17048 2002-09-27  Dick Porter  <dick@ximian.com>
17049
17050         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17051         io-layer can set up some process handle info.  Not needed on w32,
17052         but doesn't hurt either.
17053
17054         * process.c: Pass the program name in the second parameter to
17055         CreateProcess, so the path is searched.  Include the working
17056         directory. Implemented process name, process enumeration, and some
17057         process detail internal calls.
17058         
17059         * icall.c: Added internal calls for process lookup, and some
17060         process details
17061
17062 2002-09-26  Martin Baulig  <martin@gnome.org>
17063
17064         * assembly.c (mono_install_open_assembly_hook): New global
17065         function to install a function to be invoked each time a new
17066         assembly is loaded.
17067         (mono_assembly_open): Run this callback function if set.
17068
17069         * debug-mono-symfile.c: Put back line numbers for the dynamic
17070         symbol file and also record the .il file as source file.  This
17071         allows us to install the temporary symbol file as `file.dbg' just
17072         like a compiler-generated one.
17073
17074 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17075
17076         * Corrected typo in gc.c (BOHEM vs BOEHM).
17077
17078 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17079
17080         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17081         GetProperties. Also avoid calling g_slist_length in GetProperties and
17082         GetMethods.
17083
17084 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17085
17086         * reflection.c: avoid unaligned stores (bug spotted by
17087         Mark Crichton  <crichton@gimp.org>).
17088
17089 2002-09-25  Martin Baulig  <martin@gnome.org>
17090
17091         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17092         instead of guint64 for addresses and added prologue/epilogue info.
17093
17094 2002-09-25  Martin Baulig  <martin@gnome.org>
17095
17096         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17097         store line number info.  For the dynamic symbol file, we only need
17098         to provide the JIT generated dynamic line number info for the dynamic
17099         symbol file.
17100
17101 2002-09-25  Martin Baulig  <martin@gnome.org>
17102
17103         * debug-mono-symfile.h: Incremented version number.
17104
17105 2002-09-24  Martin Baulig  <martin@gnome.org>
17106
17107         * class.c (mono_debugger_class_init_func): New global function
17108         pointer variable.
17109         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17110         call it.
17111
17112         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17113         function.  This is called via the mono_debugger_class_init_func
17114         hook to add all types to the dynamic type table.
17115         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17116         from its metadata token.
17117
17118         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17119         New interncall for the debugger.
17120
17121 2002-09-24  Nick Drochak <ndrochak@gol.com>
17122
17123         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17124         before using it in case it is null.
17125         
17126 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17127
17128         * metadata.c: allow custom modifiers in local var signatures
17129         (bug spotted by Zoltan Varga).
17130
17131 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17132
17133         * class.c: deal with the <Module> class that may have a NULL vtable.
17134         Eliminate warnings.
17135
17136 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17137
17138         * image.c, image.h: more strong name helpers.
17139         * monosn.c: more work: convert pem keys to cryptoapi format.
17140
17141 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17142
17143         * string-icalls.c: speedup IndexOf.
17144
17145 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17146
17147         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17148
17149 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17150
17151         * icall.c: cleanup: use mono_object_domain ().
17152
17153 2002-09-23  Martin Baulig  <martin@gnome.org>
17154
17155         * debug-mono-symfile.c: Improved type support.
17156
17157 2002-09-22  Martin Baulig  <martin@gnome.org>
17158
17159         * debug-mono-symfile.c: Added support for reference types and strings.
17160
17161 2002-09-22  Martin Baulig  <martin@gnome.org>
17162
17163         * debug-mono-symfile.c: Started to work on the type table.
17164
17165 2002-09-21  Martin Baulig  <martin@gnome.org>
17166
17167         * debug-mono-symfile.c: Largely reworked the symbol table format.
17168         The symbol table is now incrementally updated each time a new
17169         method is added.  We're now also using our own magic and version
17170         so that you don't need to recompile all your classes if the
17171         dynamic table changes.
17172         (mono_debug_update_mono_symbol_file): Removed.
17173         (mono_debug_symfile_add_method): New function to add a method.
17174
17175 2002-09-21  Martin Baulig  <martin@gnome.org>
17176
17177         * icall.c
17178         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17179         New interncall.
17180
17181         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17182         New interncall to get a method from its metadata token.
17183
17184 2002-09-21  Martin Baulig  <martin@gnome.org>
17185
17186         * debug-mono-symfile.c: Create type table.
17187
17188 2002-09-20  Martin Baulig  <martin@gnome.org>
17189
17190         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17191
17192 2002-09-20  Martin Baulig  <martin@gnome.org>
17193
17194         * debug-mono-symfile.c: Provide information about params and locals.
17195
17196 2002-09-20  Martin Baulig  <martin@gnome.org>
17197
17198         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17199         New interncall.
17200
17201         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17202         interncall to get a method from its metadata token.
17203
17204 2002-09-20  Martin Baulig  <martin@gnome.org>
17205
17206         * debug-mono-symfile.c: Added a few checks for method->header
17207         being non-NULL.  This should never happen, but for the moment
17208         let's use a g_warning() rather than a g_assert().
17209
17210 2002-09-19  Mark Crichton  <crichton@gimp.org>
17211
17212         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17213         even if support for it isn't present.  Added an #ifdef to fix this.
17214
17215         * socket-io.c: Added checks back for Solaris support.
17216
17217 2002-09-19  Martin Baulig  <martin@gnome.org>
17218
17219         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17220         changes in the symbol file format.
17221
17222 2002-09-18  Martin Baulig  <martin@gnome.org>
17223
17224         * debug-mono-symfile.c: Set version number to 21.
17225
17226 2002-09-18  Dick Porter  <dick@ximian.com>
17227
17228         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17229         on netbsd.  Fixes bug 30051.
17230
17231 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17232
17233         * reflection.c:
17234         (set_version_from_string): little fix.
17235
17236 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17237
17238         * monosn.c, Makefile.am: added strong name utility.
17239         * reflection.h, reflection.c: implemented delayed signing,
17240         locale, version and hash id assembly attributes.
17241
17242 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17243
17244         * loader.c, metadata.c: load param attributes in signatures.
17245
17246 2002-09-16  Martin Baulig  <martin@gnome.org>
17247
17248         * debug-mono-symfile.c: Added string table with all method names.
17249
17250 2002-09-14  Martin Baulig  <martin@gnome.org>
17251
17252         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17253         fast method lookup.
17254
17255 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17256
17257         * reflection.c: record the public key token of referenced assemblies.
17258
17259 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17260
17261         * image.c, image.h: added functions to get the strong name and the
17262         public key of an assembly.
17263         * pedump.c: use them.
17264
17265 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17266
17267         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17268
17269 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17270
17271         * marshal.c (mono_marshal_get_managed_wrapper): Added
17272         MONO_TYPE_BOOLEAN 
17273
17274 2002-09-11  Martin Baulig  <martin@gnome.org>
17275
17276         * gc.c: Call GC_unregister_disappearing_link() on all links when
17277         finalizing them, this is necessary to aviod a crash in boehm's
17278         finalize handler.
17279
17280 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17281
17282         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17283         nick@chemlab.org.
17284
17285 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17286
17287         * icall.c: implemented MonoType::Module.
17288         * reflection.c, reflection.h: mono_module_get_object () from
17289         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17290
17291 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17292
17293         * icall.c: ignore overridden methods in GetMethods ().
17294         Fix for FieldInfo::SetValue().
17295         * object.c: handle float/double in runtime invoke.
17296
17297 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17298
17299         * object.c: allow a constructor to be called again on an object.
17300
17301 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17302
17303         * class.h, class.c: move field layout code to it's own function and
17304         export it. Get an interface id earlier. Move fields in MonoClass
17305         so they are more cache friendly and align the bitfields.
17306         * loader.c: temporary handle get_param_names() for a runtime method.
17307         * reflection.c, reflection.h: more code to handle runtime creation of
17308         types.
17309
17310 2002-09-09  Martin Baulig  <martin@gnome.org>
17311
17312         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17313         signature with the pinvoke field being set for the actual call.
17314
17315 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17316
17317         * icall.c: removed some unused icalls. Start of map of glib charsets
17318         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17319
17320 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17321
17322         * debug-helpers.c: break infinite loop (found and fixed by
17323         Holger Arnold <harnold@gmx.de>).
17324
17325 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17326
17327         * icall.c: target may be null in create_delegate.
17328
17329 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17330
17331         * marshal.c: handle a boolean return type.
17332
17333 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17334
17335         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17336
17337 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17338
17339         * gc.c: fix weakreferences.
17340
17341 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17342
17343         * icall.c: added icall to get default codepage.
17344
17345 2002-09-03  Dick Porter  <dick@ximian.com>
17346
17347         * threads.h: 
17348         * threads.c: Use MonoThread instead of MonoObject where
17349         apropriate.
17350
17351         Store running thread objects in a hash table, so that we have all
17352         the info to hand when waiting for them to finish
17353         (means we don't need OpenThread() any more, so mingw builds should
17354         be fully functional again.)
17355
17356         * verify.c:
17357         * object.h: Added thread ID to MonoThread
17358
17359 2002-09-03  Martin Baulig  <martin@gnome.org>
17360
17361         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17362
17363 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17364
17365         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17366
17367 2002-09-03  Martin Baulig  <martin@gnome.org>
17368
17369         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17370         argument to store the end address of the disassembled instruction.
17371
17372         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17373         here from debug-symfile.h.
17374         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17375         JIT into this struct.
17376         (MonoSymbolFile): Added `char *image_file' field.
17377         (MonoDebugGetMethodFunc): Removed.
17378         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17379         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17380         (mono_debug_find_method): New method.
17381
17382         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17383         create a full symbol file.
17384         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17385         and static symbol files.
17386         (mono_debug_find_method): The symbol file keeps an internal method hash,
17387         call this to get a MonoDebugMethodInfo from a MonoMethod.
17388
17389         * debug-symfile.[ch]: Removed.
17390
17391 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17392
17393         * image.c (do_mono_image_open): Remove linker version check.
17394
17395 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17396
17397         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17398         wrappers for instance methods.
17399         
17400 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17401
17402         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17403
17404 2002-08-28  Dick Porter  <dick@ximian.com>
17405
17406         * Makefile.am: Export HOST_CC for w32 builds
17407
17408 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17409
17410         * file-io.c process.c: MonoString are null terminated, no
17411         need for mono_string_to_utf16() anymore.
17412
17413 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17414
17415         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17416
17417 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17418
17419         * icall.c, reflection.h: speedup System.MonoType.
17420
17421 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17422
17423         * reflection.c: allow null as the value of a string argument in
17424         custom attributes constructors.
17425
17426 2002-08-27  Martin Baulig  <martin@gnome.org>
17427
17428         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17429         `trampoline_address' field.
17430
17431 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17432
17433         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17434         check (fixes bug #29486) 
17435
17436 2002-08-27  Martin Baulig  <martin@gnome.org>
17437
17438         * debug-mono-symfile.c: Changed the file format in a way that allows us
17439         open it read-only and to use a specially malloced area for all the
17440         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17441         debugging IL code and there is no MCS generated symbol file for it.
17442
17443 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17444
17445         * object.c: added a define for a good string and array
17446         creation speedup (not enabled by default because we need to deal with
17447         the synch stuff).
17448
17449 2002-08-26  Martin Baulig  <martin@gnome.org>
17450
17451         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17452         function to create a dynamic symbol file.  This is used by the
17453         debugger to create a symbol file for IL code on-the-fly.
17454
17455 2002-08-26  Martin Baulig  <martin@gnome.org>
17456
17457         * loader.c (mono_lookup_pinvoke_call): Include the error message
17458         from g_module_error() in the error message.
17459
17460 2002-08-24  Martin Baulig  <martin@gnome.org>
17461
17462         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17463         function to update the symbol file.  The symbol file is mmap()ed
17464         writable, but private.  This allows us to install the symbol file
17465         together with the assembly.
17466
17467 2002-08-24  Martin Baulig  <martin@gnome.org>
17468
17469         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17470         but they can read the new symbol file format which mcs is now creating.
17471
17472         * debug-symfile.c (mono_debug_find_source_location): Moved to
17473         debug-mono-symfile.c; this is now operating on the new symbol file.
17474
17475 2002-08-23  Martin Baulig  <martin@gnome.org>
17476
17477         * debug-helpers.c (mono_method_desc_from_method): New function to get
17478         a MonoMethodDesc from a MonoMethod.
17479
17480 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17481
17482         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17483         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17484
17485 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17486
17487         * string-icalls.[ch]: make helper methods static.
17488
17489 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17490
17491         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17492         types to it and to SetValueInternal.
17493
17494         * object.c: Moved handle_enum label to its proper place. This was the
17495         f... bug! ;-)
17496
17497         This time i compiled mcs and gtk-sharp and they both work.
17498
17499 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17500
17501         * icall.c: reverted partially my previous patch until 
17502         object.c:set_value handles enums correcly.
17503
17504 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17505
17506         * icall.c:
17507         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17508         (ves_icall_System_Environment_get_MachineName): removed warning when
17509         compiling under cygwin.
17510
17511 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17512
17513         * object.c: fixed field_get_value() for reference types.
17514
17515 2002-08-22  Dick Porter  <dick@ximian.com>
17516
17517         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17518         Don't free a buffer while it's still needed.  Patch from Jonathan
17519         Liger <Jonathan.liger@wanadoo.fr>
17520
17521 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17522
17523         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17524         internal call.
17525
17526 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17527
17528         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17529         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17530
17531         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17532         we call unmanaged code which throws exceptions.
17533
17534 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17535
17536         * appdomain.h: added per-domain entry_assembly.
17537         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17538         arguments.
17539         * icall.c: Assembly::GetEntryAssembly icall.
17540         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17541         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17542
17543 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17544
17545         * appdomain.h, gc.c: added mono_domain_finalize ().
17546
17547 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17548
17549         * object.c:
17550         (mono_print_unhandled_exception): changed g_warning by g_printerr
17551         because g_log has a 1024 characters limit (yeah, i got a big stack
17552         trace). Don't print exception name, that should be in ToString 
17553         returned string.
17554
17555 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17556
17557         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17558         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17559
17560 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17561
17562         * object.c:
17563         (mono_print_unhandled_exception): after previous commit, i realized
17564         that MS calls ToString on the exception. I changed this function to
17565         do that. This way we get stack_trace for free.
17566
17567 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17568
17569         * object.c:
17570         (mono_print_unhandled_exception): invoke Message property instead of
17571         getting 'message' field from Exception. Don't allocate memory for
17572         'trace' and 'message' if not needed.
17573
17574 2002-08-18  Dick Porter  <dick@ximian.com>
17575
17576         * unicode.c: Fix asserts to match Encoder.cs checks
17577
17578 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17579
17580         * marshal.c: fix unaligned store issue and a few wrong
17581         opcode argument types.
17582
17583 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17584
17585         * icall.c: added GetUninitializedObjectInternal internal call.
17586
17587 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17588
17589         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17590         to the right domain.
17591
17592 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17593
17594         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17595
17596         * class.c (class_compute_field_layout): set blittable to false for Strings
17597
17598         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17599
17600 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17601
17602         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17603         first chunk of code to create types at runtime. Code to
17604         handle ReflectedType/DeclaringType. Make reflection handles
17605         domain specific.
17606
17607 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17608
17609         * class.c: set correct name in arrays.
17610
17611 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17612
17613         * appdomain.c (mono_domain_transfer_object): make it work with
17614         valuetypes. bug fixes.
17615
17616 2002-08-12  Dick Porter  <dick@ximian.com>
17617
17618         * object.h: Rename some parameters to avoid c++ keywords (Patch
17619         from Joseph Wenninger <kde@jowenn.at>)
17620
17621 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17622
17623         * icall.c: added icall to implement Assembly.GetFile*.
17624
17625 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17626
17627         * reflection.h, reflection.c: code to embed managed resources.
17628
17629 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17630
17631         * class.c: move all the type size stuff into
17632         class_compute_field_layout().
17633
17634 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17635
17636         * class.c: ensure enums have always the correct instance size.
17637         * unicode.c: remove wrong assert.
17638
17639 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17640
17641         * assembly.c: fix mem corruption issue.
17642         * image.h, image.c: added mono_image_get_resource () to access
17643         managed resources.
17644         * icall.c: implemented Assembly.EntryPoint property and some
17645         Managed Resources related internalcalls.
17646
17647
17648 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17649
17650         * image.c, image.h: impemented mono_image_get_entry_point ().
17651         * appdomain.c: use mono_image_get_entry_point.
17652
17653 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17654
17655         * reflection.c: support the object type argument when loading
17656         custom attributes.
17657
17658 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17659
17660         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17661         String as return type.
17662
17663 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17664
17665         * reflection.c: fix encoding of named args for custom attrs to match
17666         the ms implementation. Read them back when instantiating custom
17667         attributes.
17668
17669 2002-08-02  Radek Doulik  <rodo@ximian.com>
17670
17671         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17672         by Dietmar as quick fix
17673         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17674         16 as stack size, used on more places as quick fix before Dietmar
17675         will fix it properly
17676
17677 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17678
17679         * object.h, object.c: added accessors for fields and properties.
17680
17681 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17682
17683         * class.c, class.h: made mono_class_get_field_from_name ()
17684         loop on parent types.
17685         Added mono_class_get_property_from_name ().
17686
17687 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17688
17689         * class.c, class.h: move the code to setup the type vtable in its own
17690         function so that it can be reused also for types created at runtime.
17691         Eliminate the "class" identifier from the header file.
17692         * reflection.c: setup the vtable for enums so that we can create
17693         objects for use in SetConstant ().
17694
17695 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17696
17697         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17698         instead of the delegate itself as this pointer (bug #28383)
17699
17700 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17701
17702         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17703         conversions.
17704
17705 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17706
17707         * loader.c: don't set the pinvoke bit on icalls.
17708
17709 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17710
17711         * debug-helpers.c (mono_method_full_name): only print a number to
17712         indicate wrapper type (so that the output is more readable in traces).
17713
17714 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17715
17716         * class.c (mono_class_init): include method override patch from Paolo
17717
17718 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17719
17720         * icall.c: fixed GetTypeCode().
17721
17722 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17723
17724         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17725         use real delegate invoke function to make it work with multicast
17726         delegates (fix bug# 28291).
17727
17728 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17729
17730         * object.c: load constant strings.
17731
17732 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17733
17734         * reflection.c: no magic numbers.
17735         * tabledefs.h: security action enum.
17736
17737 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17738
17739         * assembly.c: fix possible memory corruption.
17740
17741 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17742
17743         * reflection.h, reflection.c: added support for linking resources.
17744         * verify.c: check we have an updated corlib.
17745
17746 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17747
17748         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17749         string arrays.
17750         (mono_marshal_string_array): null terminate unmanaged string arrays.
17751         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17752
17753 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17754
17755         * icall.c: Type.GetType () can now return also types from the
17756         calling assembly.
17757
17758 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17759
17760         * loader.h, loader.c: stack walking support.
17761         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17762         GetCallingAssembly.
17763
17764 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17765
17766         * marshal.c: added optimisations for blittable types 
17767
17768         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17769         (mono_class_setup_mono_type): set blittable attribute for single
17770         and double.
17771
17772         * marshal.c (mono_string_utf8_to_builder): impl.
17773         (mono_string_builder_to_utf8): impl.
17774         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17775
17776 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17777
17778         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17779         (mono_marshal_get_managed_wrapper): impl. byref types
17780
17781 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17782
17783         * icall.c:
17784         (search_method): don't display debug message. 
17785
17786 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17787
17788         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17789
17790 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17791
17792         * appdomain.c: set the missing filename when throwing exception.
17793
17794 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17795
17796         * metadata.c (mono_type_size): code cleanup
17797         (mono_type_stack_size): removed some test code
17798
17799 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17800
17801         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17802         mono_get_exception_file_not_found now.
17803
17804         * exception.c (mono_exception_from_name_two_strings): New version
17805         that will call a constructor with two string arguments. 
17806         (mono_get_exception_file_not_found): New helper routine, used to
17807         report file-not-found errors.
17808
17809 2002-07-20  Dick Porter  <dick@ximian.com>
17810
17811         * process.h:
17812         * process.c: Pass file handles to CreateProcess
17813         
17814         * icall.c:
17815         * file-io.h:
17816         * file-io.c: Implemented CreatePipe
17817
17818 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17819
17820         * metadata.c (mono_get_param_info): set alignment for value types
17821
17822 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17823
17824         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17825         Constify mono_domain_assembly_open().
17826         * loader.c: handle null namespace in icalls.
17827
17828 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17829
17830         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17831         (emit_str_to_ptr_conv): marshal object as structs
17832
17833         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17834
17835         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17836
17837 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17838
17839         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17840         (mono_marshal_get_native_wrapper): we an now return value types
17841
17842 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17843
17844         * verify.c: more checks implemented.
17845
17846 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17847
17848         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17849         (fix bug #27695)
17850         (mono_marshal_get_native_wrapper): allow byref arguments
17851         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17852         impl. PtrToStringXXX methods
17853         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17854         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17855         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17856         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17857         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17858
17859 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17860
17861         * reflection.c: fix buglet in parsing an assembly name.
17862
17863 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17864
17865         * marshal.c (emit_ptr_to_str_conv): first impl.
17866
17867 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17868
17869         * object.c, class.h: cache the vtable in the class as suggested by
17870         vargaz@freemail.hu (Zoltan Varga).
17871
17872 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17873
17874         * class.h, loader.c: added mono_field_from_token().
17875         * verify.c: first cut of type checking code.
17876
17877 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17878
17879         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17880
17881 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17882
17883         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17884         (fix bug #27782)
17885         (mono_marshal_get_remoting_invoke): impl.
17886         (mono_delegate_begin_invoke): impl.
17887         (mono_mb_emit_save_args): impl.
17888         (mono_delegate_end_invoke): impl.
17889         (mono_marshal_get_delegate_begin_invoke):
17890         (mono_marshal_get_delegate_end_invoke):
17891         (mono_marshal_get_delegate_invoke): generate a special name for
17892         those methods (including the signature) and associate them whith
17893         the delegate class. 
17894
17895 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17896
17897         * reflection.[ch]: 
17898         (mono_reflection_type_from_name): now it has a MonoImage parameter
17899         which is used as the default image to search the type in. If the image
17900         is NULL or getting the type from it fails, it defaults to corlib.
17901
17902         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17903         new parameter.
17904
17905 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17906
17907         * reflection.c: update the parameter table index.
17908
17909 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17910
17911         * domain.c: don't include the mark byte in the string hash.
17912
17913 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17914
17915         * icall.cs: icall for Type.GetTypeCode ().
17916         * verify: a couple of fixes and disabled local initialization checks.
17917
17918 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
17919
17920         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
17921
17922         * debug-helpers.c (mono_method_full_name): print the type of the
17923         runtime wrapper
17924
17925         * metadata.c (mono_signature_hash): a hash function for signatures
17926         (mono_signature_hash): better hash algorithm
17927
17928         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
17929
17930         * debug-helpers.c (mono_method_full_name): this can now generate
17931         method names with signatures
17932
17933         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
17934         method dont have this pointers.
17935
17936 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17937
17938         * reflection.c: fixup typebuilder tokens.
17939         * image.c: fix buglet.
17940         * marshal.h: remove whitespace.
17941         * metadata.h, metadata.c: reinstate code that was removed.
17942         * verify.c: handle catch directives and fix another couple of bugs.
17943
17944 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
17945
17946         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
17947         (mono_marshal_get_native_wrapper): make it comp. with the old code
17948         (mono_marshal_get_native_wrapper): support boolean
17949         (mono_marshal_get_managed_wrapper): support more types
17950
17951 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
17952
17953         * class.c (class_compute_field_layout): compute class->blittable attribute.
17954
17955 2002-07-09  Dick Porter  <dick@ximian.com>
17956
17957         * threads.c: Make the thread cleaning up cope with threads that
17958         call ExitThread()
17959
17960 2002-07-08  Radek Doulik  <rodo@ximian.com>
17961
17962         * reflection.c (method_encode_code): use non-translated values to
17963         compute finally_start, this fixes exception handling on ppc, yay!
17964
17965         * decimal.h (struct signscale): fix endianess
17966
17967 2002-07-07  Radek Doulik  <rodo@ximian.com>
17968
17969         * reflection.c: swap box_val and not val
17970
17971 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17972
17973         * reflection.c, reflection.h: handle full assembly info in type name.
17974         Handle Type arguments when loading custom attributes.
17975         * icall.c: updated to use new mono_reflection_type_from_name () method.
17976
17977 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17978
17979         * loader.c:
17980         (method_from_memberref): also print assembly name when method not found.
17981
17982 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17983
17984         * icall.c:
17985         (ves_icall_TypeGetProperties): fixed bug #27473. 
17986
17987 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17988
17989         * reflection.c: display image name and token when cannot find the
17990         .ctor for an attribute.
17991
17992 2002-07-05  Martin Baulig  <martin@gnome.org>
17993
17994         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
17995
17996 2002-07-04  Dick Porter  <dick@ximian.com>
17997
17998         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
17999         compile on mingw.  This will cause mingw builds to not wait for
18000         subthreads to terminate after the main thread does.  I've lodged a
18001         bug with the mingw developers for them to wrap OpenThread().
18002
18003 2002-07-03  Dick Porter  <dick@ximian.com>
18004
18005         * threads.c: Store thread IDs instead of handles, because
18006         GetCurrentThread() returns a pseudohandle and therefore stores
18007         useless values.  mono_thread_cleanup() continues checking the
18008         array of threads until it is empty, to cope with subthreads
18009         spawning new threads after the main thread has finished.
18010
18011         * profiler.h:
18012         * profiler.c:
18013         * profiler-private.h: Pass the thread ID to thread profiler
18014         functions, instead of a handle
18015
18016 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18017
18018         * verify.c: fixes to make it more usable.
18019         * pedump.c: added --verify code to verify IL code in an assembly.
18020
18021 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18022
18023         * reflection.c: turn errors into warnings to allow compiling corlib.
18024
18025 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18026
18027         * reflection.c: add special cases to compile corlib.
18028
18029 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18030
18031         * reflection.c: handle properties with only a set method.
18032
18033 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18034
18035         * opcodes.h: add enum with opcodes in opval order.
18036
18037 2002-07-01  Dick Porter  <dick@ximian.com>
18038         
18039         * object.h:
18040         * object.c (mono_runtime_run_main): Removed unneeded argument
18041
18042 2002-06-28  Martin Baulig  <martin@gnome.org>
18043
18044         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18045
18046 2002-06-27  Dick Porter  <dick@ximian.com>
18047
18048         * threads.c: Store the handle in both the parent thread and in the
18049         subthread, to minimise the time between starting a new thread and
18050         storing its ID.
18051
18052 2002-06-26  Dick Porter  <dick@ximian.com>
18053
18054         * appdomain.c (mono_runtime_cleanup): Close the socket library
18055         after all the threads have finished, not before
18056
18057 2002-06-26  Martin Baulig  <martin@gnome.org>
18058
18059         * debug-symfile.c (mono_debug_find_source_location): Added
18060         `guint32 *line_number' argument.  If it's not NULL, store the line number
18061         there and return the file name without the line number.
18062
18063 2002-06-25  Dick Porter  <dick@ximian.com>
18064
18065         * icall.c:
18066         * process.h:
18067         * process.c: Process forking and other support functions
18068
18069 2002-06-25  Dick Porter  <dick@ximian.com>
18070
18071         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18072         things dont happen when the image is closed.
18073         (mono_image_lookup_resource): Walk the resource section looking
18074         for a particular entry
18075
18076         * cil-coff.h: PE resource section decoding
18077
18078 2002-06-25  Dick Porter  <dick@ximian.com>
18079         
18080         * assembly.h:
18081         * assembly.c: 
18082         (mono_assembly_foreach): Accessor functions to walk the list of
18083         loaded assemblies
18084         (mono_assembly_set_main):
18085         (mono_assembly_get_main): Process methods need to know which
18086         assembly is the "main" one
18087
18088         * object.c (mono_runtime_run_main): Record the main assembly
18089
18090         * debug-helpers.c: Fix typo
18091
18092 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18093
18094         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18095         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18096
18097 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18098
18099         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18100
18101 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18102
18103         * image.c (do_mono_image_open): Initialize reference count,
18104         otherwise we leak the MonoImage.
18105
18106 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18107
18108         * reflection.c: small tweak to handle self-hosting.
18109
18110 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18111
18112         * reflection.c: fix type name parse code.
18113
18114 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18115
18116         * reflection.c: break out of the loop.
18117         * image.c: special case corlib.
18118
18119 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18120
18121         * reflection.c: add all the custom attrs at the end to ensure the
18122         ctors have been properly initialized when the attributes are defined
18123         in the current assembly.
18124
18125 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18126
18127         * reflection.c: handle correctly multiple-nested types.
18128
18129 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18130
18131         * row-indexes.h: fix typos.
18132         * reflection.c: adjust for typos and fix method_def_or_ref
18133         encoding in MethodImpl table.
18134
18135 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18136
18137         * reflection.c: fix entry point patching (thanks Serge!).
18138
18139 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18140
18141         * verify.c: add check for System.Exception
18142
18143 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18144
18145         * image.c, class.c: minifix for code just c&p'ed.
18146         * reflection.c: warning fix.
18147         * object.h, loader.h, domain.c: load also StringBuilder.
18148
18149 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18150
18151         * marshal.h, marshal.c: some support code to handle complex marshaling.
18152
18153 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18154
18155         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18156         Better signatures with vtable error dump.
18157
18158 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18159
18160         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18161
18162 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18163
18164         * icall.c (ves_icall_Type_GetField): impl.
18165
18166 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18167
18168         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18169         to retrieve a marshal description blob for a field or param.
18170
18171 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18172
18173         * reflection.h, reflection.c: change order of nested type emission
18174         to avoid table corruption. The NestedTypes table is sorted.
18175         * icall.c: change order of GetConstructor results to workaround mcs bug.
18176
18177 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18178
18179         * reflection.h, reflection.c: handle field and param marshal
18180         information.
18181
18182 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18183
18184         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18185
18186 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18187
18188         * reflection.c: fix call convention.
18189
18190 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18191
18192         * reflection.h, reflection.c: mono_image_get_memberref_token()
18193         takes a type instead of a class, now. Added
18194         mono_image_get_array_token() to create tokens for the special
18195         multi-dim array methods.
18196
18197 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18198
18199         * assembly.c: handle modules (no assembly table). Split
18200         loading references in its own function.
18201         * class.c: handle moduleref resolution scope.
18202         * image.c, image.h: cache module name in image.
18203
18204 2002-06-07  Martin Baulig  <martin@gnome.org>
18205
18206         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18207         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18208
18209 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18210
18211         * icall.c: more signature fixes that used uint instead of int.
18212
18213 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18214
18215         * reflection.c: fixed signature of field refs.
18216
18217 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18218
18219         * class.c, reflection.c: handle typerefs of nested types
18220         (both on read and when writing files).
18221
18222 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18223
18224         * icall.c: fix method signatures that tried to workaround the previous
18225         typo, d'oh!
18226
18227 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18228
18229         * debug-helpers.c: fix typo.
18230
18231 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18232
18233         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18234         rewrote the PE/COFF writing code (our programs are understood by the
18235         ms runtime, now).
18236
18237 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18238
18239         * gc.c, gc.h, icall.c: weakreference support.
18240
18241 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18242
18243         * Makefile.am, mono-config.c: use $(sysconfdir).
18244
18245 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18246
18247         * icall.c: changed default precision of Double.ToString() to 15.
18248         Fixed memory leak. Unified with Single.ToString.
18249
18250 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18251
18252         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18253
18254 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18255
18256         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18257         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18258         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18259         and myself.
18260
18261 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18262
18263         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18264
18265 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18266
18267         * reflection.c, socket-io.c: more compilation fixes.
18268
18269 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18270
18271         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18272         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18273         unicode.c: warning and compiler compatibility fixes.
18274
18275 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18276
18277         * class.h, metadata.c: fixed warnings/compilation errors.
18278
18279 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18280
18281         * Makefile.am, mono-config.c, mono-config.h: configuration file
18282         support routines.
18283         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18284         config file. Export methods to insert and lookup mappings.
18285
18286 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18287
18288         * reflection.c: handle types and boxed objects in custom attr
18289         constructors.
18290
18291 2002-05-30  Martin Baulig  <martin@gnome.org>
18292
18293         * debug-symfile.c
18294         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18295
18296 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18297
18298         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18299         to lookup the implmap row for a P/Invoke method.
18300         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18301         P/Invoke method from the runtime on an as needed basis.
18302
18303 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18304
18305         * metadata.c (mono_metadata_parse_signature): impl.
18306
18307 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18308
18309         * class.c: handle .pack directive.
18310
18311 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18312
18313         * object.c: initialize static fields with RVA data.
18314
18315 2002-05-25  Martin Baulig  <martin@gnome.org>
18316
18317         * debug-symfile.c
18318         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18319
18320 2002-05-24  Martin Baulig  <martin@gnome.org>
18321
18322         * debug-symfile.c
18323         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18324         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18325         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18326
18327 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18328
18329         * object.c: special case string ctros in invoke.
18330         * gc.c: silly whitespace changes.
18331
18332 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18333
18334         * threadpool.[ch]: impl. a threadpool that can
18335         be used by mint and mono.
18336
18337 2002-05-22  Martin Baulig  <martin@gnome.org>
18338
18339         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18340         The first argument is now a `MonoReflectionModuleBuilder *', the return
18341         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18342         `methods' field to get the method builder.  The `token' argument is the
18343         unfixed token.
18344
18345         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18346         invalid characters instead of g_assert_not_reached()ing.  This seems
18347         to be the behaviour of mscorlib.
18348
18349 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18350
18351         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18352         Hestilow to fix bug #25104
18353
18354 2002-05-21  Martin Baulig  <martin@gnome.org>
18355
18356         * debug-symfile.c (mono_debug_find_source_location): New function.
18357         Looks up an IL offset in the line number table and returns the source
18358         location as a string.
18359
18360 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18361
18362         * icall.c:
18363         (mono_double_ToStringImpl): changed %f by %g until we have something
18364         better.
18365
18366 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18367
18368         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18369         parameters first in C#.
18370
18371 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18372
18373         * icall.c, reflection.h: added icall to get info about an event.
18374
18375 2002-05-20  Radek Doulik  <rodo@ximian.com>
18376
18377         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18378         endian
18379         (mono_value_box): don't use memcpy for small sizes on
18380         architectures with unaligned access
18381
18382 2002-05-20  Martin Baulig  <martin@gnome.org>
18383
18384         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18385         if `tb->parent == NULL'.
18386         (mono_reflection_create_internal_class): New function.  This is
18387         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18388         for enum types.
18389
18390         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18391         New interncall.
18392
18393 2002-05-19  Martin Baulig  <martin@gnome.org>
18394
18395         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18396         argument to get the length, don't default to the array length.
18397
18398 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18399
18400         * assembly.c (mono_assembly_setrootdir): New function used to
18401         override the MONO_ASSEMBLIES directory.
18402
18403 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18404
18405         * icall.c: ValueType_GetHashCode() initialize local var.
18406
18407 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18408
18409         * reflection.c: sort custom attributes table.
18410
18411 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18412
18413         * reflection.c: support named args in custom attributes (write support).
18414
18415 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18416
18417         * reflection.c: fix finally position calculation.
18418
18419 2002-05-15  Radek Doulik  <rodo@ximian.com>
18420
18421         * reflection.c: fixed endianess at many places
18422
18423         * icall.c (ves_icall_InitializeArray): comment out debug msg
18424
18425 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18426
18427         * object.c (mono_unhandled_exception): new function to handle
18428         unhandled exceptions.
18429         (mono_unhandled_exception): call the UnhandledException event.
18430         (mono_runtime_delegate_invoke): impl.
18431
18432 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18433
18434         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18435         returns the RVA, not the direct pointer to the data. Handle the case
18436         when the class size is fixed.
18437
18438 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18439
18440         * reflection.c: fix some endianess issues.
18441
18442 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18443
18444         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18445
18446         * threads.c (mono_thread_init): added a callback which is invoked
18447         at thread start.
18448
18449 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18450         
18451         * icall.c: make GetHashCode return non-negative values.
18452
18453 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18454
18455         * object.c, icall.c, gc.c: revert to address-based hashcode.
18456
18457 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18458
18459         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18460
18461 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18462
18463         * icall.c, class.c: special case <Module>.
18464
18465 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18466
18467         * icall.c: fix bug in GetNow().
18468
18469 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18470
18471         * object.c (mono_runtime_class_init): make sure that we call all
18472         static class constructors.
18473
18474 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18475
18476         * reflection.c: sort methodsemantics table.
18477
18478 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18479
18480         * reflection.h, reflection.c: honour init locals setting.
18481
18482 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18483
18484         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18485
18486 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18487
18488         * reflection.c: support ContructorBuilders in attribute blob creation.
18489
18490 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18491
18492         * reflection.c: some changes to build a binary that can be run
18493         directly in windows.
18494
18495 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18496
18497         * loader.c: print a big message when an icall can't be found.
18498
18499 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18500
18501         * string-icalls.c: fix bug 24248.
18502
18503 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18504
18505         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18506         icall.c, reflection.h: separate assembly loading by pathname and by
18507         assembly name. Use the MONO_PATH env var to search for assemblies.
18508
18509 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18510
18511         * assembly.c, image.h: add some support for assemblies
18512         with multiple modules.
18513         * class.c, class.h: export mono_class_from_typeref().
18514         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18515         instead.
18516
18517 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18518
18519         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18520         documentation says (the ECMA one is correct).
18521
18522 2002-05-02  Dick Porter  <dick@ximian.com>
18523
18524         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18525         Don't name the synchronisation mutex.
18526
18527 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18528
18529         * rand.c
18530         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18531         Make the prototypes match.
18532         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18533         Same.
18534
18535         * icall.c
18536         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18537         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18538         all systems have tm.tm_zone, so use strftime() with %Z to print
18539         the timezone abreviation into a temp string.
18540
18541         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18542         rather than mono_array_addr() on a MonoString on Big Endian
18543         machines.
18544
18545 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18546
18547         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18548         fix bug 24041
18549
18550 2002-04-30  Dick Porter  <dick@ximian.com>
18551
18552         * socket-io.c: Cope with SOCKET being an integer rather than a
18553         pointer now.
18554
18555         * threads.c: Added Thread_free_internal, to deal with thread
18556         handle cleanup.  Moved calls to handle_store() and handle_remove()
18557         to start_wrapper(), so each can only be called once.  Allocate
18558         synchronisation blocks with GC_malloc(), and use GC finalisation
18559         to close the handles.
18560
18561         * icall.c: added System.Threading.Thread::Thread_free_internal
18562
18563 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18564
18565         * icall.c: support Environment.Exit, CommandLineArgs().
18566
18567 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18568
18569         * object.c, object.h: added mono_runtime_run_main () and
18570         mono_runtime_get_main_args () for use in System.Environment.
18571
18572 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18573
18574         * gc.c: fix thinko, enable actual finalization since the jit is now
18575         fixed.
18576
18577 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18578
18579         * gc.c, object.c: take into account that an object may be offset wrt the address
18580         returned by GC_malloc().
18581
18582 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18583
18584         * image.c: handle files without entries in the assembly table (modules).
18585
18586 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18587
18588         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18589         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18590         allowed to be null when it's System.Object class setup.
18591
18592 2002-04-27  Martin Baulig  <martin@gnome.org>
18593
18594         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18595         if `tb->parent == NULL' rather than crashing.
18596
18597 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18598
18599         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18600         calling acos() where asin() should have been called.
18601
18602 2002-04-26  Martin Baulig  <martin@gnome.org>
18603
18604         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18605         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18606         there's a subdirectory called `System', but we don't want to read that
18607         subdirectory as an assembly.
18608
18609 2002-04-25  Martin Baulig  <martin@gnome.org>
18610
18611         * debug-symfile.c: Reflect latest MonoString changes.
18612
18613 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18614
18615         * rand.c, rand.h: instance method icalls need to have an explicit
18616         this pointer as first argument in the C implementation.
18617
18618 2002-04-25  Nick Drochak <ndrochak@gol.com>
18619
18620         * icall.c: Fix typo in map for GetNonZeroBytes
18621
18622 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18623
18624         * string-icalls.c : String does now passes unit tests without any 
18625         errors, the following changes has been made:
18626         
18627         Implemented replace methods.
18628         Renaming of methods to (try) follow the standard.
18629         Fixed compare ordinal
18630         Made all memory allocated directly to function instead of via icall function.
18631         Small performance fix in is_in_array function
18632                         
18633  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18634
18635         c (mono_string_Internal_ctor_charp_int_int):
18636         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18637         sindex < 0, throw ArgumentOutOfRangeException instead of
18638         ArgumentNullException.
18639
18640         Added new check for length == 0, however
18641         I need to make it return String.Empty from the C code.
18642         
18643         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18644         that calculate the length for us here.
18645         
18646         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18647         mono_string_new_utf16 with mono_string_new, since value is utf8.
18648
18649 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18650
18651         * object.c: register the object for finalization if needed.
18652         Allocate one more char in the string for the terminating 0 char.
18653
18654 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18655
18656         * class.c, class.h, image.c: check if a type implemenst a destructor.
18657         Use the proper key for array class lookups.
18658         * icall.c: register the icalls in the System.GC class.
18659         * gc.c, gc.h: GC-related functions and icalls.
18660
18661 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18662
18663         * icall.c:
18664         * socket-io.c:
18665         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18666         changed a couple of free () by g_free ().
18667
18668         * decimal.c: one-liner in the comments for decimal2string ().
18669
18670 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18671
18672         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18673
18674 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18675
18676         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18677         * object.c (mono_runtime_invoke_array) : handle null in params
18678
18679 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18680
18681         * string-icalls.c: fixed bug in split (one off bug)
18682
18683 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18684
18685         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18686         * icalls.c: added String::Equals as internal method
18687
18688 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18689
18690         * threads.c: fixed bug in the double interlocked functions
18691
18692 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18693
18694         * threads.c: implemented all of the new interlocked icalls.
18695         * string-icalls.c: fix a bug in insert.
18696         * icalls.c: added the icalls for interlocked, removed old string functions.
18697         
18698 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18699
18700         * loader.c: fix off-by-one error when reading argument names.
18701
18702 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18703
18704         * profiler.c: win32 counter implementation (untested).
18705         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18706         (the latter needs testing and more complete impl. from win32 folks).
18707
18708 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18709
18710         * object.c: mono_array_new_full workaround mono_array_class_get
18711         problem.
18712
18713 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18714
18715         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18716         * object.h (mono_string_chars): Changed casting type.
18717
18718 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18719
18720         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18721                            method signatures to use gunichar2 instead of gint16.
18722
18723 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18724
18725         * object.h, object.c: domain-specific versions of mono_object_new and
18726         mono_array_new.
18727
18728 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18729
18730         * object.c: changed String layout
18731
18732         * string-icalls.c (mono_string_Internal_ctor_chara): added
18733         internal string constructors.
18734
18735 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18736
18737         * threads.c: pass 'this' to the thread start routine.
18738
18739 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18740
18741         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18742         InternalCompareStr don't call twice mono_string_cmp_char for the last
18743         character. Improved performance in mono_string_cmp_char.
18744
18745 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18746
18747         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18748         code into its own library: libmonoruntime.
18749
18750 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18751
18752         * object.h, object.c: changed array format so that szarrays do not
18753         require a bounds structure.
18754         * icall.c, appdomain.c: support for new szarray format.
18755
18756 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18757
18758         * metadata.c: compare also the retuns type when comparing signatures:
18759         we didn't do this as an optimization since really overloaded methods
18760         must differ also in the arguments, but this doesn't work with
18761         low-level IL code (or when using explicit conversion operators: see
18762         bug#23498 for an example).
18763
18764 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18765
18766         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18767
18768 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18769
18770         * icall.c: make MonoType::GetElementType its own icall.
18771
18772 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18773
18774         * icall.c: remove MonoMethod_get_Name().
18775         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18776         object.
18777
18778 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18779
18780         * string-icalls.c: optimized a few methods.
18781
18782 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18783
18784         * icall.c: added all new string internal calls
18785         * string-icalls.c: added, new string internal call implementation.
18786         * object.c: added mono_string_new_size for allocating a string a size
18787
18788 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18789
18790         * object.c (mono_object_isinst): use the same code as in the
18791         optimized x86 version.
18792
18793 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18794
18795         * profiler.c: TSC-based timer code (faster and more accurate).
18796         Not hooked up in configure, yet (set USE_X86TSC to 1).
18797
18798 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18799
18800         * profiler.c, profiler.h: track time spent compiling methods.
18801         * threads.c: track thread creation/destruction.
18802
18803 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18804
18805         * profiler.c, profiler.h, profiler-private.h: profiling interface
18806         and sample implementation. Moved here so that it can be used also by
18807         the jit.
18808
18809 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18810
18811         * reflection.c, reflection.h: keep types and other handles separate in
18812         the hash tables for referred tokens. Add guid for modules.
18813
18814 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18815
18816         * assembly.c: fix bugs found with valgrind.
18817         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18818
18819 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18820
18821         * threads: added icall support for getting current domain for
18822                    the thread.
18823  
18824 2002-04-13  Martin Baulig  <martin@gnome.org>
18825
18826         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18827         (MonoDebugVarInfo): Added `index' field for register based addresses.
18828         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18829         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18830         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18831         `MonoDebugVarInfo *this_var'.
18832
18833         * debug-symfile.c (relocate_variable): New static function to write
18834         a location description for a local variable or method parameter.
18835
18836 2002-04-12  Martin Baulig  <martin@gnome.org>
18837
18838         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18839         stack offset and begin/end scope address of a local variable.
18840         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18841         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18842         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18843
18844         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18845         Added new relocation types for start/end scope of a local variable.
18846
18847 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18848
18849         * object.h: add mono_object_domain() macro.
18850         * reflection.c: handle typespecs.
18851         * icall.c: MonoMethod::get_Name() implementation.
18852
18853 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18854
18855         * icall.c: String::GetHashCode() icall implementation.
18856
18857 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18858
18859         * icall.c: String::IndexOfAny icall.
18860         * object.c, object.h: make array->max_length more useful.
18861         Intrduced mono_object_class() and mono_string_length() macros.
18862
18863 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18864
18865         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18866         instead of g_unichar_isdigit.
18867
18868 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18869
18870         * icall.c: Implement a simple Double.ToString().
18871
18872 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18873
18874         * appdomain.h: only io-layer.h is supposed to be included.
18875         * icall.c: explicitly import environ. Fix warning.
18876
18877 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18878
18879         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18880                 return true even if it's not Daylight Savings time.
18881                 Only return false for the case where the function isn't
18882                 implemented for a plaform (read Windows).
18883
18884 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18885
18886         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18887         data with a mutex.
18888
18889 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18890
18891         * mempool.c (mono_mempool_alloc): only use g_malloc when
18892         absolutely necessary.
18893
18894 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18895
18896         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18897
18898         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18899         (mono_class_proxy_vtable): use domain mempool
18900
18901 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18902
18903         * appdomain.h, appdomain.c: split initialization that requires the
18904         execution engine support into mono_runtime_init().
18905
18906 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18907
18908         * class.c (mono_class_init): don't include vtable inside MonoClass
18909         to save some memory, gather some statistics.
18910         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18911
18912 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18913
18914         * icall.c: internalcall implementation for ValueType.Equals().
18915
18916 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18917
18918         * object.c (mono_message_init): moved 
18919         (mono_runtime_exec_main): new arch. independent impl.
18920         (mono_runtime_invoke_array): new method - like
18921         mono_runtime_invoke, but you can pass an array of objects.
18922         (mono_remoting_invoke): new arch. independent impl.
18923         (mono_message_invoke): new arch. independent impl.
18924         (mono_runtime_class_init): new arch. independent impl.
18925         (mono_runtime_object_init): new arch. independent impl.
18926
18927 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18928
18929         * metadata.c, object.c, reflection.c: documented the exported
18930         functions.
18931
18932 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18933
18934         * icall.c: simpler code to pass the assembly builder data to corlib.
18935         Implement GetNestedTypes() internalcall.
18936
18937 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18938
18939         * class.c: warn if a type can't be loaded.
18940
18941 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
18942
18943         * image.h: typedef MonoImageOpenStatus
18944         * types.h: removed unused file
18945         
18946 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
18947
18948         * icall.c: Enum_ToObject accepts enum value arguments.
18949
18950 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18951
18952         * class.c: move initialization of properties, events and nested
18953         classes, so that they happen for interfaces, too.
18954
18955 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18956
18957         * icall.c: cleanup some ugly casts in Array_SetValue*.
18958
18959 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18960
18961         * icall.c: the values array fro enums is of the correct type, now.
18962         Implement (correctly) getFullName instead of assQualifiedName for
18963         MonoType.
18964         * reflection.h, reflection.c: added mono_type_get_name ().
18965
18966 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18967
18968         * assembly.c, image.h: for each MonoImage, record from wich assembly
18969         it was loaded.
18970         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
18971         Make Type.Assembly work.
18972
18973 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
18974
18975         * debug-symfile.h: use char* instead of gpointer to avoid
18976         unnecessary casts.
18977
18978         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
18979
18980         * icall.c (ves_icall_InternalExecute): impl. FielSetter
18981         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
18982
18983 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
18984
18985         * icall.c (mono_message_init): impl. (code cleanup)
18986         (ves_icall_InternalExecute): impl. FieldGetter
18987
18988         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
18989         defined we call all (non-static)methods through the vtable. 
18990
18991 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
18992
18993         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
18994         finalizer even though the memory is still referenced (and the chunk of
18995         memory is not freed).
18996
18997 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18998
18999         * assembly.c: fix brokeness.
19000
19001 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19002
19003         * class.c: kill some warnings. Check explicit interface method
19004         implementation also without considering the namespace.
19005         Load also literal strings in static class data.
19006
19007 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19008
19009         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19010         (default_assembly_name_resolver): Make the resolver take the
19011         "base" directory where the assembly was originally defined, so we
19012         can load DLLs that are in the same directory as the assembly that
19013         is being referenced.
19014
19015 2002-03-28  Dick Porter  <dick@ximian.com>
19016
19017         * file-io.h: 
19018         * file-io.c:
19019         * socket-io.c: 
19020         * unicode.h: 
19021         * unicode.c: Warning cleanups
19022
19023 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19024
19025         * object.h, reflection.h: use the correct type instead of MonoObject.
19026
19027 2002-03-28  Martin Baulig  <martin@gnome.org>
19028
19029         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19030         (mono_debug_update_symbol_file): Initialize classes if necessary.
19031
19032 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19033
19034         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19035         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19036
19037 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19038
19039         * assembly.h: fix function prototype.
19040         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19041         * mono-endian.h: use const cast.
19042
19043 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19044
19045         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19046
19047 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19048
19049         * loader.c: don't assert when a typeref can't be loaded, give
19050         a chance to the runtime to trow an exception instead.
19051         * loader.h: fix warning.
19052
19053 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19054
19055         * class.c (mono_class_proxy_vtable): added proxy support
19056
19057 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19058
19059         * icall.c: removed last of PAL calls, added System.Environment
19060         * file-io.h, file-io.c: MonoIO implementation
19061         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19062
19063 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19064
19065         * appdomain.c: do not use the byte marker in ldstr table lookup.
19066         * debug-helpers.c: allow two ':' to separate class and method name.
19067         * object.c: allocate arrays bounds with the GC, too.
19068         * verify: add a few more checks.
19069
19070 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19071
19072         * reflection.c: output also literal strings. Allocate parameter data
19073         with GC_malloc() (thanks, Martin, for catching this!).
19074
19075 2002-03-26  Martin Baulig  <martin@gnome.org>
19076
19077         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19078         include the `this' offset in the `param_offsets'.
19079
19080 2002-03-25  Martin Baulig  <martin@gnome.org>
19081
19082         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19083         mono_debug_get_class() function to get the classes. Added new
19084         relocation types for arrays and strings.
19085         (mono_debug_get_class): New static function to search in all
19086         referenced assemblies for a metadata token.
19087
19088         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19089
19090 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19091
19092         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19093         hold gc-allocated objects. Make the string heap a stream like the
19094         others. Removed duplicated code when writing stream info.
19095         Added asserts to catch possible buffer overflows. Set the sorted map
19096         for tables that need sorting. Added some documentation.
19097
19098 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19099
19100         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19101         for interned strings and vtables.
19102
19103 2002-03-24  Martin Baulig  <martin@gnome.org>
19104
19105         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19106         it in the array since it was created with g_slist_prepend().
19107
19108 2002-03-24  Martin Baulig  <martin@gnome.org>
19109
19110         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19111         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19112         (mono_debug_method_from_token): Renamed to
19113         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19114         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19115
19116         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19117         relocation types.
19118
19119         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19120
19121 2002-03-24  Martin Baulig  <martin@gnome.org>
19122
19123         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19124         (mono_debug_method_from_token): New func.
19125
19126         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19127         New interncall, calls mono_debug_local_type_from_signature().
19128         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19129         calls mono_debug_method_from_token().
19130
19131 2002-03-23  Martin Baulig  <martin@gnome.org>
19132
19133         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19134         specifies the number of bytes to be converted, not the array size.
19135         Return the number of chars, not the number of bytes.
19136         (ves_icall_iconv_get_chars): The `byteCount' argument
19137         specifies the number of bytes to be converted, not the array size.
19138
19139 2002-03-23  Martin Baulig  <martin@gnome.org>
19140
19141         * reflection.h (MonoReflectionSigHelper): New type.
19142
19143         * reflection.c (mono_reflection_sighelper_get_signature_local),
19144         (mono_reflection_sighelper_get_signature_local): New functions.
19145
19146         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19147         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19148         interncalls.
19149
19150 2002-03-23  Martin Baulig  <martin@gnome.org>
19151
19152         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19153         is_writeable is set.
19154         (mono_raw_buffer_update): New function to write the modified map
19155         back to disk.
19156
19157         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19158
19159         * debug-symfile.c (mono_debug_update_symbol_file): Call
19160         mono_raw_buffer_update() when done writing.
19161
19162 2002-03-23  Martin Baulig  <martin@gnome.org>
19163
19164         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19165
19166         * debug-symfile.c: Added support for arguments and local variables.
19167
19168 2002-03-23  Dick Porter  <dick@ximian.com>
19169
19170         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19171         protected by ifdefs, hence breaking the w32 build.
19172
19173 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19174
19175         * object.c: implement is_interned() the right way.
19176
19177 2002-03-21  Martin Baulig  <martin@gnome.org>
19178
19179         * debug-symfile.[ch]: New files to handle debugging information
19180         files. There's also support to dynamically update these symbol
19181         files to include machine dependent information.
19182
19183 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19184
19185         * threads.c (mono_thread_create): new function to create thread
19186         from C
19187
19188 2002-03-20  Martin Baulig  <martin@gnome.org>
19189
19190         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19191         method is a constructor.
19192         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19193         points to ves_icall_InternalInvoke().
19194
19195 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19196
19197         * file-io.c: Flush shouldn't throw exceptions.
19198
19199 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19200
19201         * file-io.c: FileStream flush support; FileSetLength now
19202         restores file pointer.
19203
19204 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19205
19206         * class.c: set image for pointer classes.
19207
19208 2002/03/19  Nick Drochak <ndrochak@gol.com>
19209
19210         * sysmath.c: Forgot one.
19211
19212 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19213
19214         * sysmath.c: Avoid redefining existing names.
19215
19216 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19217
19218         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19219         handled by runtime as icall rather than dllimport from libm.so
19220         * file-io.c, file-io.h: fixed handle argument type.
19221
19222 2002-03-18  Dick Porter  <dick@ximian.com>
19223
19224         * reflection.c (mono_image_get_type_info): rename interface to
19225         iface, because of "#define interface struct" on windows.
19226
19227 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19228
19229         * class.c, class.h: rename and export mono_ptr_class_get().
19230         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19231         * reflection.c, reflection.h, icall.c: better/saner type name
19232         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19233         method signatures.
19234
19235 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19236
19237         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19238
19239         * icall.c (ves_icall_InternalInvoke): impl.
19240
19241 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19242
19243         * reflection.c: output the interface map table, too.
19244
19245 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19246
19247         * class.c (class_compute_field_layout): separate computation of 
19248         static field layout
19249
19250 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19251
19252         * icall.c: added System.Buffer support.
19253         * file-io.c: moved file icalls from PAL to FileStream.
19254
19255 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19256
19257         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19258
19259 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19260
19261         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19262
19263 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19264
19265         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19266
19267 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19268
19269         * debug-helpers.{c,h}: moved here from monograph some useful functions
19270         to locate a method by name/signature in a class or image. Included
19271         also a small and flexible IL disassembler.
19272
19273 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19274
19275         * reflection.c: fixup tokens in methods with small header size, too.
19276
19277 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19278
19279         * object.c (mono_string_to_utf8): remove assert(!error), instead
19280         print a warning. 
19281
19282 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19283
19284         * icall.c: update to the new mono_Array_class_get interface.
19285
19286 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19287
19288         * appdomain.c, object.c: Boehm-GC enable.
19289         * icall.c: make get_data_chunk() support split data requests.
19290         Ensure a class is initialized in more cases. Return only the first
19291         property found in GetProperties() or the compiler gets confused. 
19292         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19293         * reflection.h, reflection.c: add fixup mechanism for field and method
19294         tokens. Initialize assembly->typeref in a single place. Output
19295         properties after events. Support custom attributes for events, too.
19296         Typo fix for paramter custom attrs.
19297
19298 2002-03-07  Martin Baulig  <martin@gnome.org>
19299
19300         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19301
19302 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19303
19304         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19305
19306 2002-03-06  Martin Baulig  <martin@gnome.org>
19307
19308         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19309         non-zero lower bounds. See testcases #F10-#F13.
19310
19311 2002-03-05  Martin Baulig  <martin@gnome.org>
19312
19313         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19314
19315         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19316         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19317         here.
19318         (ves_icall_System_Array_SetValue): Likewise.
19319         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19320         as argument and does the actual work. This function is used when copying a
19321         multi-dimensional array.
19322         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19323         now do all the widening conversions of value types.
19324         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19325
19326 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19327
19328         * class.c: remove some magic numbers and use the smbolic names,
19329         instead. Added init_events() to load event info at class init time.
19330         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19331         and mono_metadata_methods_from_event().
19332         * reflection.h, reflection.c: added support for writing out the evnets
19333         related information.
19334
19335 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19336
19337         * reflection.h, icall.c: use a different method (GetInterfaces)
19338         to gather interface info and add isbyref, isprimitive and
19339         ispointer to the ves_icall_get_type_info() return value.
19340
19341 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19342
19343         * class.h: stared adding support for events.
19344         * icall.c: split find_members implementation. Added debug icall to get
19345         the address of an object.
19346         * reflection.c: handle TypeBuilders in mono_type_get_object().
19347
19348 2002-03-01  Martin Baulig  <martin@gnome.org>
19349
19350         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19351         ArgumentOutOfRangeException(), not an ArgumentException().
19352         (ves_icall_System_Array_GetLowerBound): Likewise.
19353         (ves_icall_System_Array_GetValue): Improved argument checking.
19354         (ves_icall_System_Array_SetValue): Improved argument checking.
19355
19356 2002-03-01  Martin Baulig  <martin@gnome.org>
19357
19358         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19359         called with invalid arguments rather than just dying with g_assert().
19360         (ves_icall_System_Array_SetValue): Likewise.
19361         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19362         raise a NotImplementedException instead.
19363         (ves_icall_System_Array_GetLength): Added argument checking.
19364         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19365
19366 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19367
19368         * object.h (mono_assert): new macros mono_assert and
19369         mono_assert_not_reached
19370
19371 2002-02-28  Martin Baulig  <martin@gnome.org>
19372
19373         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19374         and "System::String::IsInterned" to "System::String::_IsInterned".
19375
19376 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19377
19378         * icall.c: remove hacks for typebuilder. Added icall to create a
19379         modified type from a tybebuilder.
19380         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19381         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19382         to create a backing MonoClass for a TypeBuilder.
19383
19384 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19385
19386         * class.c, class.h: more refactoring of class init.
19387         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19388
19389 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19390
19391         * marshal.c, marshal.h: start of marshaling interface.
19392
19393 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19394
19395         * icall.c: fix order in assembly qualified name icall.
19396
19397 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19398
19399         * class.c: do not free str, since we store it in the hash table.
19400         * reflection.h: add label field to MonoILExceptionInfo.
19401         * reflection.c: handle references to more than one assembly. Handle
19402         case when there isn't a module created in the assembly.
19403
19404 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19405
19406         * class.c: Fix typo. Start refactoring of class init code.
19407
19408 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19409
19410         * appdomain.c: exit with 1 on error.
19411         * class.c: we already have the name in MonoClassField.
19412         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19413         MonoStreamHeader instead of an offset of image->raw_metadata.
19414
19415 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19416
19417         * appdomain.c (mono_init): Be even more descriptive about the error.
19418
19419 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19420
19421         * appdomain.c: give the user an informative message when corlib can't
19422         be loaded.
19423
19424 2002-02-26  Martin Baulig  <martin@gnome.org>
19425
19426         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19427         New icall to get the time zone data.
19428
19429 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19430
19431         * reflection.c: set virtual and raw size of section correctly.
19432         * threads.c: transfer domain information to newly created threads.
19433
19434 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19435
19436         * class.c: when instancing a class in a domain, load the default
19437         vaules for static fields from the constant table. Fix System.Enum to
19438         not be an enum.
19439         * icall.c: implement Object::GetType() internalcall. Implemented
19440         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19441         Fixed checking of binding flags in find_members().
19442         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19443         * reflection.c: handle enumerations when writing to the constant
19444         table. Use a different object cache for types.
19445
19446
19447 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19448
19449         * object.c (mono_object_isinst): fix for arrays
19450
19451         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19452
19453 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19454
19455         * object.c: don't use mprotect ()  and fix intern pool hash table
19456         lookup for big endian systems.
19457
19458 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19459
19460         * icall.c: change type_is_subtype_of () signature.
19461
19462 2002-02-21  Mark Crichton  <crichton@gimp.org>
19463
19464         * rand.c, rand.h: Added random number generator for
19465         System.Security.Cryptography classes.
19466
19467         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19468
19469         * icall.c: Added System.Security.Cryptography calls.
19470
19471 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19472
19473         * class.c, icall.c, metadata.c: better support for pointer types.
19474         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19475         * reflection.c: Add support for getting custom attrs for properties
19476         and simplify some code.
19477
19478 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19479
19480         * icall.c: change getToken () and add custom attribute GetBlob()helper
19481         method.
19482         * reflection.h: add custom attrs array to the reflection builder structures.
19483         * reflection.c: encode and emit custom attributes for all the relevant
19484         reflection objects. Cache fieldref and methodref tokens. Change
19485         mono_image_create_token() interface to take a MonoDynamicAssembly.
19486         More complete custom attributes decoder. Load custom attributes for
19487         Assembly, Field, Method and Constructor objects, too. Make the
19488         returned array an Attribute[] one, not object[]. Added
19489         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19490         custom attribute constructor.
19491
19492 2002-02-20  Dick Porter  <dick@ximian.com>
19493
19494         * icall.c:
19495         * rawbuffer.c:
19496         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19497         problem code out for now).
19498
19499 2002-02-19  Radek Doulik  <rodo@ximian.com>
19500
19501         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19502
19503 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19504
19505         * icall.c: register the GetCustomAttributes method.
19506         * object.c, object.h: add mono_string_new_len ().
19507         * reflection.h, reflection.c: added mono_runtime_invoke(),
19508         mono_install_runtime_invoke(). Added
19509         mono_reflection_get_custom_attrs () to load custom attributes and
19510         create the attribute objects.
19511
19512 2002-02-19  Dick Porter  <dick@ximian.com>
19513         * threads-dummy-types.c:
19514         * threads-dummy-types.h:
19515         * threads-dummy.c:
19516         * threads-dummy.h:
19517         * threads-pthread-types.c:
19518         * threads-pthread-types.h:
19519         * threads-pthread.c:
19520         * threads-pthread.h:  Deleted obsolete files
19521
19522 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19523
19524         * class.c (mono_class_vtable): runtime init the class when we
19525         allocate static class data.
19526
19527         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19528
19529         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19530         and String - but we will need generic marshalling support in the
19531         future. 
19532         (mono_init): set the domain name in a ms compatible way
19533
19534         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19535         String[].
19536
19537 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19538
19539         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19540         for sizes
19541
19542         * appdomain.c (mono_domain_unload): impl.
19543
19544 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19545
19546         * appdomain.c, object.c: fix intern pool implementation.
19547         * class.c: fix alignment code.
19548
19549 2002-02-16  Radek Doulik  <rodo@ximian.com>
19550
19551         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19552         and s2 > s1, just copy lower bytes to be compatible with little
19553         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19554         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19555
19556         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19557         force big_endian to be 1 for big endian machines 
19558         (ves_icall_iconv_new_decoder): ditto
19559
19560 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19561
19562         * socket-io.c (convert_sockopt_level_and_name): If the system
19563         doesn't define SOL_IP or SOL_TCP, get them by hand using
19564         getprotobyname() and caching the values (because this could be a
19565         slow operation).
19566         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19567         Use the appropriate struct when the system does support it. Ie,
19568         not all systems have struct ip_mreqn so use struct ip_mreq when
19569         appropriate.
19570
19571 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19572
19573         * reflection.c: handle finally clauses.
19574
19575 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19576
19577         * socket-io.c: use g_snprintf() instead of snprintf.
19578
19579 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19580
19581         * reflection.c (mono_param_get_objects): Cast second argument to
19582         mono_method_get_param_names to a const char** to silence the
19583         compiler warning.
19584
19585         * appdomain.c (mono_domain_assembly_open): Put parens around the
19586         truth statement in the for-loop.
19587
19588         * unicode.c (iconv_convert): Got rid of a compiler warning about
19589         int i being unused when the system has a new iconv.
19590         (iconv_get_length): Same.
19591
19592         * image.c (load_class_names): Cast the second argument to
19593         g_hash_table_insert() to char* to hush compiler warnings about the
19594         arg being a const.
19595         (mono_image_open): Same here.
19596
19597         * socket-io.c: Don't conditionally include sys/filio.h or
19598         sys/sockio.h here anymore since we now get them from
19599         io-layer/io-layer.h
19600         (inet_pton): If the system doesn't support inet_aton, implement
19601         using inet_addr and also #define INADDR_NONE if it isn't defined
19602         by the system.
19603
19604 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19605
19606         * metadata.c, metadata.h: added function to get packing and size info
19607         of a typedef.
19608         * reflection.h, reflection.c: handle field RVA data. Save info about
19609         the table layout if needed. Assign typedef indexes to all the types
19610         before dumping the info about them to avoid forward reference problems.
19611
19612 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19613
19614         * socket-io.c (convert_sockopt_level_and_name): ifdef
19615         SO_ACCEPTCONN because it is not defined on my system (old debian)
19616
19617 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19618
19619         * opcode.c: use stddef.h to get NULL.
19620
19621 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19622
19623         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19624         for FIONBIO, FIONREAD and SIOCATMARK.
19625         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19626         define INADDR_NONE and besides, inet_addr() is deprecated and
19627         should not be used. Use inet_pton() instead - it also has the
19628         added bonus that it can easily handle IPv6 addresses as well.
19629         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19630
19631 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19632
19633         * decimal.c: remove _MSC_VER conditional.
19634
19635 2002-02-13  Dick Porter  <dick@ximian.com>
19636
19637         * socket-io.c: 
19638         * icall.c: Internal calls for Blocking, Select, Shutdown,
19639         GetSocketOption and SetSocketOption
19640
19641 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19642
19643         * assembly.cs: better resolver: use it instead of some kludgy
19644         code.
19645
19646 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19647
19648         * reflection.c: the best way to speed-up the compiler is to avoid
19649         infinite loops.
19650
19651 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19652
19653         * class.c (mono_class_vtable): changed the object layout
19654         (obj->vtable->class). 
19655         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19656
19657 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19658
19659         * assembly.c: look for assemblies in the assembly dir, too.
19660
19661 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19662
19663         * class.c: fix thinko in mono_class_from_type().
19664
19665 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19666
19667         * exception.h, exception.c: added TypeLoadException.
19668         * object.h, object.c: added mono_array_clone ().
19669         * icall.c: handle throwOnError in AssemblyGetType().
19670         Added Array.Clone().
19671         * opcode.h, opcode.c: use a single value for the opcode val.
19672         Compile fix for non-gcc compilers.
19673
19674 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19675
19676         * opcodes.c, opcodes.h: export interesting info about opcodes.
19677
19678 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19679
19680         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19681         icalls. 
19682
19683         * class.c (class_compute_field_layout): set element_class for enums
19684         (mono_class_create_from_typedef): set element_class for normal classes
19685
19686         * icall.c (ves_icall_System_Enum_get_value): impl.
19687
19688         * class.c (mono_class_create_from_typedef): do not set valuetype
19689         flag for System.ValueType and System.Enum
19690
19691 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19692
19693         * unicode.c (iconv_convert): fix big endian problem.
19694
19695 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19696
19697         * class.c: add asserts if we are ever going to scribble over memory.
19698         * socket-io.c: not all systems have AF_IRDA defined.
19699
19700 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19701
19702         * class.c (class_compute_field_layout): do not consider static
19703         fields to compute alignment
19704
19705 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19706
19707         * appdomain.c (mono_appdomain_get): impl.
19708         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19709
19710 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19711
19712         * icall.c: ignore "file://" prefix when loading an assembly.
19713
19714 2002-01-23  Dick Porter  <dick@ximian.com>
19715
19716         * socket-io.c:
19717         * icall.c:
19718         * Makefile.am: Added socket support
19719
19720 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19721
19722         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19723         code back.  This should return the assemblies that are loaded by
19724         the runtime on behalf of an application domain. 
19725
19726         The current implementation is still broken, it just returns every
19727         assembly loaded, but until we get real applications domain this
19728         will do.
19729
19730 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19731
19732         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19733         AppDomain object.
19734
19735 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19736
19737         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19738         the mono_class_from_name lookup.
19739         (ves_icall_get_parameter_info): ditto.
19740         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19741         method.
19742         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19743
19744 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19745
19746         * class.c: load also nested classes on class init.
19747         System.ValueType instance methods gets passed boxed
19748         values, unless methods in derived classed that get a pointer to the
19749         data.
19750         * icall.c: use better name parsing code in GetType().
19751         * image.c, image.h: add mono_image_loaded ().
19752         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19753         * reflection.c, reflection.h: added mono_reflection_parse_type().
19754
19755 2002-01-22  Veronica De Santis <veron78@interfree.it>
19756
19757         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19758         * threads.c : Added the implementation of internal calls for events
19759         * threads.h : Added prototypes of internal calls for events
19760         
19761 2002-01-21  Radek Doulik  <rodo@ximian.com>
19762
19763         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19764
19765 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19766
19767         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19768         (mono_class_value_size): use min_align
19769
19770 2002-01-20  Dick Porter  <dick@ximian.com>
19771
19772         * threads.h:
19773         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19774         so it compiles on w32.
19775
19776 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19777
19778         * metadata.c (mono_type_stack_size): impl.
19779
19780         * class.c (mono_class_get_field): impl. memberref token
19781
19782 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19783
19784         * icall.h : Added the internal calls mapping for CreateMutex_internal
19785                     and ReleaseMutex_internal.
19786         * threads.h : Added the prototype of mutexes internal calls.
19787         * threads.c : Added the implementations of mutexes internal calls.
19788
19789 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19790
19791         * metaparse.h: removed unused file.
19792         * reflection.c, reflection.h: added stream_data_align () function 
19793         to align data in streams and keep stream aligned. Add support for
19794         exception support in method headers.
19795
19796 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19797
19798         * unicode.c: make iconv_convert () return the number of bytess written
19799         in the output buffer.
19800
19801 2002-01-15  Dick Porter  <dick@ximian.com>
19802         * threads.c: Make the runtime's idea of infinite timeouts coincide
19803         with the class library's
19804
19805         Fix a particularly egregious bug in mono_thread_cleanup(). That
19806         code was so utterly bogus it must have been written on a Monday.
19807
19808 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19809
19810         * reflection.h: add subtypes field to TypeBuilder.
19811         * reflection.c: encode constants for literal fields.
19812         Handle subtypes. Fix user string token (and add a zero byte)
19813         at the end.
19814         
19815 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19816
19817         * class.c (mono_class_init): bug fix: assign slot numbers for
19818         abstract methods.
19819
19820 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19821
19822         * reflection.c: don't try to output a code RVA for abstract methods.
19823         Small fixes for method header format. Output parameter info to the
19824         ParamDef table. Save method overriding info to MethodImpl table.
19825         Fix property support. Allow typedef.extends to be a type in the
19826         building assembly.
19827         * verify.c: fix off-by-one error.
19828
19829 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19830
19831         * class.c: fix mono_class_from_mono_type () for szarray types.
19832         Remove unused cache check in mono_class_from_type_spec().
19833         * icall.c: *type_from_name () functions handle simple arrays and byref.
19834         * reflection.c: handle byref and szarray types. Handle methods without
19835         body (gets P/Invoke compilation working). Handle types and fields in
19836         get_token ().
19837         * reflection.h: add rank to MonoTypeInfo.
19838
19839 2002-01-10  Dick Porter  <dick@ximian.com>
19840
19841         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19842         internal calls
19843
19844 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19845
19846         * icall.c: initialize class in type_from_handle ().
19847         Loop also in parent classes for get_method ().
19848         * reflection.c: properly encode class and valuetype types.
19849         Start on encoding TypeBuilder types. Handle fieldrefs.
19850         Use correct length when registering a user string.
19851         Handle ConstructorBuilder and MonoMethod in get_token ().
19852         Make mono_type_get_object () aware of cached types.
19853         * object.c: back out change to mono_string_new ().
19854
19855 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19856         * object.c: mono_string_new should return a NULL when the string 
19857         passed in is NULL -- not try to deference it.
19858         
19859 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19860
19861         * icall.c: hack to make IsSubType work for TypeBuilders.
19862         * reflection.c: emit constructors before methods.
19863         Retrieve param names in mono_param_get_objects().
19864
19865 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19866
19867         * Makefile.am: fix list of headers and sources so automake 1.5
19868         doesn't complain. Removed \# at end of list.
19869
19870 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19871
19872         * reflection.c: get token for a method ref. Set return type of
19873         constructor to void.
19874         * loader.c: debug message.
19875         * class.c: typo fix.
19876
19877 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19878
19879         * icall.c: fix array init with rank > 1. FindMembers
19880         loops in parent class as well.
19881         * image.c: do not insert nested types in name cache.
19882         * reflection.c: warning fix.
19883         * reflection.h: add override method (for interface impl).
19884
19885 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19886
19887         * metadata.c: fix customattr decoding.
19888
19889 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19890
19891         * rawbuffer.cs: Added native Win32 implementation, avoids using
19892         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19893
19894 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19895
19896         * class.c: make the low-level routines handle the cache.
19897
19898 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19899
19900         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19901
19902 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19903
19904         * class.c: fix mono_array_element_size() for objects.
19905         * class.h, class.c: add properties to MonoClass and load them
19906         at init time.
19907         * icall.c: check with isinst() when assigning a value to an array
19908         instead of requiring the classes to match exactly.
19909         Implemented icall for System.Type::GetType().
19910         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19911         enums. Handle bindingflags when looking for methods and fields.
19912         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19913         and mono_metadata_methods_from_property().
19914         * reflection.h, reflection.c: added structures for propreties,
19915         parameters and enums. Implemented mono_property_get_object() and
19916         mono_param_get_objects().
19917
19918 2001-12-18  Dick Porter  <dick@ximian.com>
19919
19920         * file-io.c: Use mono_string_to_utf16() instead of
19921         mono_string_chars()
19922
19923         * object.c: Added mono_string_to_utf16(), which copies the non
19924         NULL-terminated MonoString into a new double-null-terminated
19925         buffer.
19926
19927 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
19928
19929         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
19930
19931 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
19932
19933         * file-io.c: raise exceptions if handle is invalid.
19934
19935 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
19936
19937         * assembly.c: yet another check for mscorlib.
19938         * class.c, class.h: load nesting info for classes.
19939         * icall.c: many new functions to support the Reflection classes.
19940         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
19941         * reflection.h, reflection.c: mono_image_create_token(),
19942         mono_assembly_get_object(), mono_type_get_object(),
19943         mono_method_get_object(), mono_field_get_object(): methods to return
19944         objects that parallel the C representation of assemblies, types,
19945         methods, fields.
19946
19947 2001-12-11  Dick Porter  <dick@ximian.com>
19948
19949         * icall.c:
19950         * file-io.c: Internal calls for file IO.
19951
19952 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
19953
19954         * tabledefs.h: missing FileAttributes.
19955         * verify.h, verify.c: use is_valid_string () to simplify and check for
19956         valid strings more correctly. Fix warnings and speeling.
19957         Check more tables: Filed, File, ModuleRef, StandAloneSig.
19958         Check code: branches, maxstack, method calls.
19959
19960 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
19961
19962         * object.c (mono_object_allocate): removed static, so that the jit
19963         can allocate value types.
19964
19965         * icall.c (ves_icall_System_DateTime_GetNow): impl.
19966
19967 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19968
19969         * class.c: init enum types right away and register the
19970         token->MonoClass map in mono_class_create_from_typedef ().
19971         * verify.h, verify.c: first cut of the verifier.
19972         * pedump.c: add --verify switch to verify metadata tables.
19973         * tabledefs.h: add some missing enums.
19974
19975 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
19976
19977         * class.c (mono_install_runtime_class_init): impl.
19978         (mono_class_init): renamed mono_class_metadata_init to
19979         mono_class_init, also removed the metadata_inited flag
19980
19981         * object.c (mono_object_isinst): use faster algorithm
19982
19983 2001-11-30  Radek Doulik  <rodo@ximian.com>
19984
19985         * mono-endian.h: reverted last change
19986         added function prototypes
19987
19988         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
19989         add mono-endian.c back
19990
19991         * mono-endian.c: returned back, as Paolo pointed out, it's needed
19992         for unaligned access, I've mistaked it with endianess. I am
19993         sorry.
19994         (mono_read16): fix reverted endianess
19995         (mono_read64): ditto
19996         (mono_read32): ditto
19997
19998 2001-11-30  Dick Porter  <dick@ximian.com>
19999
20000         * exception.c: Implement mono_exception_from_name()
20001
20002 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20003
20004         * metadata.h, metadata.c: remove params_size and locals_size and their
20005         calculation from the metadata code: they are only usefult to the
20006         interp.
20007
20008 2001-11-29  Radek Doulik  <rodo@ximian.com>
20009
20010         * object.c (mono_ldstr): swap bytes here, it's probably not the
20011         best place, but works for me now, I'll redo it once I know mono
20012         better, also note that I add PROT_WRITE and don't reset back, also
20013         note that it's only affects big endians, so x86 should be OK
20014
20015         * mono-endian.h (read16): use just glib macros for both endians
20016
20017         * mono-endian.c: removed as glib macros are used in in
20018         mono-endian.h so we don't need to care about endianess for read
20019         macros as glib does that for us already
20020
20021 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20022
20023         * class.h, class.h: take minimum alignment into consideration so
20024         that the fields of a class remain aligned also when in an array.
20025
20026 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20027
20028         * loader.h, loader.c: add mono_method_get_param_names().
20029         * class.c: 0-init class fields.
20030
20031 2001-11-26  Dick Porter  <dick@ximian.com>
20032
20033         * icall.c:
20034         * threads-types.h:
20035         * threads.c: New file that handles System.Threading on all platforms
20036
20037         * object.c: 
20038         * object.h: Remove the synchronisation struct from MonoObject,
20039         replace it with a pointer that gets initialised on demand
20040
20041         * Makefile.am: Replace all the system-specific threading code with
20042         a single file that uses the new wrapper library
20043
20044 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20045
20046         * class.c, class.h: add mono_install_trampoline() so that the runtime
20047         can register a function to create a trampoline: removes the ugly
20048         requirement that a runtime needed to export arch_create_jit_trampoline.
20049         * object.h, object.c: added mono_install_handler() so that the runtime
20050         can install an handler for exceptions generated in C code (with
20051         mono_raise_exception()). Added C struct for System.Delegate.
20052         * pedump.c: removed arch_create_jit_trampoline.
20053         * reflection.c: some cleanups to allow registering user strings and
20054         later getting a token for methodrefs and fieldrefs before the assembly
20055         is built.
20056         * row-indexes.h: updates and fixes from the new ECMA specs.
20057
20058 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20059
20060         * class.h, class.c: add enum_basetype field to MonoClass.
20061         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20062         to get index in the constant table reated to a field, param or
20063         property.
20064         * reflection.h, reflection.c: handle constructors. Set public-key and
20065         version number of the built assembly to 0.
20066         * row-indexes.h: update from new ECMA spec.
20067
20068 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20069
20070         * class.h, class.c: add a max_interface_id to MonoClass.
20071         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20072         since it's used to do that. Added mono_type_type_from_obj().
20073         Make GetType() return NULL instead of segfaulting if the type was not
20074         found. Handle simple arrays in assQualifiedName.
20075         * object.h: add a struct to represent an Exception.
20076         * reflection.c: output call convention in method signature.
20077         Add code to support P/Invoke methods and fixed offsets for fields.
20078
20079 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20080
20081         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20082         the value.
20083         * icall.c: use mono_array_addr instead of array->vector: fixes the
20084         reflection image writing.
20085         * reflection.c: init call convention byte to 0 in method signature.
20086         Encode the property signature. Don't output property-related methods
20087         twice. Really process the properties for a type (don't cast a field to
20088         a property, my mom always told me that).
20089         Fix 64 bit issues in pointer alignment in a different and more
20090         readable way.
20091
20092 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20093
20094         * loader.h: Removed type class from MonoDefaults, added monotype
20095
20096         * loader.c: Loaded MonoType, removed loading of Type
20097
20098         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20099         and fills in System.Type._impl with a RuntimeTypeHandle rather
20100         than the actual MonoClass *
20101
20102         (ves_icall_type_from_handle): change from type_class to
20103         monotype_class
20104
20105         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20106         implemented
20107
20108         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20109         implemented
20110
20111         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20112
20113         (ves_icall_System_Reflection_Assembly_GetType): implemented
20114
20115         (ves_icall_System_MonoType_assQualifiedName): implemented
20116
20117         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20118
20119 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20120
20121         * assembly.c (mono_assembly_open): Implement a cache for the
20122         assemblies. 
20123
20124         (mono_assembly_close): only destroy the assembly when the last
20125         reference is gone.
20126         
20127 2001-11-09  Dick Porter  <dick@ximian.com>
20128
20129         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20130
20131 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20132
20133         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20134
20135 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20136
20137         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20138         from Martin Weindel.
20139         * object.h: add mono_string_chars ().
20140
20141 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20142
20143         * reflection.c (build_compressed_metadata): Eliminates warnings
20144         and uses 64-bit clean code.
20145
20146         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20147         (mono_type_equal): Change signature to eliminate warnings.
20148
20149 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20150
20151         * icall.c, loader.c: remove the internalcall array constructors.
20152         Changes to match the new MonoArray structure.
20153         * object.h, object.c: an array object doesn't allocate an extra
20154         vector. Add mono_array_new_full () to create jagged arrays easily.
20155
20156 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20157
20158         * metadata.h, metadata.c: add mono_metadata_field_info () to
20159         retreive all the info about a field from vairous tables.
20160         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20161         * class.h, class.c: augment MonoClassField with more info.
20162         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20163         policy and load a field's RVA if needed.
20164
20165 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20166
20167         * class.c (mono_class_metadata_init): create a trampoline for all
20168         virtual functions instead of actually compiling them.
20169
20170 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20171
20172         * class.h, class.c: include name in MonoClassField.
20173         * class.c: fix fundamental type of System.Object and System.String.
20174         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20175         tokens in ldtoken.
20176         * icall.c: remove internalcalls for the Reflection stuff that is now
20177         done in C# code.
20178         * loader.c: mono_field_from_memberref () implementation.
20179         * mono-endian.c: thinko (s/struct/union/g).
20180         * object.c, object.h: make the mono_string_* prototypes actually use
20181         MonoString instead of MonoObject.
20182         * reflection.c, reflection.h: updates for changes in the reflection
20183         code in corlib: we use C structures that map to the actual C# classes.
20184         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20185         fat method header if needed and use the info from the ILGenerator for
20186         methods. Handle fields in types. Misc fixes.
20187
20188 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20189
20190         * class.c (mono_class_metadata_init): bug fix: always allocate
20191         space for static class data
20192
20193 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20194
20195         * class.c (mono_compute_relative_numbering): use relative
20196         numbering to support fast runtime type checks.
20197
20198 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20199
20200         * class.c (mono_class_create_from_typeref): added debugging output
20201         to print class name when MonoDummy is returned instead of real class
20202
20203 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20204
20205         * class.c (mono_class_metadata_init): interface offset table now
20206         contains pointers into the vtable - this is more efficient for the jit
20207
20208 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20209
20210         * class.c (mono_class_metadata_init): use a temporary vtable (the
20211         old algorithm only worked for the interpreter, but not for the jit)
20212
20213 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20214
20215         * loader.c (method_from_memberref): use mono_class_get to get the
20216         class of an array instead of using System.Array directly.
20217         (mono_get_method): also add MEMBERREF methods to the method cache
20218         which usefull for arrays.
20219
20220 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20221
20222         * pedump.c (arch_compile_method): added to compute vtable entry
20223
20224         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20225         number of interfaces.
20226         
20227         * class.h: merged MonoArrayClass into MonoClass
20228
20229         * class.c (mono_class_create_from_typedef): compute the vtable size and
20230         allocate space to include the vtable inside MonoClass
20231         (mono_class_metadata_init): initialize the vtable
20232
20233 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20234
20235         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20236         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20237         * image.c: endian fixes by Laurent Rioux.
20238         * object.h, object.c: rename MonoStringObject to MonoString and
20239         MonoArrayObject to MonoArray. Change some function names to conform to
20240         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20241         guint16* as first argument, so don't use char*.
20242         Provide macros to do the interesting things on arrays in a portable way.
20243         * threads-pthread.c: updates for the API changes and #include <sched.h>
20244         (required for sched_yield()).
20245         * icall.c: updates for the API changes above.
20246         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20247         platforms that need them.
20248
20249 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20250
20251         * class.c: set the correct type for all the fundamental
20252         type when loading the class.
20253
20254 2001-10-05  Dick Porter  <dick@ximian.com>
20255
20256         * threads-pthread.c (pthread_mutex_timedlock): Simple
20257         compatibility version for C libraries that lack this call.
20258
20259 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20260
20261         * class.c: MonoTypes stored in MonoClass are stored as
20262         fundamental MonoTypes when the class represents a
20263         fundamental type (System.Int32, ...).
20264         The TypeHandle return by ldtoken is a MonoType*.
20265         * icall.c: ves_icall_get_data_chunk () write out all the
20266         PE/COFF stuff. Implement ves_icall_define_method (),
20267         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20268         * image.c: properly skip unknown streams.
20269         * loader.h, loader.c: add type_class to mono_defaults.
20270         * metadata.c, metadata.h: export compute_size () as
20271         mono_metadata_compute_size () with a better interface.
20272         Typo and C&P fixes.
20273         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20274         * reflection.c, reflection.h: many cleanups, fixes, output method
20275         signatures and headers, typedef and typeref info, compress the metadata
20276         tables, output all the heap streams, cli header etc.
20277         * row-indexes.h: typo fixes.
20278
20279 2001-10-04  Dick Porter  <dick@ximian.com>
20280
20281         * object.h: Add a synchronisation mutex struct to MonoObject
20282
20283         * object.c (mono_new_object): Initialise the object
20284         synchronisation mutexes
20285
20286         * icall.c: System.Threading.Monitor internal calls
20287         
20288         * threads-pthread.h:
20289         * threads-pthread.c: System.Threading.Monitor internal calls
20290
20291         * threads-types.h: New file, includes the system-specific thread
20292         structures
20293         
20294         * threads-pthread-types.h:
20295         * threads-pthread-types.c: New files, handle pthread-specific
20296         synchronisation types
20297
20298         * threads-dummy-types.h: 
20299         * threads-dummy-types.c: New files of dummy support for
20300         thread-specific types
20301
20302         * metadata.c:
20303         * image.c:
20304         * pedump.c: include mono-endian.h not endian.h
20305         
20306         * Makefile.am: More threads files.
20307         Name mono-endian.h not endian.h
20308
20309 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20310
20311         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20312         stuff and implement a few more bits.
20313         * icall.c: a field needs to be dereferenced twice. Do not use the same
20314         name for two variables in the same scope.
20315         * image.c, image.h: cleanups.
20316
20317 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20318
20319         * class.c (mono_class_metadata_init): bug fix: compute the right size
20320
20321 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20322
20323         * icall.c: implemented some of the Reflection internalcalls.
20324         * image.c, image.h: start writing out the PE/COFF image.
20325         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20326         that does the reverse than decode_blob_size ().
20327         * object.c: use mono_metadata_encode_value (). Move here
20328         temporary implementation of mono_string_to_utf8 ().
20329         * rawbuffer.c: make malloc_map static.
20330
20331 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20332
20333         * metadata.c: fix type comparison for arrays.
20334         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20335         Added a couple of new classes to monodefaults.
20336         * icall.c: added a couple of Reflection-related internalcalls.
20337         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20338         Added a byval_arg MonoType to MonoClass.
20339
20340 2001-09-28  Dick Porter  <dick@ximian.com>
20341
20342         * icall.c:
20343         * threads-pthread.h: 
20344         * threads-pthread.c: Implemented internal calls for
20345         LocalDataStoreSlot operations.  Applied mutexes around all shared
20346         data.  Reworked the thread creation and Start() operations to
20347         avoid a race condition.
20348         
20349         * threads-dummy.h:
20350         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20351
20352 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20353
20354         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20355
20356 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20357
20358         * class.c, loader.c: warn and return NULL instead of erroring out.
20359         * icall.c: added System.AppDomain::getCurDomain().
20360         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20361
20362 2001-09-25  Dick Porter  <dick@ximian.com>
20363
20364         * threads-pthread.h:
20365         * threads-pthread.c: Implemented timed thread joining and added
20366         System.Threading.Thread::Join_internal internal call
20367
20368         * icall.c: Added System.Threading.Thread::Join_internal internal call
20369
20370         * threads-dummy.h:
20371         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20372
20373 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20374
20375         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20376         mono_string_intern () to implement the semantics of the ldstr opcode
20377         and the interning of System.Strings.
20378         * icall.c: provide hooks to make String::IsIntern and String::Intern
20379         internalcalls.
20380
20381 2001-09-23  Dick Porter  <dick@ximian.com>
20382
20383         * threads-dummy.c: 
20384         * threads-dummy.h: New files of dummy threading routines
20385
20386         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20387         support code based on system specifics
20388
20389         Rename PTHREAD_LIBS to THREAD_LIBS
20390         
20391 2001-09-23  Dick Porter  <dick@ximian.com>
20392
20393         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20394         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20395         internal calls.
20396         (mono_thread_init): Set up a Thread object instance to return when
20397         the main thread calls Thread.CurrentThread
20398         (mono_thread_cleanup): Wait for all subthreads to exit
20399
20400         * icall.c: New internal calls for System.Threading.Thread::Sleep
20401         (including Schedule) and CurrentThread
20402
20403         * threads.h: New file, to insulate thread-specific stuff from the
20404         rest of the code
20405
20406 2001-09-21  Dick Porter  <dick@ximian.com>
20407
20408         * threads-pthread.h: 
20409         * threads-pthread.c: New file, for handling pthreads-style
20410         threading support.  Start() now starts a new thread and executes
20411         the ThreadStart delegate instance.
20412
20413         * icall.c: Added the internalcall for
20414         System.Threading.Thread::Start_internal
20415
20416         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20417
20418 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20419
20420         * loader.c: work around the different signatures for delegates
20421         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20422
20423 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20424
20425         * class.h, class.c: add mono_class_get_field_from_name ().
20426         * *: Fix C comments and other ANSI C issues.
20427
20428 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20429
20430         * endian.h, assembly.c: fix some endianness issues.
20431
20432 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20433
20434         * loader.h, load.c: add delegate_class to mono_defaults.
20435         Handle runtime provided methods in mono_get_method ().
20436
20437 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20438
20439         * loader.c (mono_get_method): use pinvoke for internal call
20440
20441         * icall.c: use pinvoke for internal call
20442
20443         * loader.c (method_from_memberref): set the method name
20444
20445 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20446
20447         * metadata.c: help the compiler generate better code for
20448         mono_class_from_mono_type ().
20449
20450 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20451
20452         * class.c (mono_class_metadata_init): delayed computing of the
20453         class size to mono_class_metadata_init ()
20454
20455 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20456
20457         * class.c, class.h: add an interfaces member to MonoClass.
20458         * image.c, image.h: add assembly_name field to MonoImage
20459         from the assembly table.
20460         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20461
20462 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20463
20464         * class.c: Handle Array in mono_class_from_mono_type ().
20465         * metadata.c, pedump.c: some endian fixes.
20466
20467 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20468
20469         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20470         * metadata.c: fix small problem introduced with the latest commit.
20471
20472 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20473
20474         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20475         We don't need a MonoMetadata pointer anymore to compare signatures in
20476         mono_metadata_signature_equal (), update callers.
20477         Reduced memory usage an number of allocations for MonoMethodHeader and
20478         MonoMethodSignature.
20479
20480 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20481
20482         * metadata.c: added compare for szarray.
20483
20484 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20485
20486         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20487         and add a couple more types to it and mono_defaults. Give an hint on
20488         classes that need implementing in our corlib and are referenced
20489         in mscorlib.
20490
20491 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20492
20493         * class.h, class.c: keep track if a class is also an Enum.
20494         * loader.c: Implement a couple more types for use in libffi
20495         marshalling. Gives better diagnostics when failing to dlopen
20496         a library. Set method->klass for P/Invoke methods, too.
20497
20498 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20499
20500         * class.c, class.h: add a MonoType this_arg to MonoClass that
20501         represents a pointer to an object of the class' type that
20502         can be used by the interpreter and later the type cache.
20503         Add best guess alignment info for valuetype objects.
20504
20505 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20506
20507         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20508         into MonoType: one less level of indirection and allocation and
20509         simplifies quite a bit of code. Added cache for MonoTypes that are
20510         used frequently, so that we don't need to allocate them all the time.
20511
20512 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20513
20514         * class.c (mono_class_create_from_typedef): System.Enum is also a
20515         value type, although it does not derive from System.ValueType
20516         (maybe a bug in the ms compiler?)
20517
20518         * metadata.c (mono_type_size): return the right size for value types
20519
20520         * loader.c (mono_get_method): only initialize method header if not abstract
20521
20522         * class.c (mono_class_from_mono_type): use mono_default values. 
20523
20524 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20525
20526         * *: use MonoClass pointers instead of <type_tokens>
20527         
20528         * class.h: new flag: metadata_inited.
20529
20530         * class.c (mono_class_metadata_init): impl.
20531         (mono_class_instance_size): impl.
20532         (mono_class_data_size): impl.
20533
20534 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20535
20536         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20537         MonoClass now has the name and name_space fields. 
20538         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20539         mono_get_method () takes and optional MonoClass as argument.
20540         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20541         instead that takes advantage of a map from class names to typedef
20542         tokens in MonoImage.
20543
20544 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20545
20546         * metadata.c: zero is not a valid alignment boundary.
20547         Merge MONO_TYPE_VOID in default decoding code.
20548
20549 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20550
20551         * image.h: merged MonoMetadata into MonoImage
20552
20553         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20554         identify the type of elements.
20555
20556 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20557
20558         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20559         * cil-coff.h: split MonoMSDOSHeader and add size info.
20560         * image.c: add some consistency checks.
20561         * metadata.c: fix row size computation: one programmer
20562         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20563         add explanation for the locator routine.
20564         Fix decoding of size in method header.
20565         
20566 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20567
20568         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20569         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20570         function from gnome-libs.  This uses the right path separator
20571         based on the OS, and also works around a bug in some systems where
20572         a double slash is not allowed. 
20573         (default_assembly_name_resolver): Use g_concat_dir_and_file
20574         (mono_assembly_open): ditto.
20575
20576 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20577
20578         * metadata.c (mono_metadata_signature_equal): impl.
20579
20580         * *: void is now a realy MonoType (instead of using NULL)
20581         
20582         * metadata.c (do_mono_metadata_parse_type): use
20583         mono_metadata_parse_type to parse void value.
20584
20585 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20586
20587         * metadata.c, metadata.h: in the signature and method header store
20588         only the space required for holding the loca vars and incoming arguments.
20589
20590 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20591
20592         * metadata.c (do_mono_metadata_parse_type): treat void like any
20593         other type (instead of assigning NULL);
20594
20595 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20596
20597         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20598
20599 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20600
20601         * image.c (do_mono_image_open): added a cache for arrays.
20602
20603 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20604
20605         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20606         decode a single column from a row in a metadata table and changes
20607         to take advantage of it in the typedef locator (gives a nice speed up).
20608         Store offset info for function params.
20609
20610 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20611
20612         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20613
20614 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20615
20616         * assembly.c: how could mono_assembly_close () had ever worked?
20617         * metadata.c, metadata.h: provide offset info for local vars.
20618         Implement mono_type_size () to take care of alignment as well
20619         as size (it was mono_field_type_size in cli/class.c before).
20620
20621 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20622
20623         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20624
20625         * assembly.h (CORLIB_NAME): set to corlib.dll
20626
20627         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20628
20629 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20630
20631         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20632         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20633         tokentype.h: massive namespace cleanup.
20634
20635 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20636
20637         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20638
20639 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20640
20641         * metadata.c (mono_metadata_free_type): added check for type !=
20642         NULL (void) before calling mono_metadata_free_type()
20643
20644 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20645
20646         * metadata.h, row_indexes.h: added header with enumerations to use
20647         to index in the columns from tables in metadata and to decode coded
20648         tokens: we should start using this instead of embedding magic numbers
20649         all over the code.
20650
20651 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20652
20653         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20654         Move metadata_t info from cli_image_info_t to MonoImage, where
20655         it's easily accessible. Changed all the uses accordingly.
20656         Added the method and class caches to MonoImage.
20657         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20658         and mono_metadata_decode_value () signature to be more consistent
20659         with the other parse functions (and simplify code). Taken advantage
20660         of zero-length array allocation with GCC. Removed reduntant (and
20661         wrong) MonoFieldType struct and use MonoParam instead. Changed
20662         mono_metadata_parse_field_type () to use common code for parsing.
20663         Added mono_metadata_typedef_from_field () and
20664         mono_metadata_typedef_from_method () to lookup a typedef index from a
20665         field or method token.
20666         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20667
20668 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20669
20670         * metadata.c (mono_metadata_parse_field_type): Implement. 
20671         (do_mono_metadata_parse_type): Split engine from
20672         mono_metadata_parse_type, so that we can create smaller structures
20673         for things that just have one pointer to the MonoType (look at
20674         the MonoFieldType)
20675
20676 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20677
20678         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20679         as Jan Gray found out, it is incorrect. 
20680
20681 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20682
20683         * assembly.c: Implement asssembly loading.  This loads an image
20684         and loads all the referenced assemblies.  Come to think of it, we
20685         could always do lazy loading of the assemblies. 
20686
20687         * image.c (mono_image_open): Keep loaded images in a hashtable.
20688
20689         * image.h (MonoImage): Add reference count.
20690
20691 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20692
20693         * assembly.c (mono_assembly_open): Keep track of the file name in
20694         case the assembly has no ASSEMBLY table.
20695
20696         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20697         from get.c here.
20698
20699 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20700
20701         * metadata.c, metadata.h: decode local vars in method header
20702         parse function. Change callers accordingly.
20703
20704 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20705
20706         * metadata.h, cil-coff.h: protect against multiple inclusion.
20707         Added some new structures to hold information decoded from metadata:
20708         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20709         and relevant decoding/free functions.
20710         * metadata.c: implement decoding functions. Add warning for out of bounds
20711         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20712         all the info about a method signature and invocation. Remove check on
20713         uninitialized local var in parse_mh() and fix memory leak.
20714
20715 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20716
20717         * metadata.h: More macros.
20718
20719         * tokentype.h: New file.
20720
20721 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20722
20723         * assembly.c: added a consistency check and initialize
20724         some structures with g_new0().
20725         * metadata.c: fixed a couple more bugs in table size computation
20726         and add other checks for out-of bound access to metadata.
20727
20728 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20729
20730         * metatada.c: fix bugs computing table sizes. Spew a
20731         warning when index in string heap is out of bounds.
20732
20733 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20734
20735         * metadata.h: Add a couple of macros to manipulate tokens. 
20736
20737 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20738
20739         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20740         cli_section_tables).
20741
20742 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20743
20744         * metadata.c (mono_metadata_user_string): New function, provides
20745         access to the UserString heap. 
20746
20747 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20748
20749         * metadata.c: Add inline documentation.
20750
20751 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20752
20753         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20754         files. 
20755
20756 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20757
20758         * typeattr.h: New file, TypeAttribute flags. 
20759
20760 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20761
20762         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20763         mono_assembly_ensure_section): Section loading code.
20764         (load_section_tables): Load the sections.
20765
20766         * mono/metadata/metadata.c (mono_metadata_locate_token,
20767         mono_metadata_locate): Functions to locate the information
20768         definition given a token or a table and an index.
20769         (mono_metadata_compute_table_bases): New.
20770         (compute_size): New function to compute the sizes of the various
20771         tables.
20772
20773         * mono/metadata/metadata.h: Finish listing the different index
20774         types. 
20775
20776         * mono/metadata/pedump.c: Improve to dump new information.
20777
20778 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20779
20780         * mono/metadata/metadata.c: Entered all the tables matching
20781         Beta2. 
20782
20783         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20784
20785
20786