In corlib/System.Runtime.InteropServices:
[mono.git] / mono / metadata / ChangeLog
1 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2
3         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
4         circular references among dynamic methods. Fixes #81091.
5
6         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
7
8 2007-03-09  Martin Baulig  <martin@ximian.com>
9
10         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
11
12 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
13
14         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
15         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
16         
17         Code is contributed under MIT/X11 license.
18         
19 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
20
21         * loader.c: Reapply patch for bug #79424.
22
23 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
24
25         * metadata.c (mono_type_to_unmanaged): Only convert object to
26         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
27
28 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
29
30         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
31         (and incorrectly set) is_reference field from MonoGenericInst.
32
33 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
34
35         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
36         a little earlier.
37
38         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
39
40         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
41
42 2007-03-05  Miguel de Icaza  <miguel@novell.com>
43
44         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
45         FileOptions.1 value to mean "temporary", map that to
46         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
47
48         Fixes 80688
49
50 2007-03-03  Marek Habersack  <mhabersack@novell.com>
51
52         * appdomain.c: implement MS .Net style shadow copying. Copies of
53         the assemblies are made in a subdirectory of the dynamic base
54         directory, the assembly names are preserved.
55         Copy .mdb and .config files along with the assemblies being shadowed.
56
57 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
58
59         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
60         (emit_marshal_handleref): Ditto.
61
62         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
63         on Visual C++. Fixes #80671.
64
65 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
66
67         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
68         for clone operations.
69
70 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
71
72         * marshal.c: Fix warnings.
73
74 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
75
76         * loader.c: allow case-insensitive matching of the dll name
77         in dllmap handling when prefixed with "i:".
78
79 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
80
81         * threads.c: Fix #ifdef for dummy_apc function for VS.
82
83 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
84
85         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
86
87 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
88         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
89         giving precedence to the methods with a fully qualified name
90         (InterfaceName.MethodName) when building the interface sections
91         of the vtable.
92
93 2007-02-16  Dick Porter  <dick@ximian.com>
94
95         * threadpool.c (append_job): Fix fast-path array handling, so it's
96         less likely the array will grow exponentially when the load is
97         heavy.
98
99 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
100
101         * metadata-internals.h, loader.c: fix dllmap lookup order
102         for non-function maps, too, and prepare for fallback code.
103
104 2007-02-12  Robert Jordan  <robertj@gmx.net>
105
106         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
107         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
108         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
109         GlobalFree. Fixes a part of bug #77075.
110
111 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
112
113         * loader.c: implemented typedef parent in field memberref.
114
115 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
116
117         * marshal.c: Fix warnings and remember to call Release on
118         IUnknown of RCW.
119         
120         Code is contributed under MIT/X11 license.
121
122 2007-02-10  Miguel de Icaza  <miguel@novell.com>
123
124         * class-internals.h: Add MonoHandleRef definition, and
125         handleref_class to mono_defaults. 
126
127         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
128         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
129
130         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
131         (do nothing on this stage)
132         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
133         (emit_marshal_handleref): New method, used for argument handling
134         of HandleRefs. 
135
136 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
137
138         * class.c (mono_class_setup_parent): Lazily init com types.
139         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
140         init com types.
141         * object.c (mono_remote_class_vtable): Lazily init com types.
142         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
143         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
144         * domain-internals.h: Expose mono_init_com_types.
145         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
146         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
147         Add support for COM Callable Wrapper marshalling.
148         * marshal.h: Add icall definitions.
149         * gc.c: Handle freeing of CCWs in finalizer code.
150         
151         Code is contributed under MIT/X11 license.
152
153 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
154
155         * reflection.c: changed all the signature encoding code to use
156         a variable-sized buffer.
157
158 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
159
160         * marshal.c: locking fixes: never take the loader lock
161         or other runtime locks when holding the marshal lock
162         (fixes bug#80664).
163
164 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
165
166         * marshal.c: make the delegate function pointer mapping
167         work for the moving GC.
168
169 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
170
171         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
172         for bug #80618.
173
174 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
175
176         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
177         gmodule.
178
179 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
180
181         * threadpool.c: made the code moving-GC safe.
182
183 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
184
185         * assembly.c, boehm-gc.c, class-internals.h, class.c,
186         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
187         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
188         warning cleanup.
189         * reflection.c: warning cleanup, some threading and moving GC fixes.
190
191 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
192
193         * class.c, loader.c: create the needed Set/Get/Address array methods
194         as well as the .ctors in mono_class_init (), fixes bug #80567.
195
196 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
197
198         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
199         we doesn't decrease its alignment. Should fix the sparc build.
200
201 2007-01-24  Dick Porter  <dick@ximian.com>
202
203         * socket-io.c
204         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
205         Create the returned object if we need to ignore an unsupported
206         socket option.  Fixes a segfault reported by Atsushi.
207
208 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
209
210         * class.c, object.c: restrict GC-tracked fields to
211         UIntPtr fields used inside corlib, so we provide better
212         type info to the GC and also allow broken packing as in
213         bug #80580.
214
215 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
216
217         * sgen-gc.c: removed duplicated function.
218
219 2007-01-19  Miguel de Icaza  <miguel@novell.com>
220
221         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
222         value that means that the value is not supported, but that we
223         should not return a failure, but instead report this as a
224         successful operation.
225
226 2007-01-19  Raja R Harinath  <rharinath@novell.com>
227
228         Fix tests/bug79956.2.il
229         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
230         (mono_generic_class_get_class): If the generic definition in an
231         enum, copy over other fields related to it.
232
233 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
234
235         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
236         genericinst enums (bug #79215).
237
238 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
239         * class.c: Fix bug 80307.
240
241 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
242
243         * image.c: if the file table is not present, try to load
244         all the modules, since we don't have info about them
245         having or not metadata (bug #80517).
246         * assembly.c: allow mono_assembly_load_references () to
247         work for netmodules.
248
249 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
250
251         * image.c, metadata-internals.h, object.c: execute module
252         cctors when running on the 2 runtime if present (bug #80487).
253
254 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
255
256         * icall.c: optimized InitializeArray() on bigendian.
257
258 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
259
260         * icall.c: fix for the broken ARM FPA double format.
261
262 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
263
264         * icall.c: handle endian issues for r4 and r8 types, too, in
265         the InitializeArray() icall.
266
267 2007-01-15  Miguel de Icaza  <miguel@novell.com>
268
269         * loader.c (mono_loader_error_prepare_exception): Clear the error
270         once we have extracted the information from it, do this before we
271         call into the JIT's class loading mechanisms.
272
273         * object.c (mono_class_create_runtime_vtable): Do not clear the
274         loader error before calling mono_class_get_exception_for_failure
275         as the loader error is needed inside
276         mono_class_get_exception_for_failure to throw the error (thinko).
277
278         Fixes #80521
279         
280 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
281
282         * reflection.c: align fields rva data so it's faster to load at
283         runtime.
284
285 2007-01-12  Raja R Harinath  <rharinath@novell.com>
286
287         Prepare to simplify GenericMethod handling.
288         * class-internals.h (mono_method_get_context): New accessor function.
289         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
290         rather than directly accessing '->context' field.
291
292         * class-internals.h (_MonoGenericParam.method): Move ...
293         (_MonoGenericContainer): ... here.  Add into union with klass field.
294         * class.c, icall.c, loader.c, metadata.c, reflection.c:
295         Update to changes.
296
297 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
298
299         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
300         the wrapper type enum and reduce relocations.
301
302 2007-01-12  Raja R Harinath  <rharinath@novell.com>
303
304         * reflection.c (inflate_mono_method): Reuse method instantiation
305         from the generic method, if available.
306
307 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
308
309         * marshal.c (emit_marshal_variant): Fix conv_arg
310         type in last commit, based on whether parameter is byref.
311         
312 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
313
314         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
315         marshalling.
316         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
317         MONO_TYPE_OBJECT back for VARIANT support.
318
319 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
320
321         * marshal.c, marshal.h, icall-def.h: Implement 
322         Marshal.ReAllocCoTaskMem.
323
324 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
325
326         * marshal.c: memory retention fixes: use the proper
327         image cache for runtime_invoke method lookups.
328
329 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
330
331         * mempool.c: added code to help debug mempool allocations.
332
333 2007-01-11  Dick Porter  <dick@ximian.com>
334
335         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
336         support (experimenting with faking it with IP_MTU_DISCOVER for
337         systems that don't have IP_DONTFRAGMENT.)
338         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
339         icall.
340
341         * icall-def.h: new System.Net.Sockets.Disconnect icall.
342
343         * socket-io.h: Add new fields to MonoSocketAsyncResult
344         corresponding to the new ones in Socket.cs.
345
346 2007-01-11  Raja R Harinath  <rharinath@novell.com>
347
348         Fix IronPython regression mentioned in #80249
349         * metadata.c (do_mono_metadata_parse_generic_class): Clear
350         'cached_context' field, since it may have been initialized as a
351         side-effect of metadata parsing.
352
353         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
354         (_MonoGenericClass.cached_class): Move here and rename from lone
355         remaining field of ...
356         (_MonoInflatedGenericClass): ... this.  Remove.
357         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
358         to changes.
359
360         Fix mcs/tests/test-128.cs regression.
361         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
362         2007-01-10 change below.
363         [MONO_TYPE_OBJECT]: Recurse into array case.
364
365 2007-01-11  Raja R Harinath  <harinath@gmail.com>
366
367         * class-internals.h (mono_get_inflated_generic_class): Remove.
368         * class.c (mono_get_inflated_generic_class): Remove.
369         (mono_generic_class_get_class): Rename from
370         mono_class_create_generic.
371         (mono_class_from_mono_type) [GENERICINST]: Use it.
372         * reflection.c, metadata.c: Update to changes.  Use
373         'mono_class_from_mono_type'.
374
375 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
376
377         * reflection.c: use passed type when encoding an array element
378         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
379
380 2007-01-09  Robert Jordan  <robertj@gmx.net>
381
382         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
383         result arguments (someDelegate.EndInvoke (unrelatedAres)).
384         Fixes bug #80392.
385
386 2007-01-09  Raja R Harinath  <rharinath@novell.com>
387
388         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
389
390         * object.c (set_value): Avoid aliasing between type->data.klass
391         and type->data.generic_class.
392
393         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
394
395 2007-01-08  Raja R Harinath  <rharinath@novell.com>
396
397         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
398         between type->data.klass and type->data.generic_class.
399
400 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
401
402         * marshal.c: In MS.NET, StringBuilder objects are not copied by
403         value in out parameters.
404
405 2007-01-08  Raja R Harinath  <rharinath@novell.com>
406
407         Simplify invariant for MonoGenericClass::klass field.
408         * class.c (mono_class_create_generic): Verify 'klass' is null.
409         * metadata.c (do_mono_metadata_parse_generic_class): Don't
410         initialize 'klass' field.
411
412 2007-01-05  Raja R Harinath  <rharinath@novell.com>
413
414         Ongoing work to avoid redundant data and simplify invariants.
415         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
416         'generic_class', and change type to a GenericInst.
417         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
418         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
419
420 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
421
422         * class.c : skip io-layer under PLATFORM_WIN32.
423
424 2007-01-03  Tor Lillqvist  <tml@novell.com>
425
426         Fix #80305: In a bundled executable, look in the bundled exe
427         assembly to determine the runtime version. Add the possibility to
428         bundle also the machine.config file.
429         
430         * assembly.c (mono_assembly_open_from_bundle): Make
431         non-static. Allow being called even if we have no bundled
432         assemblies, and return NULL right away in that case.
433
434         * domain-internals.h: Declare mono_assembly_open_from_bundle()
435         here.
436
437         * domain.c (app_config_parse): Take an assembly exe file name as
438         parameter instead of a config file name. Check for a bundled
439         config file for that assembly by calling
440         mono_config_string_for_assembly_file() (see below) before looking
441         for one in the file system.
442         (get_runtimes_from_exe): Corrsponding change to call of
443         app_config_parse().
444         (get_runtimes_from_exe): Check for bundled assembly exe file first
445         by calling mono_assembly_open_from_bundle(). If no bundled
446         assembly exe file is found, call mono_image_open() as before to
447         look it up in the file system.
448
449         * mono-config.c: Add variable bundled_machinec_onfig.
450         (mono_config_string_for_assembly_file): New function.
451         (mono_config_for_assembly): Move code snippet that looks for a
452         bundled assembly .config file into the above new function. Call
453         it.
454         (mono_register_machine_config, mono_get_machine_config): New
455         functions to set and retrieve
456
457         * assembly.h: Declare mono_register_machine_config().
458
459         * mono-config.h: Declare mono_get_machine_config() and
460         mono_config_string_for_assembly_file().
461
462         * icall.c: No declaration of environ necessary on Win32. It is
463         declared (as a macro expanding to a function call) in stdlib.h.
464         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
465         New internal mono function. Returns the value of
466         mono_get_machine_config() as a Mono string.
467
468         * icall-def.h: Add get_bundled_machine_config().
469
470 2007-01-04  Raja R Harinath  <rharinath@novell.com>
471
472         Remove redundant field
473         * class-internals.h (_MonoGenericContext.container): Remove field.
474         * loader.c (mono_method_get_signature_full): Don't parse a
475         "container" for a signature parse when the signature is inflated
476         immediately.
477         (method_from_methodspec): Likewise, for a generic_inst.
478         * class.c, metadata.c, reflection.c: Update to changes.
479
480 2006-01-04  Raja R Harinath  <rharinath@novell.com>
481
482         * class-internals.h (_MonoGenericClass): Rename 'context' field to
483         'cached_context', and change semantics -- it starts off NULL, and
484         is initialized on demand.
485         * class.c (mono_generic_class_get_context): New accessor to
486         replace 'context' field accesses.
487         (mono_class_get_context): New helper.
488         (*): Update to changes.
489         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
490
491 2007-01-03  Miguel de Icaza  <miguel@novell.com>
492
493         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
494         before the memcpy.   Fixes Marshal2 regression.
495
496 2007-01-02  Jb Evain  <jbevain@gmail.com>
497
498         * blob.h: add a MONO_TYPE_ENUM definition
499         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
500         fix the encoding of arrays of enums in custom attributes.
501
502         Fixes #79666.
503
504 2007-01-01  Miguel de Icaza  <miguel@novell.com>
505
506         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
507         string is null terminated, but only cut the string short if it
508         overflows the buffer.   
509         
510         (mono_string_to_byvalstr): Also fix this routine.   The code here
511         was not properly terminating a string (it was only terminated
512         because of the previous catch-all memset). 
513
514         I left the memset, because I do not know if applications expect
515         the runtime to clear this region. 
516
517         Fixes #79944.
518
519         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
520         Clear the error before returning to unmanaged code to prevent the
521         runtime from being confused later on (fixes  80420).
522         (ves_icall_type_from_name): Always call mono_loader_clear_error
523         after parsing a type that could have failed.
524         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
525
526         * loader.c (mono_loader_clear_error): Fix indentation.
527
528 2006-12-28  Martin Baulig  <martin@ximian.com>
529
530         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
531
532 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
533
534         * reflection.c: patch from Rolf Bjarne Kvinge to fix
535         getting a token for an EnumBuilder.
536
537 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
538
539         * reflection.c: be more careful in case resource generation
540         fails to create the data array.
541
542 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
543
544         * sgen-gc.c: write barrier for clone and fix unregister handles.
545
546 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
547
548         * reflection.c: some fixes needed in the generics code for the moving GC.
549
550 2006-12-22  Robert Jordan  <robertj@gmx.net>
551
552         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
553         account. Fixes bug #80299.
554
555 2006-12-21  Raja R Harinath  <rharinath@novell.com>
556
557         Fix WaitHandle usage in delegates.
558         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
559         * object.c (mono_wait_handle_new): Use the property set method to
560         initialize the handle.
561         (mono_wait_handle_get_handle): New.
562         * threadpool.c (mono_async_invoke): Use it.
563         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
564         Likewise.
565         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
566
567 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
568
569         * marshal.c (emit_marshal): Call emit_marshal_variant and
570         emit_marshal_com_interface when applicable.
571         (emit_marshal_variant, emit_marshal_com_interface): Add
572         methods for this case and remove if's from emit_marshal_object.
573         
574 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
575
576         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
577
578 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
579
580         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
581         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
582         and GlobalFree on Windows. Remove FIXME.
583
584 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
585
586         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
587         implementation for managed objects.
588
589 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
590
591         * object.c: implemented code to be used for checking
592         that no reference field overlaps with non-references.
593
594 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
595
596         * threadpool.c: fix queue code to be compatible with the
597         moving GC.
598
599 2006-12-18  Miguel de Icaza  <miguel@novell.com>
600
601         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
602         in structures by throwing ArgumentNullException.
603
604         (emit_marshal_safehandle): Also when they are null parameters.
605
606         (emit_marshal_safehandle): Add support for ref
607         SafeHandles parameters
608
609 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
610
611         * profiler.c: updated to use the mono-dl API instead of
612         gmodule.
613
614 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
615
616         * profiler.c: updated to use the mono-dl dynamic loading
617         API instead of gmodule.
618
619 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
620
621         * profiler.c: use readlink, older versions of glib don't have
622         g_file_read_link ().
623
624 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
625
626         * profiler.c: try to detect the path to mono if libc fails to provide
627         a useful name (bug #80286).
628
629 2006-12-16  Raja R Harinath  <rharinath@novell.com>
630
631         Fix #80242
632         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
633         instance, use the generic type definition instead.
634         (ves_icall_Type_GetNestedTypes): Likewise.
635         * class.c (mono_class_create_generic): Always set the
636         nested_classes of a generic instance to NULL, even if the generic
637         type definition has nested types.
638
639 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
640
641         * marshal.c (mono_string_from_bstr): Revert previous Windows change
642         and fix on Linux.
643         
644 2006-12-15  Miguel de Icaza  <miguel@novell.com>
645
646         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
647         my arguments were in the wrong order.   I also fixed the Windows
648         version which seems to have had the same issue.
649
650         (mono_free_bstr): On Unix, this is g_free.
651         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
652         conversions (for the tests in corlib to pass).
653
654 2006-12-14  Miguel de Icaza  <miguel@novell.com>
655
656         * marshal.c (emit_ptr_to_object_conv): For now, ignore
657         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
658         exception if a ref SafeHandle in a struct has changed).
659         
660         (emit_struct_conv): Do not perform layout checks for classes
661         derived from SafeHandle, as those are specially handled. 
662
663         (emit_object_to_ptr_conv): Add support for
664         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
665
666         (emit_marshal_safehandle): Implement conversion of return values
667         of safehandles (MARSHAL_ACTION_CONV_RESULT).
668         
669         * threads.c: WaitHandle now is compiled with two different handles
670         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
671         for 2.0.
672         
673         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
674         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
675         these routines to cope with both kinds of fields.
676
677 2006-12-12  Miguel de Icaza  <miguel@novell.com>
678
679         * metadata.c (mono_type_to_unmanaged): Handle the case where
680         type->data.klass is a SafeHandle, and in that case, return the
681         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
682         MONO_MARSHAL_CONV_SAFEHANDLE. 
683
684 2006-12-11  Miguel de Icaza  <miguel@novell.com>
685
686         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
687         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
688         calling emit_marshal_object.
689
690         (emit_marshal_safehandle): Implement marshalling of
691         SafeHandle parameters (no ref support yet).
692
693         (MarshalAction): Document the defines as I implement
694         them for SafeHandle.
695
696         (emit_marshal_object): indentation police.
697
698         * class-internals.h: Define MonoSafeHandle.
699         Add safehandle_class to MonoDefaults type.
700
701         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
702         list of classes to check for fields. 
703
704         * domain.c (mono_init_internal): Add SafeHandle to the list of
705         mono_defaults loaded.
706
707 2006-12-15  Raja R Harinath  <rharinath@novell.com>
708
709         Fix #80253
710         * reflection.c (mono_reflection_bind_generic_parameters): If the
711         generic type definition is a type builder, ensure that it is fully
712         initialized before instantiating it.  Kill some dead code.
713
714 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
715
716         * object.c: clear the loader_error () before loading
717         more metadata stuff (bug #80258).
718
719 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
720
721         * icall.c, icall-defs.h: type modifiers icalls for
722         parameters and properties.
723
724 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
725
726         * object.c, icall.c: fixed warnings.
727
728 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
729
730         * marshal.c: fixed a couple of leaks and coding style in a few places.
731
732 2006-12-08  Dick Porter  <dick@ximian.com>
733
734         * process.c: Cope with NULL ProcessStartInfo arguments on windows
735         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
736         80173.
737
738 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
739
740         * process.c: ProcessStartInfo may have only filename set and
741         arguments can be NULL.
742
743 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
744
745         * icall.c: fix leak found by Robert Jordan.
746
747 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
748
749         * marshal.c, marshal.h: generate managed method to access an element
750         of a multi-dimensional array.
751
752 2006-11-30  Paolo Molaro (lupus@ximian.com)
753
754         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
755
756 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
757
758         * icall.c: back out GetFields () fix until the serialization code is
759         fixed to not depend on the incorrect behaviour.
760
761 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
762
763         * profiler.c: provide defaults if none are set.
764
765 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
766
767         * Makefile.am, attrdefs.h: new public header file with
768         constants for attributes for use by embedders.
769
770 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
771
772         * icall.c: GetFields () fix for bug #80064.
773
774 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
775
776         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
777         removed long unused icalls.
778
779 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
780   
781         * marshal.c: 
782                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
783                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
784                 can be generated without a delegate class.
785                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
786         
787         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
788
789 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
790
791         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
792         #80069.
793
794 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
795
796         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
797         icall-def.h: added icalls needed by System.GC.
798
799 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
800
801         * loader.c: ensure the class in catch clauses is handled
802         correctly for generics methods (fixes bug#79980).
803
804 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
805
806         * monitor.h, monitor.c: added mono_locks_dump () function
807         to help debug deadlocks involving managed locks.
808
809 2006-11-13  Dick Porter  <dick@ximian.com>
810
811         * file-io.c (get_file_attributes): If the file is a symlink try
812         and get the stat data for the target, but also add the
813         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
814         the specs for the windows symlink support, but will probably have
815         to be reworked when I have test data from a vista machine.  Fixes
816         bug 79887.
817
818 2006-11-13  Dick Porter  <dick@ximian.com>
819
820         * gc.c (mono_domain_finalize): 
821         * marshal.c (mono_delegate_begin_invoke): 
822         * threadpool.c (socket_io_init, mono_thread_pool_init)
823         (mono_thread_pool_finish): 
824         * monitor.c (mono_monitor_try_enter_internal): 
825         * threads.c (mono_thread_resume, mono_thread_init)
826         (mono_thread_suspend_all_other_threads)
827         (mono_thread_execute_interruption): 
828         * appdomain.c (mono_domain_unload): Check for NULL error returns
829         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
830         75733.
831
832 2006-11-11  Miguel de Icaza  <miguel@novell.com>
833
834         * process.c
835         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
836         Only close the handle if the value of the handle is not
837         INVALID_HANDLE_VALUE.  This just makes the process a bit more
838         robust.
839
840         Improvement for #75733, so that we do not run into this problem. 
841
842         
843         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
844         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
845         internal variables.  Fixes #79462 
846         
847
848 2006-11-09  Dick Porter  <dick@ximian.com>
849
850         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
851         Use poll() not select().  Fixes bug 79397.
852
853 2006-11-09  Raja R Harinath  <rharinath@novell.com>
854
855         Fix #79872
856         * assembly.c (mono_assembly_load_from_full): Check that the given
857         image has an assembly manifest.
858
859 2006-11-09  Ankit Jain  <jankit@novell.com>
860
861         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
862         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
863         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
864
865 2006-11-07  Dick Porter  <dick@ximian.com>
866
867         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
868         Put the old resolver behaviour back for pre-2.0 profiles.
869
870 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
871
872         * threadpool.c: precise GC and locking fixes.
873
874 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
875
876         * class.c: don't load types that have an explicit unaligned
877         managed reference. Provide better info in the TypeLoad exception.
878         Part of the fix for bug #79744.
879         * object.c: use the correct check for class type load issues.
880
881 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
882
883         * class.c: enforce alignment of fields with managed references
884         even when Pack=1 is forced by the user (bug #77788).
885
886 2006-11-03  Dick Porter  <dick@ximian.com>
887
888         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
889         If the address reverse lookup fails, return it as the hostname
890         anyway.  Fixes bug 79721.
891
892 2006-11-03  Dick Porter  <dick@ximian.com>
893
894         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
895         Fix build on Windows.
896
897 2006-11-02  Dick Porter  <dick@ximian.com>
898
899         * icall-def.h: 
900         * object-internals.h: 
901         * exception.c (mono_get_exception_thread_interrupted): 
902         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
903         Fixes bug 74525.
904
905         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
906         Check for pending Thread.Interrupt.
907
908 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
909         * loader.c: Fixed bug 79684.
910
911 2006-10-27  Dick Porter  <dick@ximian.com>
912
913         * file-io.c (get_file_attributes): Force symlinks to directories
914         to be returned as a regular file.  Fixes bug 79733.
915 2006-10-26  Dick Porter  <dick@ximian.com>
916
917         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
918         CreateFile to open a directory then we need to set the
919         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
920
921 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
922
923         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
924         friends.
925
926 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
927
928         * sgengc.c: small cleanup of timer code.
929
930 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
931
932         * sgen-gc.c: fix some warnings and start adding support for
933         complete object removal on domain unload.
934
935 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
936
937         * assembly.c: build_assembly_name should not consider a version
938         number without build or revision number invalid. Fixes bug #79715.
939
940 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
941
942         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
943         call kernel32 function OutputDebugString directly.
944         
945         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
946         
947 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
948
949         * reflection.c: small cleanup, using a function to insert a MonoString
950         in the string heap.
951
952 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
953
954         * reflection.c: moving GC fixes.
955
956 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
957
958         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
959         all the objects with finalizers belonging to an unloading appdomain.
960
961 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
962
963         * sgen-gc.c: added ability to allocate even when the nursery is fully
964         pinned and fixed a couple of bugs.
965
966 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
967
968         * threads.h: Revert the last change for now.
969
970         * threads.h (mono_thread_get_pending_exception): Rename this to
971         mono_thread_get_undeniable_exception ().
972
973 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
974
975         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
976         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
977         when fname does not refer to valid assembly. This result in a more
978         meaningful error message.
979         * exception.c: added mono_get_exception_bad_image_format2 which 
980         constructs a BadImageFormatException using the ctor taking a custom
981         message and the file name. Passing in a NULL msg results in a default
982         message.
983         * exception.h: define mono_get_exception_bad_image_format2 function.
984         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
985         when file name pointed to an invalid IL image. Use 
986         mono_get_exception_file_not_found2 to construct FileNotFoundException,
987         as this results in a more meaningful error message.
988
989 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
990
991         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
992         #79465.
993
994 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
995
996         * metadata.c (mono_type_size): Change the align parameter to guint32 for
997         consistency with the other _size functions.
998         (mono_type_stack_size): Ditto.
999
1000         * class.c object.c icall.c: Fix warnings caused by the above change.
1001
1002         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1003
1004         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1005
1006         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1007
1008 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1009
1010         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1011         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1012         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1013         threadpool.h, threads-types.h: mark more internal functions.
1014
1015 2006-10-11  Dick Porter  <dick@ximian.com>
1016
1017         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1018         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1019         reproduce the bug even before applying the fix.)
1020
1021 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1022
1023         * reflection.c: allow retrieving attributes for arguments in generic
1024         methods (bug #79241).
1025
1026 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1027
1028         * debug-mono-symfile.c: properly check fopen () result (found by
1029         coverity).
1030
1031 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1032
1033         * reflection.c: make error message clearer and fixed two
1034         issuelets found by Coverity.
1035
1036 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
1037
1038         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1039
1040 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1041
1042         * object-internals.h, gc-internal.h, profiler-private.h:
1043         mark internal functions.
1044
1045 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1046
1047         * reflection.c: put data in the text section.
1048         * icall.c: recognize more types in type_from_typename ().
1049         * process.c, marshal.c: added some GC FIXMEs.
1050
1051 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1052
1053         * loader.c: check for NULL before initializing.
1054
1055 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1056
1057         * gc.c (finalizer_thread): Use a non-alertable wait here.
1058
1059         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1060         until the correct solution is found.
1061
1062 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1063
1064         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1065         modules with no metadata. Fixes #79596.
1066
1067         * image.c (load_metadata_ptrs): Put back the error message when
1068         the #- heap is encountered since the support is not complete yet.
1069
1070 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1071
1072         * gc.c: do not allow the user to SuppressFinalize () a
1073         delegate because it would leak the trampoline if present.
1074
1075 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1076
1077         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1078         PropertyPtr table.
1079
1080 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1081
1082         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1083
1084         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1085
1086         * row-indexes.h: Add definitions for *Ptr tables.
1087
1088         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1089
1090         * metadata.c (mono_metadata_translate_token_index): New helper function to
1091         translate table indexes used in uncompressed metadata.
1092         (mono_metadata_decode_table_row): Ditto.
1093         (mono_metadata_decode_table_row_col): Ditto.
1094
1095         * metadata.c: Add table schema for *Ptr tables.
1096
1097         * class.c loader.c: Use the new helper function to access the affected metadata
1098         tables.
1099         
1100         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1101         #38532.
1102         
1103 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1104
1105         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1106         sequences which can be unbounded in size. Fixes #79583.
1107
1108 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1109
1110         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1111         static initialization.
1112
1113         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1114
1115         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1116
1117         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1118
1119         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1120         ctor fails, i.e. throw the same exception on subsequent accesses.
1121         
1122 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1123
1124         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1125         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1126         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1127         Handle marshalling of interfaces and VARIANTs contained in structs.
1128         
1129         Code is contributed under MIT/X11 license.
1130         
1131 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1132
1133         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1134         
1135         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1136         mempool.
1137
1138 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1139
1140         * console-io.c: ignore previous SIGINT handler.
1141
1142 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1143
1144         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1145         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1146         #79460, #79461, #79485.
1147
1148         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1149
1150         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1151         #79217.
1152
1153 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1154
1155         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1156         could be generated from it.
1157
1158 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1159
1160         * rand.c: fix read loop to correctly handle EINTR.
1161
1162 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1163
1164         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1165         internal calls are defined to keep methods closer to the declaring
1166         type and allow a significant reduction in runtime relocations and
1167         memory usage.
1168
1169 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1170
1171         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1172         exception message to have FileNotFoundException use the default
1173         assembly load error message. Fixes bug #79426.
1174         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1175
1176 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1177
1178         * threadpool.c: (start_thread_or_queue) use the root domain when
1179         creating the thread instead of the async object one.
1180
1181 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1182
1183         * class.c, object.c, class-internals.h, reflection.c:
1184         for arrays, store element_size inside MonoClass (speedup
1185         for array object creation).
1186
1187 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1188
1189         * icall.c: fixed CodeBase to use the file name and not the module
1190         name (bug #79365).
1191
1192 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1193
1194         * mono-debug.c, mono-debug.h: export find_method as
1195         mono_debug_find_method ().
1196
1197 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1198
1199         * debug-helpers.c, class-internals.h: added a few functions useful
1200         when debugging under gdb.
1201
1202 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1203
1204         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1205         characters that need special handling.
1206
1207 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1208
1209         * mono-config.c: make the os/cpu specification more flexible,
1210         allowing lists and negation.
1211
1212 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1213
1214         * marshal.c: COM Interop fixes. Handle case where method->klass.
1215         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1216         calling convention on non-windows platforms. This is for
1217         compatibility with XPCOM and MainWin COM.
1218         
1219         Code is contributed under MIT/X11 license.
1220         
1221
1222 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1223
1224         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1225         correctly. Fixes #79217.
1226
1227         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1228
1229 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1230
1231         * mono-config.c: allow both an os and cpu attribute for dllmap
1232         and dllentry elemnets to enable a single config file to be used
1233         for multiple architectures.
1234
1235 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1236
1237         * loader.c: MonoLoaderError was cleared too soon on load failure.
1238         Fixes bug #79424.
1239
1240 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1241
1242         * icall.c: use the defining class vtable when accessing a
1243         static field, not a pobblibly derived class.
1244
1245 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1246
1247         * icall.c string-icalls.c: Remove references to unicode.h.
1248
1249         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1250
1251         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1252
1253         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1254         indicating the image where custom marshaller types should be looked up.
1255         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1256         custom marshallers, instead of corlib. Fixes #79425.
1257
1258 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1259
1260         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1261
1262 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1263
1264         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1265         Implement Environment.ProcessorCount.
1266         
1267         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1268         Implement Environment.ProcessorCount.
1269         
1270         * icall.c: 
1271         Add Environment.ProcessorCount icall.
1272         
1273         Patch by Jason McFall.
1274
1275 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1276
1277         * assembly.c: don't append .exe/.dll when the filename already contains
1278         one of those extensions.
1279
1280 2006-09-12  Martin Baulig  <martin@ximian.com>
1281
1282         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1283         to array interfaces.
1284
1285 2006-09-11  Martin Baulig  <martin@ximian.com>
1286
1287         * reflection.c (mono_image_build_metadata): Create the
1288         MethodImpl's after emitting all types and methods, so we don't
1289         need another fixup pass for them.
1290
1291 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1292
1293         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1294         change.
1295
1296 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1297
1298         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1299         unload.
1300
1301 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1302
1303         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1304         args is not set. Fixes #78926.
1305
1306 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1307
1308         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1309
1310         * image.c (load_class_names): Move this to class.c, and rename it to 
1311         'mono_image_init_name_cache'.
1312         (load_modules): Fix a warning.
1313
1314         * class.c icall.c image.c: Initialize image->name_cache lazily.
1315
1316         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1317         on its name using information in the AOT file.
1318
1319         * class.c (mono_class_from_name): Use the new hook function.
1320
1321 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1322
1323         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1324         correctly.
1325
1326         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1327         Fixes #79289.
1328         
1329 2006-09-06  Martin Baulig  <martin@ximian.com>
1330
1331         * icall.c (mono_lookup_internal_call): Small fix.
1332
1333 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1334
1335         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1336         double g_free.
1337
1338 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1339
1340         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1341         when --debug is specified.
1342
1343 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1344
1345         * class.c (setup_generic_array_ifaces): Fix a warning.
1346
1347 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1348
1349         * Temporarily remove the patch to assemly.c that checks the
1350         assembly versions as it breaks our gacutil.
1351
1352 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1353
1354         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1355
1356         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1357         a net 1.0 runtime.
1358
1359         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1360         created using the default ctor. Fixes #79152.
1361         (mono_string_builder_to_utf16): Ditto.
1362
1363 2006-09-01  Martin Baulig  <martin@ximian.com>
1364
1365         Fix handling of the generic array interfaces.
1366
1367         * class-internals.h
1368         (MonoDefaults): Removed `generic_array_class' and added
1369         `generic_ilist' class.
1370
1371         * class.c
1372         (mono_bounded_array_class_get): Add the new generic array interfaces.
1373         (setup_generic_array_ifaces): New static method; create vtable
1374         entries for each method in the generic array interfaces.
1375
1376         * metadata.c
1377         (select_container): Allow "parent-less" generic methods.
1378
1379         * marshal.c
1380         (mono_marshal_get_generic_array_helper): New public method.
1381
1382         * icall.c
1383         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1384         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1385         moved the interncall into System.Array.
1386
1387 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1388
1389         A few more cases of avoiding work on types with ->byref set.
1390         Has the real fix for #79238
1391         * icall.c (is_generic_parameter): New helper.
1392         (ves_icall_Type_GetGenericParameterPosition): Use it.
1393         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1394         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1395         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1396         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1397         reference types.
1398         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1399         reference types.
1400         (ves_icall_Type_get_IsGenericInstance): Likewise.
1401         (ves_icall_Type_get_IsGenericType): Likewise.
1402
1403 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1404
1405         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1406         class if possible.
1407
1408         * mempool.h (mono_mempool_get_allocated): New helper function.
1409
1410         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1411         change.
1412
1413         * mempool.c: Fix warnings and the calculation of stats.
1414
1415         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1416
1417         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1418
1419         * loader.c (mono_get_method_from_token): Update method_count stat.
1420
1421         * class-internals.h (MonoStats): Add some stats.
1422
1423 2006-08-31 Robert Jordan  <robertj@gmx.net>
1424
1425         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1426         with managed variants.
1427         All code is contributed under the MIT/X11 license.
1428         
1429 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1430
1431         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1432         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1433
1434         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1435
1436         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1437         with cycles in classes.
1438
1439         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1440
1441         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1442         missing a [MarshalAs] directive. Fixes #79203.
1443
1444         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1445         klass->marshal_info. Fixes #79217.
1446
1447 2006-08-30  Martin Baulig  <martin@ximian.com>
1448
1449         Committing a patch from Joachim Ante <joe@otee.dk>:
1450         Add support for binary data symbol stores.
1451
1452         * debug-mono-symfile.c
1453         (mono_debug_open_mono_symbol_file): Renamed into
1454         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1455         arguments.
1456
1457         * mono-debug.c
1458         (mono_debug_open_image): Added `raw_contents' and `size' args.
1459         (mono_debug_init_2_memory): New public function.
1460
1461 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1462
1463         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1464
1465 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1466
1467         * appdomain.c: implement support for ShadowCopyFiles.
1468
1469 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1470
1471         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1472         when value is NULL (and should remove CID #51).
1473
1474 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1475
1476         * image.c: moved 2 functions to ../utils.
1477
1478 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1479
1480         * gc.c: cope with the target object of a GC handle being NULL
1481         (bug #78877).
1482
1483 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1484
1485         * class.c: recursively check parent's explicit implementations
1486         of interface methods (fixes bug #79125).
1487
1488 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1489
1490         * filewatcher.c: Avoid warnings when building, do not redefine
1491         constants that are defined.
1492
1493         Remove warnings.
1494
1495 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1496
1497         * image.c: don't fail when the link points to an absolute path.
1498
1499 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1500
1501         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1502         Fix CID #3.
1503
1504 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1505
1506         * image.c (full_path): A new method used to obtain the actual path
1507         of an assembly even in the presence of symbolic links.  
1508
1509         This is necessary for the case where we are running a binary that
1510         has been GACed, but we are using the "published" path name
1511         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1512         file in the GAC.
1513
1514         This was the source of the failure for the `xsp' command with the
1515         recent AppDomain changes, as far as the runtime was concerned,
1516         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1517         $prefix/mono/gac/blah/version/blah.exe.
1518
1519         (do_mono_image_open): use full path
1520
1521 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1522
1523         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1524
1525 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1526
1527         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1528         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1529
1530 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1531
1532         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1533         small structures. Fixes #78990.
1534
1535 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1536
1537         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1538
1539         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1540
1541 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1542
1543         * appdomain.c:
1544         * marshal.c: don't load all the assemblies from a domain into newly
1545         created ones. The new domains might have different rules and load
1546         assemblies from different locations. Fixes bug #76757.
1547
1548         Patch by Lluis. Conflicts resolved by Brian Crowell.
1549
1550 2006-08-16  Alp Toker  <alp@atoker.com>
1551
1552         * socket-io.c: First half of the fix for #79084.
1553         Set sa_size to the length of the content, not that of the struct.
1554         Don't add NULL suffix to the content, this should be done in
1555         managed code if needed.
1556
1557 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1558
1559         Fix part of #79012
1560         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1561         mono_metadata_parse_type returns NULL.
1562
1563 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1564
1565         * normalization-tables.h : new file for string normalization data.
1566         * locales.c, locales.h, icall.c :
1567           added load_normalization_resource() for string normalization,
1568           and icall as well.
1569         * Makefile.am : added normalization-tables.h to the sources.
1570
1571 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1572
1573         * marshal.c: Add more helper functions to reduce code duplication and use them
1574         everywhere.
1575
1576 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1577
1578         * marshal.c: Fix non-x86 stdcall warnings.
1579         
1580         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1581         them everywhere.
1582
1583 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1584
1585         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1586         type check on multi-dimensional arrays. Fixes #79000.
1587
1588 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1589
1590         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1591         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1592         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1593         * class-internals.h: add is_com_object to class structure.
1594         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1595         null checks to COM object marshalling. Fix .ctor call on RCW.
1596         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1597         
1598         All code is contributed under the MIT/X11 license.
1599
1600 2006-08-09  Dick Porter  <dick@ximian.com>
1601
1602         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1603         racing mono_monitor_allocator_lock() somewhere, so don't delete
1604         the critical section for now.  Found by running and exiting
1605         monodevelop.
1606
1607 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1608
1609         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1610         (ves_icall_System_ComObject_FindInterface): Ditto.
1611         (ves_icall_System_ComObject_CacheInterface): Ditto.
1612
1613         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1614         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1615
1616 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1617
1618         * threadpool.c: treat pipes from process asynchronous reads as sockets
1619         when reading from them, so we get select/poll or epoll to wait for
1620         data.
1621
1622 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1623
1624         * loader.c: Fix a typo (CID #233) in the null check.
1625
1626 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1627
1628         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1629         Hopefully fixes #78949.
1630         
1631         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1632         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1633         bytes. Fixes #78972.
1634
1635 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1636
1637         * filewatcher.c: we need to set errno here.
1638
1639 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1640
1641         * filewatcher.c: let Win32Exception get the error value.
1642
1643 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1644
1645         * filewatcher.c: translate errno into win32 errors for Win32Exception
1646         to know what happened.
1647
1648 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1649
1650         * threadpool.c: Fix more warnings.
1651
1652         * assembly.c (search_loaded): Fix warnings.
1653
1654         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1655         (mono_async_invoke): Ditto.
1656
1657 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1658
1659         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1660         entries for __ComObject type in addition to ComImport types.
1661         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1662         about hash table.
1663         
1664         All code is contributed under the MIT/X11 license.
1665
1666 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1667
1668         * image.c: avoid tentative loading of modulerefs that contain
1669         no metadata (P/Invoke library names).
1670
1671 2006-07-28  Dick Porter  <dick@ximian.com>
1672
1673         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1674         mono_loader_lock() somewhere, so don't delete the critical section
1675         for now.  Found by running and exiting monodevelop.
1676
1677 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1678
1679         * filewatcher.c: define the inotify syscalls when we're building on
1680         linux and have sys/syscall.h. The build system might not have support
1681         for inotify but the target system might have it.
1682
1683 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1684
1685         * domain.c: Documentation updates.
1686
1687         * loader.c (mono_free_method): Do not release the method
1688         information if we are being profiled, as profilers will use this
1689         information at shut down to present some data to the user.
1690
1691         This is needed so that the profiler does not crash, as the
1692         profiler tends to keep MonoMethods around, and they might become
1693         invalid if we free these.
1694
1695         (mono_get_method_constrained): Return the original CIL stream
1696         method as well, so verification can be performed against it.
1697
1698 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1699
1700         * filewatcher.[ch]: support for inotify file system watcher.
1701         * icall.c: add new internal calls for the inotify file system watcher.
1702
1703 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1704
1705         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1706         #78888.
1707
1708 2006-07-20  Dick Porter  <dick@ximian.com>
1709
1710         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1711         warning.
1712
1713 2006-07-20  Dick Porter  <dick@ximian.com>
1714
1715         * threads.c (start_wrapper): Do the thread cleanup while we still
1716         hold a reference to its object.  Fixes bug 78123.
1717
1718 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1719
1720         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1721         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1722           "managed-to-managed".
1723         * icall.c: Redirect string constructors that take sbyte* to
1724           ves_icall_System_String_ctor_RedirectToCreateString.
1725         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1726           to CreateString () methods with matching signature.
1727         * reflection.c: Use original security informations for
1728           MONO_WRAPPER_MANAGED_TO_MANAGED.
1729         * security-manager.c: Use original security informations for
1730           MONO_WRAPPER_MANAGED_TO_MANAGED.
1731         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1732           that is a placeholder and only its address should be used.
1733         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1734           that is a placeholder and only its address should be used.
1735
1736 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1737
1738         Begin implementing COM Interop.
1739         * appdomain.c: Increment corlib version.
1740         * class.c: Set ComImport classes' parent to __ComObject.
1741         * loader.c: Mark cominterop methods as such.
1742         * domain.c: Add __ComObject class to MonoDefaults structure.
1743         * image.c: Add 2 hashtables to the image for COM Interop related methods
1744         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1745         using the mempool allocator
1746         
1747         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1748         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1749         declaration for mono_metadata_type_dup_mp.
1750         
1751         * debug-helpers.c: Added strings for two additional wrapper types
1752         * object.c: Create proxy objects for ComImport classes
1753         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1754         and added __ComObject class to MonoDefaults structure.
1755         
1756         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1757         MonoComInteropProxy and MonoComObject.
1758         
1759         * marshal.c: Added support for COM Interop
1760         (signature_cominterop): Converts managed signature to corresponding
1761         unmanaged COM signature.
1762         (cominterop_get_function_pointer): gets unmanaged function pointer via
1763         COM object vtable
1764         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1765         (cominterop_get_method_interface): returns interface type that method is defined on
1766         (mono_mb_emit_cominterop_call): emits native call to function pointer
1767         gotten from vtable
1768         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1769         that matches signature of unmanaged function.
1770         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1771         (cominterop_get_invoke): forwards call from proxy to __ComObject
1772         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1773         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1774         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1775         
1776         * marshal.h: Added Marshal icall declarations.
1777         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1778         so we can access them in finalizer
1779         
1780 2006-07-14  Dick Porter  <dick@ximian.com>
1781
1782         * object.c (mono_type_initialization_cleanup): Fix a race
1783         condition by temporarily commenting out the critical section
1784         deletion.
1785
1786 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1787
1788         * reflection.c (create_custom_attr): Fix some warnings.
1789         (create_custom_attr_data): Ditto.
1790         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1791         types. Fixes #78855.
1792
1793 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1794
1795         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1796
1797         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1798
1799 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1800
1801         * reflection.c (resolve_object): Add support for DynamicMethod.
1802
1803         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1804         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1805
1806 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1807
1808         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1809         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1810
1811 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1812
1813         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1814         Fixes #77888.
1815
1816 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1817
1818         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1819         slightly: remove a shadow local variable.
1820
1821 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1822
1823         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1824         definition that introduces the virtual function slot.
1825         Also fix Coverity #105.
1826
1827 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1828
1829         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1830         for dynamic assemblies. Fixes #78724.
1831
1832 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1833
1834         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1835         Fixes #78722.
1836
1837 2006-06-21  Martin Baulig  <martin@ximian.com>
1838
1839         * reflection.c
1840         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1841         fixes #76484.
1842
1843 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1844
1845         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1846
1847 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1848
1849         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1850         nor TYPEREFs.
1851         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1852         Inflate result if necessary.
1853         (mono_class_get_full): Remove old version.  Rename from
1854         'mono_class_get' and add 'context' argument.  Pass it to
1855         ..._create_from_typespec.
1856         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1857         (mono_ldtoken): Revert change below.
1858
1859 2006-06-20  Martin Baulig  <martin@ximian.com>
1860
1861         * class.c (mono_ldtoken): Don't pass the generic context to
1862         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1863
1864 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1865
1866         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1867         and later freeing it. Fixes #78638.
1868
1869 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1870
1871         * icall.c (mono_class_get_throw): Revert over-zealous error
1872         throwing, the caller for mono_class_get_throw will cope with
1873         errors when classes are not properly initialized already.
1874
1875         The code still copes with loader exceptions though.
1876
1877         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1878         
1879 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1880
1881         Fixes the `make run1' version of RuntimeAbort (to be commited,
1882         source is in Bugzilla).
1883         
1884         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1885         FALSE on class loading failure instead of returning true.
1886
1887         * class.c (mono_class_create_from_typedef): It is possible for
1888         mono_metadata_interfaces_from_typedef_full to fail if a class is
1889         not found, cope with this.
1890         
1891
1892 2006-06-14  Dick Porter  <dick@ximian.com>
1893
1894         * socket-io.c: 
1895         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1896         4.1.1
1897
1898 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1899
1900         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1901
1902 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1903
1904         * icall.c: Another fix for building mono in Visual Studio.
1905
1906 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1907
1908         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1909         
1910 2006-06-09  Martin Baulig  <martin@ximian.com>
1911
1912         * debug-mono-symfile.c: Put this back and really fix it this
1913         time. Sorry for all the trouble.
1914
1915 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1916
1917         * icall.c (mono_class_get_throw): Fix a warning.
1918         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1919         ReflectionTypeLoadException if needed. Fixes #78606.
1920
1921         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1922         (mono_class_init): Ditto.
1923
1924         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1925         ref_only exceptions.
1926         (mono_loader_clear_error): Make this work even if there is no error.
1927
1928 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1929
1930         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1931         Marshal.GetComSlotForMethodInfo using internal call.
1932
1933 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1934
1935         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1936         a function for signalling it.
1937
1938         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1939         a referenced assembly is not found.
1940
1941         * loader.c (mono_loader_error_prepare_exception): Add support for 
1942         LOADER_ERROR_ASSEMBLY. Fix formatting.
1943
1944 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1945
1946         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1947         for VARIANT marshalling on windows and increment corlib version
1948         since Variant struct was added.
1949
1950 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1951
1952         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1953         stack trace line information:
1954
1955         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1956         (Martin) when looking up B which is between A and C, return A not C.
1957
1958         Bug is #78573.
1959
1960         Thanks to Alexander Olk for tracking this down.
1961
1962 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1963
1964         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1965         
1966         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1967         avoid clobbering its value.
1968         (mono_string_to_lpstr): Fix a warning on windows.
1969
1970 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1971
1972         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1973
1974         * reflection.c loader.c: Removed references to 'dummy' flag.
1975
1976         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1977
1978         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1979         it gets GC tracking.
1980
1981         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1982         GC tracking.
1983         
1984         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1985
1986         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1987
1988         * appdomain.c: Bump corlib version.
1989
1990 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1991
1992         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1993         CEE_STIND_REF when working with object references.
1994
1995 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1996
1997         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1998         Fixes #78539.
1999
2000 2006-05-30  Miguel de Icaza  <miguel@novell.com>
2001
2002         * loader.c (method_from_memberref): Fix argument value for
2003         mono_loader_set_error_method_load (I was passing the MonoClass
2004         instead of the class name char *).
2005
2006 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2007
2008         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2009         CEE_STIND_REF when working with object references.
2010
2011 2006-05-30  Martin Baulig  <martin@ximian.com>
2012
2013         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2014         mono_method_full_name() change and replace the ':' with a '.'
2015         here.
2016
2017 2006-05-30  Martin Baulig  <martin@ximian.com>
2018
2019         * debug-mono-symfile.c
2020         (mono_debug_symfile_lookup_location): Fix the algorithm:
2021         when looking up B which is between A and C, return A not C.
2022
2023 2006-05-29  Martin Baulig  <martin@ximian.com>
2024
2025         * mono-debug.h
2026         (MonoDebugMethodInfo): Make the typedef public.
2027         (MonoDebugSourceLocation): New public struct.
2028
2029         * mono-debug.c
2030         (mono_debug_source_location_from_address): Removed.
2031         (mono_debug_source_location_from_il_offset): Removed.
2032         (mono_debug_il_offset_from_address): Removed.
2033         (mono_debug_address_from_il_offset): Removed.
2034         (mono_debug_lookup_method): New public function.
2035         (mono_debug_lookup_source_location): New public function; replaces
2036         the old mono_debug_source_location_from_*() functions; see the
2037         inline documentation.
2038         (mono_debug_free_source_location): New public function.
2039         (mono_debug_print_stack_frame): New public function; see the
2040         inline documentation.
2041
2042         * debug-mono-symfile.c
2043         (mono_debug_find_source_location): Renamed into
2044         mono_debug_symfile_lookup_location(); only take a
2045         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2046         documentation.
2047         (mono_debug_find_method): Renamed into
2048         mono_debug_symfile_lookup_method().
2049
2050 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2051
2052         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2053         returned by mono_image_open_full ().
2054
2055         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2056         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2057         #78517.
2058
2059         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2060         #78518.
2061
2062 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2063
2064         * class.c (mono_class_from_typeref): handle missing images
2065         earlier, deals with bug #78418.   Refactor code; 
2066
2067         Fix a warning introduced in my previous commit (some stale code
2068         from before I revisited my patch).
2069
2070         * class.c (mono_class_create_from_typedef): On failure, remove the
2071         class from the MonoImage->class_cache as the class is not
2072         initialized;   Fixes the leak pointed out by Paolo.
2073
2074 2006-05-25  Dick Porter  <dick@ximian.com>
2075
2076         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2077         DeleteCriticalSections until I figure out which one may still be
2078         sometimes locked when mono_thread_cleanup is called.
2079
2080 2006-05-24  Dick Porter  <dick@ximian.com>
2081
2082         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2083         of mono_thread_manage and back into its own function, so it can be
2084         called after the finalizer thread has finished.
2085
2086         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2087
2088 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2089
2090         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2091         Fixes #78495.
2092
2093         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2094         with non-blittable elements.
2095         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2096
2097 2006-05-24  Martin Baulig  <martin@ximian.com>
2098
2099         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2100         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2101
2102         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2103         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2104         `mono_debugger_event_handler' to NULL.
2105
2106 2006-05-24  Martin Baulig  <martin@ximian.com>
2107
2108         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2109
2110 2006-05-24  Martin Baulig  <martin@ximian.com>
2111
2112         * mono-debug-debugger.h
2113         (mono_debugger_create_notification_function): Added
2114         `MonoCodeManager *' argument.
2115
2116 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2117
2118         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2119
2120 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2121
2122         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2123         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2124         implementation.
2125
2126 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2127
2128         * icall.c: precise GC support: objects can't be stored in unmanaged
2129         memory anymore, even if they are kept alive by other references: since
2130         they can move the GC needs to be able to always find them.
2131
2132 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2133
2134         * object.c: precise GC support for static fields. Support
2135         for moving GCs: write barriers and pinned allocation for interned
2136         strings.
2137
2138 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2139
2140         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2141         structure.
2142
2143 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2144
2145         * class.c, gc.c: sgen and precise GC updates.
2146
2147 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2148
2149         * marshal.h, marshal.c: added write barrier wrapper and precise type
2150         fixes.
2151
2152 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2153
2154         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2155         support.
2156
2157 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2158
2159         * reflection.c: precise and sgen GC updates.
2160
2161 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2162
2163         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2164
2165 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2166
2167         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2168
2169 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2170
2171         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2172         MONO_TYPE_OBJECT. Fixes #78462.
2173
2174 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2175
2176         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2177         and blittable types.
2178
2179 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2180
2181         * class.c (mono_class_get_exception_for_failure): Implement parts
2182         of a TODO: if the loader error is set (instead of the class
2183         error), we return a Loader exception that can be properly thrown
2184         elsewhere.
2185
2186         This was exposed by some Winforms 2.0 code that I tried to run
2187         (Atsushi pointed me to it).
2188
2189 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2190
2191         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2192         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2193         
2194         * marshal.c (emit_marshal_vtype): Add limited support for 
2195         UnmanagedType.LPStruct. Fixes #78427.
2196
2197         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2198         Applied a patch from kangaroo to fix #77523.
2199
2200 2006-05-17  Martin Baulig  <martin@ximian.com>
2201
2202         * threads.c
2203         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2204         (debugger_thread_created): Removed.
2205         (debugger_thread_exited): Removed.
2206
2207 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2208
2209         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2210
2211         * object-internals.h (MonoReflectionResource): Sync with managed version.
2212
2213 2006-05-12  Wade Berrier <wberrier@novell.com>
2214
2215         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2216
2217 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2218
2219         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2220         functions try to allocate from the image mempool.
2221
2222 2006-05-12  Dick Porter  <dick@ximian.com>
2223
2224         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2225
2226 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2227
2228         * object.c: The FieldGetter and FieldSetter methods require the full
2229         name of the class, not only the name. Fixes bug #78277.
2230
2231 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2232
2233         * loader.c (method_from_memberref): Do not pass the NULL klass to
2234         mono_loader_set_error_() methods.  Pass the non-NULL value
2235         (class). 
2236
2237 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2238
2239         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2240         (mono_assembly_close): Null out assembly->image->references after freeing it.
2241
2242         * image.c (mono_image_close): Free image->references.
2243         
2244         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2245
2246 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2247
2248         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2249         before checking if it's NULL (g_assert).
2250
2251 2006-05-10  Martin Baulig  <martin@ximian.com>
2252
2253         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2254         I thought I already killed that two months ago, but now it somehow reappeared.
2255
2256 2006-05-10  Martin Baulig  <martin@ximian.com>
2257
2258         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2259
2260 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2261
2262         * reflection.c: Allocate memory for dynamically created methods in the image
2263         mempools.
2264
2265 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2266
2267         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2268         don't use the ad pointer before checking if it's NULL (g_assert).
2269
2270 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2271
2272         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2273         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2274
2275         * marshal.c: Allocate all signatures from mempools.
2276
2277         * marshal.c: Allocate some more signatures from mempools.
2278
2279 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2280
2281         * object.c (mono_load_remote_field): The code used to provide a
2282         temporary variable for returning results if the user did not
2283         provide a result pointer.  But our temporary variable was allocted
2284         on the satck.
2285
2286         Fix calling code to always pass a result area.   Coverity ID 103.
2287
2288 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2289
2290         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2291         value, not the old. Fixes #78312.
2292         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2293
2294         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2295         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2296         per-image cache.
2297
2298         * assembly.c (mono_assembly_close): Free image->references.
2299
2300         * assembly.c (mono_assembly_names_equal): Fix a warning.
2301         (mono_assemblies_cleanup): Cleanup more global data.
2302
2303         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2304
2305         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2306         ptr_cache and image->modules.
2307
2308         * image.c (mono_image_init): Allocate array_cache lazily.
2309         
2310 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2311
2312         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2313         behavior was changed recently and has bad side effects.
2314
2315 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2316
2317         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2318         
2319         * assembly.c (mono_assembly_close): Remove a debug printf.
2320
2321         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2322
2323         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2324         to also allow for temporary references between mono_image_open ()/close ().
2325
2326         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2327
2328 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2329
2330         * marshal.c: Fix support for dynamic methods.
2331
2332         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2333
2334         * marshal.c (mono_marshal_cleanup): New cleanup function.
2335
2336         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2337         image mempools.
2338
2339         * class.c (mono_class_init): Fix leaking class->nested_classes.
2340
2341         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2342
2343         * image.c (mono_image_init): Initialize the new cashes.
2344
2345         * image.c (mono_image_close): Destroy the new cashes.
2346
2347         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2348
2349         * mempool.c (mono_mempool_strdup): New helper function.
2350
2351         * class-internals.h: Add prototype for mono_loader_unlock ().
2352
2353         * domain.c (mono_jit_info_table_find): Fix a warning.
2354         (mono_debugger_check_runtime_version): Ditto.
2355
2356         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2357         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2358         functions to these modules.
2359
2360         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2361         metadata modules.
2362         
2363         * marshal.c (mono_free_bstr): Fix a warning.
2364
2365         * assembly.c (mono_assembly_open_full): Fix another small leak.
2366
2367         * object.c: Fix some unload leaks in the remoting code.
2368
2369         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2370         function.
2371
2372         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2373
2374         * reflection.c: Fix some unload leaks in dynamic assemblies.
2375
2376 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2377
2378         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2379         * marshal.h: Add BSTR support on Win32
2380         * icall.c: Add BSTR icalls
2381         * metadata.h: Add BSTR enums
2382
2383 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2384
2385         Work to catch the crash from #76795 and turn it into an
2386         exception.   As I stubbed out pieces of the VisualBasic support,
2387         I found a number of places where the code was failing and I added
2388         checks to those places. 
2389         
2390         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2391         function return a status code.  If we fail to parse the signature
2392         from mono_metadata_parse_generic_inst, return FALSE.
2393
2394         * loader.c (mono_get_method_from_token): If we fail to load the
2395         method (mono_class_get) return NULL.   
2396
2397         * (method_from_memberref): Return NULL if we are unable to parse
2398         the method signature
2399
2400         (mono_loader_error_prepare_exception): Since we now use the
2401         loader_error flag internally to stop processing, and obtaining
2402         exceptions that might be thrown will walk this code path the
2403         proper way of going from a MonoLoaderError into a
2404         MonoException was convoluted.   This new routine encapsulates the
2405         process of turning the error into an exception and *clearing* the
2406         error afterwards.
2407         
2408 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2409
2410         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2411         with missing assemblies), and to cope with:
2412
2413                 * Missing fieldref from a non-existing assembly.
2414                 * Missing methodref from a non-existing assembly.
2415
2416         The first batch of work to address *some* of the issues from 76661.
2417         
2418         * object.c (mono_class_create_runtime_vtable): If we fail to
2419         initialize the class raise the exception here. 
2420
2421         * metadata.c (mono_class_get_overrides_full): If any methods fail
2422         to load return the failure to the caller.
2423
2424         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2425         flagging assemblies that failed to load.   
2426
2427         Do not crash if we are unable to load the assembly.
2428
2429         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2430         assemblies. 
2431
2432         * loader.c (mono_loader_set_error_type_load): Change the
2433         convention to always pass unallocated strings, so we make our own
2434         copies (I know our own code had duplicated strings before, but
2435         this keeps the normal conventions).
2436         (method_from_memberref): Call mono_loader_set_error_method_load
2437         for all possible failures of loading the class. 
2438         Remove assert, turn into a loader error.
2439
2440         (mono_loader_error_to_exception): Move this routine from mini
2441         (mini_loader_error_to_exception) there was no need to have that in
2442         mini. 
2443
2444         * class.c (mono_class_from_typeref): If we were not able to load
2445         the assembly with mono_assembly_load_reference, call the
2446         mono_loader_set_error_type_load to register the problem.
2447
2448         (mono_class_setup_fields): If we fail to load the type from
2449         mono_metadata_parse_type_full, call mono_class_set_failure and
2450         break from the loop.
2451
2452         If class->exception_type is set, we do not layout the fields as
2453         that might crash the runtime, and instead return (from breaking
2454         from the previous loop).
2455
2456         (mono_class_setup_vtable): This now returns a boolean indicating
2457         whether the table was properly setup.   The decision is driven by
2458         mono_class_get_overrides_full which might run into non-existing
2459         methods. 
2460         
2461         (mono_class_init): Returns TRUE on success or FALSE if there was a
2462         problem in loading the type (incorrect assemblies, missing
2463         assemblies, methods, etc).
2464
2465         When we call mono_class_setup_fields we also check for a potential
2466         error inside this call (either a class exception or a general
2467         loader exception).
2468
2469         (mono_class_create_from_typedef): If the parent fails to load
2470         (calling mono_class_get_full) return NULL.
2471         
2472         ** Important **
2473
2474         calls to mono_metadata_parse_type_full should be checked
2475         everywhere and set the mono_class_set_failure
2476         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2477
2478         The current patch checks the places where my manually constructed
2479         tests show the errors are showing up, but we should do it
2480         everywhere. 
2481
2482         ** Important2 **
2483
2484         mono_class_init return values should be tested everywhere, like
2485         the previous case this is something that we should audit
2486         everywhere and not only on the cases exposed by the tests I
2487         created. 
2488
2489 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2490
2491         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2492         boolean parameter and instead pass the information on `options'
2493         parameter (FileOptions).
2494
2495         * icall.c: Register the new signature for MonoIO.Open.
2496
2497         * debug-helpers.c (dis_one): Trying to understand how coverity
2498         works.  Fix Run 5, item 78.
2499
2500 2006-04-26  Dick Porter  <dick@ximian.com>
2501
2502         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2503         dereference.
2504
2505 2006-04-25  Martin Baulig  <martin@ximian.com>
2506
2507         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2508
2509         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2510         debugger_thread_created().
2511         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2512         special way.
2513         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2514         (mono_debugger_finalize_threads): New function; undo the effects
2515         of mono_debugger_init_threads().
2516         (mono_debugger_create_all_threads): Removed.
2517
2518 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2519
2520         * image.c (mono_image_close): Tidy up trace messages.
2521
2522         * assembly.c (mono_assembly_close): Ditto.
2523
2524         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2525         no longer references an already freed assembly. Fixes #78168.
2526
2527 2006-04-21  Dick Porter  <dick@ximian.com>
2528
2529         * threads.c (mono_thread_detach): Fix reference counting when
2530         detaching threads.
2531
2532 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2533
2534         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2535         #78155.
2536
2537 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2538
2539         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2540         (mono_type_to_stind): Ditto.
2541
2542         * marshal.c: Use the new helper functions to simplify code.
2543
2544         * image.c (mono_image_close): Add some code for help debug assembly unloading
2545         problems.
2546
2547         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2548         image mempool.
2549
2550         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2551         assembly was already loaded in another appdomain. Fixes #78083.
2552
2553 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2554
2555         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2556         referenced assemblies.
2557         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2558
2559         * domain.c (mono_domain_free): Add a trace message.
2560
2561         * appdomain.c (add_assemblies_to_domain): Ditto.        
2562
2563         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2564         field.  
2565
2566 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2567
2568         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2569
2570 2006-04-12  Martin Baulig  <martin@ximian.com>
2571
2572         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2573         `USE_INCLUDED_LIBGC'.   
2574
2575 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2576
2577         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2578         the patch contains ../ and a small directory name later. Hopefully fixes
2579         #78035.
2580
2581 2006-04-10  Martin Baulig  <martin@ximian.com>
2582
2583         Clean up the debugger's thread-handling code.
2584
2585         The debugger's thread-handling code has been moved from
2586         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2587         over the `threads' hash, keep track of exiting threads and also
2588         use proper locking.
2589
2590         We can now debug XSP and XSP based applications with the debugger.
2591
2592         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2593
2594         * threads.h
2595         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2596         (mono_install_thread_callbacks): Likewise.      
2597
2598         * threads.c (mono_thread_callbacks): Removed.
2599         (debugger_thread_created, debugger_thread_exited): New static functions.
2600         (start_wrapper): Call debugger_thread_created().
2601         (thread_cleanup): Call debugger_thread_exited().
2602         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2603         (mono_debugger_init_threads): New public function.
2604         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2605         iterate directly over the `threads' hash and also use proper locking.
2606
2607         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2608
2609         * mono-debug-debugger.h
2610         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2611
2612 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2613
2614         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2615         argument type=array. Fixes #78057.
2616
2617 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2618
2619         * culture-info-table.h : regenerated. Fixed bug #69652.
2620
2621 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2622
2623         * loader.c metadata.c: Reapply a variant r59116.
2624         
2625         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2626
2627         * class.c (mono_class_setup_interface_offsets): New internal function.
2628
2629         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2630         interfaces too. Fixes #77398.
2631
2632         * reflection.c (encode_cattr_value): Add support for 
2633         parameter type=object, argument type=array.
2634         (load_cattr_value): Ditto. Fixes #77916.
2635
2636         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2637         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2638
2639         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2640         a byval char array and CharSet is Ansi.
2641
2642         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2643
2644 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2645
2646         * metadata.c: Add some locking comments.
2647         
2648         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2649         mempool.
2650         (mono_metadata_free_method_signature): Don't free the signature itself.
2651
2652         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2653
2654         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2655         reference the same MonoImage.
2656         (mono_assembly_load_from_full): Add an assert.
2657
2658 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2659
2660         * image.c (mono_image_close): Don't put the image we are about to free into the
2661         loaded_images_guid_hash.
2662
2663         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2664         to reduce code duplication.
2665
2666         * marshal.c: Register the native functions called by this module as icalls, to
2667         somewhat centralize the creation of MonoMethodSignature's.
2668
2669         * loader.c (mono_method_signature): Add a cache for method signatures.
2670
2671         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2672         the parameter attributes of a method.
2673         (mono_metadata_parse_method_signature_full): Refactored the computation of
2674         parameter attributes into a separate function. Also avoid one allocation in
2675         most cases.
2676
2677         * assembly.c (mono_assembly_close): Ditto.
2678
2679         * image.c (mono_image_close): Log trace messages with INFO level.
2680
2681         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2682
2683         * image.c reflection.c: Correct reference counting of image modules.
2684         
2685         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2686         of this function from the image mempool.
2687         
2688         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2689         to allow more cached types to be used.
2690
2691         * mono-debug.c (mono_debug_add_method): Appled patch from
2692         David S. Miller  <davem@sunset.davemloft.net>: Access 
2693         minfo->lexical_blocks[] entry elements using read32().
2694
2695 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2696
2697         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2698         methods as it is allocated from the mempool.
2699
2700         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2701         image mempool.
2702
2703         * metadata-internals.h: Add comments describing the reference counting scheme
2704         used for MonoImage and MonoAssembly.
2705
2706         * image.c assembly.c reflection.c: Rework reference counting of images and 
2707         assemblies so they are freed when the runtime is shut down. Free some 
2708         additional memory structures when an image is unloaded.
2709         
2710 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2711
2712         * class.c loader.c reflection.c: Allocate more data structures in
2713         the image mempool.
2714
2715 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2716
2717         * icall.c
2718         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2719         build on pre glib 2.4 systems.
2720
2721 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2722
2723         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2724
2725         * icall.c: Fix some warnings.
2726
2727 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2728
2729         * culture-info-table.h : regenerated.
2730
2731 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2732
2733         * threads.c, object-internals.h, verify.c: changed the culture caching
2734         code to use a normal MonoArray for storage so the GC can keep track of
2735         them easily. Fixed bits of the cache logic, too and simplified the
2736         code.
2737
2738 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2739
2740         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2741         thread for non-Boehm GCs.
2742
2743 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2744
2745         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2746         needed to keep track of the data for static fields.
2747
2748 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2749
2750         Fix #75172
2751         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2752         for interface classes.  Use 'num_methods' instead.
2753         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2754         before using '->vtable_size' field.
2755
2756 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2757
2758         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2759         doesn't contain managed pointers, so use a normal hashtable.
2760
2761 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2762
2763         * reflection.c, class-internals.h, domain.c: fixed handling of types
2764         used as values for objects in custom attributes (bug #77915):
2765
2766 2006-03-24  Martin Baulig  <martin@ximian.com>
2767
2768         * class.c (mono_class_setup_fields): Added support for generic
2769         instances; fixes #77580.
2770
2771 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2772
2773         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2774
2775 2006-03-24  Dick Porter  <dick@ximian.com>
2776
2777         * file-io.c (get_file_attributes): More stat macro breakage.
2778         Fixes bug 77759.
2779
2780 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2781
2782         * profiler.c: added the file=filename option in the default profiler
2783         to output the profile data to filename.
2784
2785 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2786
2787         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2788         bug #77877.
2789
2790 2006-03-22  Martin Baulig  <martin@ximian.com>
2791
2792         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2793         allocated `MonoClassField *' in `fb->handle'.
2794
2795 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2796
2797         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2798         allocate interface ID to save memory and allow better ID reuse on
2799         appdomain unload. setup_generic_vtable () removal from Martin.
2800
2801 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2802
2803         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2804         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2805         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2806         write barriers for reference stores with managed objects accessed with
2807         C structures in the runtime and in embedding programs.
2808
2809 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2810
2811         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2812         'interface_id' and 'max_interface_id' fields of MonoClasses
2813         representing open generic types.
2814
2815 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2816
2817         * object.h, object.c, icall.c: added functions to deal with
2818         storing valuetypes that contain references in managed objects.
2819         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2820         fixes and comments around uses of mono_array_addr ().
2821
2822 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2823
2824         * object.h, icall.c, monitor.c: object.GetHashCode ()
2825         implementation that supports the moving garbage collector.
2826
2827 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2828
2829         * icall.c, threads-types.h, threads.c: implemented finalizer for
2830         LocalDataStoreSlot.
2831
2832 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2833
2834         * metadata.c (mono_type_size): Add a fixme.
2835         (mono_type_stack_size): Ditto.
2836
2837         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2838         'type_forwarders' field.
2839
2840         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2841         attribute from net 2.0.
2842
2843         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2844         from class.c.
2845
2846         * class.c (mono_class_setup_fields): Fix a warning.
2847         
2848         * class.c (mono_class_from_name): Add support for assemblyref entries
2849         in the EXPORTEDTYPE table.
2850
2851         * reflection.c: Add support for handling type forwarders under net 2.0.
2852
2853         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2854         
2855 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2856
2857         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2858         overwriting entries in ModuleBuild->types, also clean up the code
2859         a little. Fixes #77774.
2860
2861 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2862
2863         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2864         load friend assembly info when present.
2865
2866 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2867
2868         Fix crasher on gtest-158.cs.
2869         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2870         the return value if the MonoClass we want is yet in an
2871         inconsistent state.
2872         * class.c (mono_class_create_from_typedef): Add an comment
2873         explaining an order dependency between mono_class_setup_parent and
2874         mono_class_setup_mono_type.
2875
2876 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2877
2878         * class.c: documentation updates and events bug fix.
2879
2880 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2881
2882         * class.c: some cleanup, locking fixes.
2883
2884 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2885
2886         * class.c: fix the generics code to setup nested
2887         type info to the instantiated type (bug #77770).
2888
2889 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2890
2891         * marshal.c: fixed a few type correctness issues.
2892
2893 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2894
2895         * loader.c: the Set/Get/Addrtess array methods should be public.
2896
2897 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2898
2899         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2900         
2901         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2902         info->wrapper.
2903
2904 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2905
2906         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2907
2908         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2909
2910         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2911         (mono_mempool_alloc0): Ditto.
2912
2913 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2914
2915         * socket-io.c:
2916         (create_object_from_sockaddr): it was allocating 4 extra bytes
2917         for the AF_UNIX data. Fixes bug #77747.
2918
2919 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2920
2921         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2922
2923 2006-03-09  Dick Porter  <dick@ximian.com>
2924
2925         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2926         Fixes bug 76966 again.
2927
2928 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2929
2930         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2931         names from r57532
2932         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2933
2934 2006-03-07  Martin Baulig  <martin@ximian.com>
2935
2936         * object.c
2937         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2938
2939 2006-03-07  Martin Baulig  <martin@ximian.com>
2940
2941         * class.c
2942         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2943         regression introduced in r56970; see gtest-252.cs.
2944
2945         * loader.c (mono_get_method_constrained): Correctly handle generic
2946         methods; see gtest-253.cs.
2947
2948 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2949
2950         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2951
2952 2006-03-04  Martin Baulig  <martin@ximian.com>
2953
2954         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2955         compute the parent type at runtime, just like we're already doing
2956         it for interfaces.
2957
2958         * reflection.c
2959         (mono_reflection_bind_generic_parameters): Don't compute the
2960         parent type anymore.
2961
2962         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2963
2964 2006-03-04  Martin Baulig  <martin@ximian.com>
2965
2966         * mono-debug-debugger.h
2967         (mono_debugger_create_notification_function): Allocate memory at
2968         runtime and return a pointer to it.
2969
2970 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2971
2972         * assembly.c: Fix windows build.
2973         
2974         * assembly.c: Fix build.
2975
2976         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2977
2978         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2979         
2980 2006-03-03  Dick Porter  <dick@ximian.com>
2981
2982         * process.c
2983         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2984         Check parameters before dereferencing them.  Fixes Aaron's part of
2985         bug 77393.
2986
2987 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2988
2989         Fix performance regression.
2990         * loader.c (find_method_in_class): Add 'from_class' argument.
2991         Rename 'klass' argument to 'in_class'.  The signature is compared
2992         against the method in 'in_class', and the corresponding method is
2993         returned from 'from_class'.
2994         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2995         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2996         type definition and generic instantiation in parallel.
2997         (mono_get_method_constrained): Update to changes.
2998
2999 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3000
3001         * threads.c: make sure the domain is correct, too when doing
3002         mono_thread_attach ().
3003
3004 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
3005
3006         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3007         windows. Fixes #77683.
3008
3009 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3010
3011         * object.h, *: introduced specific way to set elements of an array
3012         of references to be used as write barrier. Still need to audit the
3013         uses of mono_array_addr.
3014
3015 2006-03-01  Miguel de Icaza  <miguel@novell.com>
3016
3017         * object-internals.h: New field to cache the assmebly name, patch
3018         from Tambet Ingo (tambet@ximian.com)
3019
3020 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3021
3022         * decimal.h, class-internals.h, metadata-internals.h,
3023         file-io.h: mark a few function declarations as internal, to
3024         reduce the number of PLT entries.
3025
3026 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3027
3028         * file-io.c: fix typo in warning message.
3029
3030 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3031
3032         * loader.c: on unix, lookup the "*A" version of a function
3033         if charset is auto as a second option before failing.
3034
3035 2006-02-28  Raja R Harinath  <rharinath@novell.com>
3036
3037         * class.h (mono_class_inflate_generic_method): Revert to two
3038         argument version.
3039         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3040         (mono_class_inflate_generic_method_full): Add.
3041         * class.c (mono_class_inflate_generic_method_full): Rename from
3042         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3043         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3044         * loader.c, reflection.c: Update to changes.
3045
3046 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3047
3048         * icall.c: const fixes and small improvements.
3049
3050 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3051
3052         * threadpool.c: for asynchronous connect(), enable the same workaround
3053         for BSD 6 as for the Mac. Fixes bug #77637.
3054
3055 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3056
3057         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3058         formatted classes. Fixes #77524.
3059
3060 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3061
3062         * class.c (inflate_generic_type): Add a couple more
3063         micro-optimizations.
3064         (inflate_generic_context): Don't use the 'gmethod' from
3065         'inflate_with'.
3066         (mono_class_inflate_generic_method): If the method has generic
3067         parameters, but the passed-in context doesn't have a 'gmethod',
3068         create one.  Use the possibly simplified generic instantiation
3069         from the declaring class instead of the one passed in.
3070
3071 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3072
3073         Make generic method signature and method header handling lazy.
3074         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3075         (inflate_generic_header): Likewise.
3076         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3077         parameter to avoid inflating types.
3078         (mono_get_inflated_method): Empty out.
3079         * class.h (mono_class_inflate_generic_method): Update to changes.
3080         * loader.c (mono_get_method_from_token): Don't parse signature for
3081         generic methods, nor methods of generic classes.
3082         (mono_method_signature): Rename from 'mono_method_signature'.
3083         Inflate signature on demand.
3084         (mono_method_get_header): Inflate method header on demand.
3085         * reflection.c: Update to changes.
3086
3087 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3088
3089         * metadata.c (mono_metadata_inflate_generic_inst): If the
3090         instantiation is closed, don't bother expanding it in the new
3091         context.
3092         * class.c (inflate_generic_class): If the generic instantiation
3093         doesn't change after inflation, return the argument itself.
3094         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3095         Add bounds checks.
3096         (inflate_generic_context): If neither the generic class nor the
3097         generic method instantiations change, return the original context.
3098         * reflection.c (mono_method_get_object): Do
3099         'mono_get_inflated_method' before accessing the ->klass field.
3100         (inflate_mono_method): Don't create a MonoGenericMethod unless
3101         necessary.
3102         (inflate_method): Don't pass a constructed type as the declaring
3103         type of a methodbuilder.
3104
3105 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3106
3107         * object.c: fix memory overwrite.
3108
3109 2006-02-22  Dick Porter  <dick@ximian.com>
3110
3111         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3112         it doesn't work any more.
3113         (mono_threads_request_thread_dump): Fix unused variable warnings.
3114
3115 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3116
3117         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3118         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3119         the public header file.
3120
3121 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3122
3123         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3124
3125 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3126
3127         * class-internals.h, object.c: reduce the size of MonoVTable
3128         and store the interface_offsets array at negative offsets.
3129
3130 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3131
3132         * metadata.c: tweak table descriptors data structures to reduce
3133         size and runtime relocations.
3134
3135 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3136
3137         * marshal.c: fix some types and opcodes to be type-safe
3138         in marshaling wrappers.
3139
3140 2006-02-21  Ankit Jain  <jankit@novell.com>
3141
3142         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3143
3144 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3145
3146         * metadata.c (get_constraints): Relax debugging checks for monodis.
3147
3148 2006-02-21  Ankit Jain  <jankit@novell.com>
3149
3150         * metadata.c (mono_metadata_load_generic_params): Move the code
3151         checking for ambiguous generic params from here to mono/dis/get.c
3152         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3153
3154 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3155
3156         Fix assertion triggered when compiling nemerle.
3157         * class.c (mono_get_shared_generic_inst): Rename from
3158         get_shared_inst and make non-static.
3159         * loader.c (mono_get_shared_generic_method): New.  Used to create
3160         the MonoGenericContext-equivalent of a MonoGenericContainer.
3161         (mono_get_method_from_token): Initialize the 'context' field of
3162         the created MonoGenericContainer.
3163         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3164         * metadata.c (get_constraints): Add sanity check.
3165         * class-internals.h: Add new internal methods.
3166
3167         * reflection.c (verify_safe_for_managed_space): New sanity check.
3168         Currently checks that owner-less generic parameters aren't allowed
3169         in managed space.
3170         (mono_type_get_object): Use it.
3171         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3172         that are now in mono_type_get_object.
3173         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3174
3175 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3176
3177         * metadata.c (mono_type_create_from_typespec): Rename from
3178         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3179         argument and caching of types in the generic container.
3180         (unwrap_arrays, find_generic_param): Remove.
3181         * metadata-internals.h: Update.
3182         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3183
3184 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3185
3186         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3187
3188         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3189         return values. Fixes #77581.
3190
3191         * class.c (mono_fnptr_class_get): Switch name and name_space.
3192
3193         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3194         classes and add support for [In, Out] attributes.
3195         (mono_marshal_free_asany): Ditto. Fixes #77524.
3196
3197 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3198
3199         * class.c (mono_class_from_generic_parameter): Make more robust to
3200         incomplete MonoGenericContainers from monodis.
3201
3202 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3203
3204         * class-internals.h: added some more exception types.
3205         * class.c, metadata.c: added a few checks to handle missing
3206         types.
3207
3208 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3209
3210         Use owner-less generic-params some more.
3211         * class.c (my_mono_class_from_generic_parameter): Remove.
3212         (mono_class_from_generic_parameter): Handle null image,
3213         param->name and param->owner.
3214         (mono_class_from_mono_type): Update.
3215         (mono_class_create_from_typespec): Remove 'container' parameter.
3216         If that parameter is non-null, the result is always inflated by
3217         'mono_class_get_full' anyway.
3218         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3219         parameter.
3220         (mono_class_get_full): Update.
3221
3222         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3223         instance is not open, don't bother inflating.
3224         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3225         parse metadata for inflated classes.
3226         (_mono_class_get): Change GenericContext* parameter to
3227         GenericContainer*.
3228         (mono_class_create_from_typespec): Likewise.  Simplify, and
3229         implement trivially.  All the cases are handled in
3230         mono_class_from_mono_type.  Don't inflate returned class.
3231         (mono_class_get_full): Delegate GENERICINST optimization to
3232         inflate_generic_type.
3233         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3234
3235 2006-02-16  Dick Porter  <dick@ximian.com>
3236
3237         * socket-io.c (create_object_from_sockaddr): Fix typo.
3238         (create_sockaddr_from_object): Check array lengths before
3239         potentially accessing items off the end.
3240         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3241         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3242         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3243         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3244         length checks to avoid wraparound overflows.
3245         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3246         contents of the array of sockets
3247         (hostent_to_IPHostEntry2)
3248         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3249         Check return value of inet_ntop ().
3250         (addrinfo_to_IPHostEntry): Fix typo
3251
3252 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3253
3254         Type metadata parsing doesn't use generic-instantiation information.
3255         * metadata.c (mono_metadata_parse_array_full): Change
3256         MonoGenericContext* parameter to MonoGenericContainer*.
3257         (mono_metadata_parse_type_full): Likewise.
3258         (mono_type_create_from_typespec_full): Likewise.
3259         (mono_metadata_parse_mh_full): Likewise.
3260         (mono_metadata_parse_generic_inst): Likewise.
3261         (do_mono_metadata_parse_generic_class): Likewise.
3262         (do_mono_metadata_parse_type): Likewise.
3263         * metadata-internals.h: Update to changes.
3264         * class.c (mono_class_find_enum_basetype): Likewise.
3265         (mono_class_setup_fields): Likewise.
3266         (mono_class_create_from_typespec): Likewise.
3267         * loader.c (method_from_methodspec): Likewise.
3268         (mono_get_method_from_token): Likewise.
3269         (mono_method_get_header): Likewise.
3270
3271 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3272
3273         * marshal.c: handle additional GENERICINST case (patch from
3274         Thong Nguyen <tum@veridicus.com>).
3275         Fix a few cases where LDIND_I/STIND_I was used for references.
3276
3277 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3278
3279         * reflection.c (mono_reflection_get_token): Remove unused variable.
3280
3281 2006-02-16  Martin Baulig  <martin@ximian.com>
3282
3283         * reflection.c (mono_reflection_get_token): Add support for fields
3284         in instantiated generic types.
3285
3286         * icall.c
3287         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3288
3289 2006-02-15  Martin Baulig  <martin@ximian.com>
3290
3291         * icall.c
3292         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3293         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3294         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3295         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3296
3297 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3298
3299         * class.c, metadata.c, metadata.h, object.c, icall.c,
3300         marshal.c: changed mono_type_get_underlying_type () to do
3301         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3302         Fixed handling of instantiated generic valuetypes (bug #75479).
3303
3304 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3305
3306         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3307         Delegate to mono_metadata_decode_value, and work on the returned value.
3308
3309         * icall.c (ves_icall_MonoType_GetGenericArguments):
3310         Add consistency check here too.
3311         
3312 2006-02-15  Ankit Jain  <jankit@novell.com>
3313
3314         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3315         char/short etc.
3316
3317 2006-02-15  Ankit Jain  <jankit@novell.com>
3318
3319         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3320         signed values, used only for representing lower bounds of arrays.
3321         (mono_metadata_parse_array_full): Use new
3322         mono_metadata_decode_signed_value to decode lower bounds.
3323
3324 2006-02-14  Martin Baulig  <martin@ximian.com>
3325
3326         * reflection.c
3327         (mono_reflection_get_token): Support "MonoGenericMethod" and
3328         "MonoGenericCMethod" and allow generic instances / methods.
3329
3330 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3331
3332         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3333         to obtain the terminal size using an ioctl.
3334
3335         * object.c (mono_nullable_init): Revert this as nullable reference
3336         types are not valid.
3337         (mono_nullable_box): Ditto.
3338
3339 2006-02-09  Dick Porter  <dick@ximian.com>
3340
3341         * threads.c (mono_thread_detach): Drop a reference to the thread
3342         we're detaching.
3343
3344 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3345
3346         * object.c (mono_nullable_init): Handle nullable reference types.
3347         (mono_nullable_box): Ditto. Fixes #77446.
3348
3349 2006-02-07  Martin Baulig  <martin@ximian.com>
3350
3351         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3352
3353 2006-02-07  Ankit Jain  <jankit@novell.com>
3354
3355         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3356         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3357         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3358         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3359         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3360         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3361
3362 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3363
3364         * class.c (mono_class_create_generic): Set type_token as well.
3365
3366         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3367         compatible with MS.
3368
3369 2006-02-02  Martin Baulig  <martin@ximian.com>
3370
3371         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3372         has never been used so far.
3373
3374 2006-02-02  Martin Baulig  <martin@ximian.com>
3375
3376         * mono-debug-debugger.h: Changed comment at the top of this file;
3377         the header is not installed, but it's safe to #include it from
3378         within the JIT.
3379
3380         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3381         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3382
3383 2006-02-02  Martin Baulig  <martin@ximian.com>
3384
3385         * mono-debug.h
3386         (MonoSymbolTable): Removed the `metadata_info' field.
3387
3388         * mono-debug.c
3389         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3390
3391         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3392         (mono_debugger_add_builtin_types): Removed.
3393         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3394         (mono_debugger_create_notification_function): We now operate on a
3395         pre-allocated area; take a `gpointer' and return `void'.
3396
3397         * mono-debug-debugger.c
3398         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3399         (mono_debugger_add_builtin_types): Removed.
3400
3401 2006-02-02  Martin Baulig  <martin@ximian.com>
3402
3403         * threads.c (mono_debugger_create_all_threads): New public method.
3404
3405 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3406
3407         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3408         breaks on several platforms.
3409
3410 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3411
3412         * assembly.c: the VS.NET build doesn't supply default values for
3413         MONO_ASSEMBLIES and MONO_CFG_DIR.
3414
3415 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3416
3417         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3418         helper function.
3419
3420         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3421
3422         * loader.c (method_from_memberref): Fix a warning.
3423
3424         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3425
3426         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3427         with explicit layout. Fixes #77433.
3428
3429 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3430
3431         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3432         max_interface_id is initialized before using it. Fixes #77398.
3433         (ves_icall_Type_GetInterfaces): Ditto.
3434
3435 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3436
3437         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3438         allocate memory for parameter attributes when parsing memberref
3439         signatures.
3440         * loader.c (mono_loader_set_error_method_load): Don't warn.
3441         (method_from_memberref): Ensure MissingMethodException gets thrown
3442         if method is not found.  Make warning more informative.
3443
3444 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3445
3446         Fix #77397
3447         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3448         return true if is byref.
3449         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3450         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3451         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3452
3453 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3454
3455         Fix tests/find-method.2.il
3456         * loader.c (find_method, find_method_in_class): Remove is_inflated
3457         argument.  Revert 2006-01-18 change.
3458         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3459         is generic, search for method in its generic definition.
3460         * class.c (mono_class_setup_vtable_general): Print generic
3461         arguments of generic types in debugging printf.
3462
3463 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3464
3465         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3466
3467         * threads.c (mono_threads_request_thread_dump): New helper function.
3468
3469 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3470
3471         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3472
3473 2006-01-25  Ankit Jain  <jankit@novell.com>
3474
3475         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3476         move definition to ..
3477         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3478         
3479 2006-01-25  Ankit Jain  <jankit@novell.com>
3480             Raja R Harinath  <rharinath@novell.com>
3481
3482         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3483         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3484         as necessary.
3485
3486 2006-01-25  Martin Baulig  <martin@ximian.com>
3487
3488         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3489         `MonoDebuggerThread' into debug-debugger.c.
3490
3491 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3492
3493         * profiler.c: fix printing of data.
3494
3495 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3496
3497         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3498           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3499
3500 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3501
3502         * object.c: fix deadlock related to string interning.
3503
3504 2006-01-23  Martin Baulig  <martin@ximian.com>
3505
3506         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3507
3508         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3509
3510 2006-01-23  Martin Baulig  <martin@ximian.com>
3511
3512         * mono-debug.h: Moved the prototypes of some functions which are
3513         used by the JIT here from mono-debug-debugger.h.
3514
3515 2006-01-21  Martin Baulig  <martin@ximian.com>
3516
3517         * Makefile.am: Don't install mono-debug-debugger.h.
3518
3519 2006-01-21  Martin Baulig  <martin@ximian.com>
3520
3521         * mono-debug-debugger.h: Enforce the private status of this header
3522         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3523         Moved some stuff from mono-debugger-jit-wrapper.h here.
3524
3525 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3526
3527         * class.c (mono_class_from_typeref): Add a sanity test to help
3528         catch lack of assembly load/search hooks.
3529
3530 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3531
3532         * marshal.c (emit_struct_conv): Relax the fields with same offset
3533         check even more. Fixes #77230.
3534
3535 2006-01-18  Martin Baulig  <martin@ximian.com>
3536
3537         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3538         argument; if false, we compare the uninstantiated signatures.
3539         (method_from_memberref): Compare the uninstantiated signatures;
3540         fixes #76417.
3541
3542 2006-01-18  Robert Jordan  <robertj@gmx.net>
3543
3544         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3545         Clear the weak link. Fixes bug #77170.
3546
3547         * gc.c (mono_gchandle_free):
3548         Reflect *-gc.c changes (tiny optimization).
3549
3550 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3551
3552         * metadata.c (mono_metadata_signature_dup): Applied patch from
3553         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3554         Fixes #77288.
3555
3556 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3557
3558         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3559         marshalling from native to managed code. Fixes #77230.
3560
3561 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3562
3563         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3564         connect. Fixes bug #77020.
3565
3566 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3567
3568         * class.c: fixed id assignement for nested interfaces (bug #77275).
3569         Added also better info for --print-vtable debugging.
3570
3571 2006-01-12  Martin Baulig  <martin@ximian.com>
3572
3573         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3574         interfaces on-the-fly; fixes #76625.
3575
3576         * class-internals.h
3577         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3578         don't need that anymore.
3579
3580 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3581
3582         * socket-io.c
3583         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3584         To avoid initing the nested_classes when not needed I turned the
3585         PeerCredData as a toplevel internal class, as it has to be shared
3586         anyways. 
3587
3588         Fixes the CASA issue.
3589
3590 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3591
3592         * domain.c: Accessors for MonoJitInfo
3593
3594         * profiler-private.h: Add jitinfo to the end jit hook
3595
3596         * profiler.[ch]: Define new hooks, called after jitting which give
3597         the MonoJitInfo that was compiled
3598
3599 2006-01-10  Martin Baulig  <martin@ximian.com>
3600
3601         * class.c (mono_class_setup_events): Add support for generic
3602         classes; fixes #76440.
3603
3604 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3605
3606         Fix #77160.
3607         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3608         on passed-in method.
3609
3610 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3611
3612         * object.c (mono_runtime_invoke_array): Add Nullable support.
3613
3614         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3615
3616 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3617
3618         * file-io.c: Don't consider sockets as directory and avoid an endless
3619         loop. Fix bug #76966.
3620
3621 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3622
3623         * object.c (mono_nullable_init): New helper function.
3624         (mono_nullable_box): Ditto.
3625
3626         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3627
3628         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3629
3630         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3631         
3632 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3633
3634         * class.c (mono_class_is_assignable_from): Make T assignable to 
3635         Nullable<T>.
3636
3637 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3638
3639         * appdomain.c: Bump corlib version to 46.
3640         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3641         serialization purpose) and changed ves_icall_System_Reflection_
3642         Assembly_get_code_base signature to accept a boolean (to escape, or 
3643         not, the assembly code base).
3644
3645 2005-12-23  Dick Porter  <dick@ximian.com>
3646
3647         * icall.c: 
3648         * threads-types.h: 
3649         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3650         CreateEvent icall now returns "created" boolean parameter.
3651
3652 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3653
3654         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3655         #76967.
3656
3657         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3658         when attr_klass is an interface. Fixes #77045.
3659
3660 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3661
3662         * marshal.c (emit_struct_conv): Fix previous patch.
3663         
3664         * marshal.c (emit_struct_conv): Add a check for fields with the same
3665         offset.
3666
3667 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3668
3669         Fix regression in Mono.C5.
3670         * class.c (mono_class_create_generic): If 'klass' is an interface
3671         set up the interface offsets.
3672         (mono_class_is_assignable_from): Don't throw away generic arguments.
3673
3674 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3675
3676         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3677         type parameters.
3678
3679 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3680
3681         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3682         dead store.
3683         (do_mono_metadata_parse_generic_class): Don't pass the current
3684         generic context when parsing the type being instantiated: it
3685         cannot use it, anyway.
3686
3687         * loader.c (method_from_memberref): Don't inflate a signature if
3688         it doesn't contain any type parameters.
3689
3690 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3691
3692         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3693
3694 2005-12-14  Martin Baulig  <martin@ximian.com>
3695
3696         * class.c
3697         (mono_type_get_name_recurse): Don't return null for type
3698         parameters and open generic classes.
3699         (mono_class_setup_methods): Don't exclude generic instances.
3700         (mono_get_unique_iid): Use different IDs for different
3701         instantiations of the same generic type.
3702         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3703         open generic instances; create a normal vtable for closed generic
3704         instances.
3705         (mono_class_setup_vtable_general): We're now also called for
3706         closed generic instances.
3707
3708         * reflection.c
3709         (mono_reflection_bind_generic_parameters): Correctly use
3710         mono_metadata_lookup_generic_inst() everywhere.
3711
3712 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3713
3714         * object.c (mono_class_create_runtime_vtable): Call 
3715         mono_class_setup_vtable ().
3716
3717         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3718         function.
3719         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3720         #76959.
3721
3722         * loader.c (mono_loader_set_error_type_load): Print the type load
3723         warnings to the console so they are more visible to the user.
3724         (mono_loader_set_error_method_load): Ditto.
3725
3726         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3727         is still broken.
3728         
3729         * reflection.c (ensure_runtime_vtable): Fix build.
3730
3731         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3732         doesn't work in all cases.
3733
3734 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3735
3736         * object.c (mono_array_new_full): Treat a single dimensional array
3737         with 0 lower bounds as an szarray. Fixes #76973.
3738
3739         * reflection.c (custom_attr_visible): Really fix this.
3740
3741 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3742
3743         * reflection.c (custom_attr_visible): Allow nested public attributes
3744         as well.
3745
3746         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3747         interface check.
3748
3749 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3750
3751         * class.c (set_generic_param_owner): Delete.
3752         (mono_class_create_from_typedef): Don't set ->owner field of
3753         generic parameters to "param containers" of enclosing classes.
3754         * reflection.c (mono_reflection_initialize_generic_parameter):
3755         Likewise.
3756
3757 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3758
3759         * reflection.c (custom_attr_visible): Fix build.
3760
3761 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3762
3763         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3764         private attributes.
3765         
3766         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3767         handling of null parameter defaults.
3768
3769 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3770
3771         * class.c (mono_class_from_generic_parameter): Don't set
3772         klass->generic_container.
3773         (my_mono_class_from_generic_parameter): Likewise.
3774
3775 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3776
3777         * reflection.c (load_public_key): Fix a warning.
3778         (method_encode_code): Fix unaligned accesses.
3779
3780 2005-12-07  Martin Baulig  <martin@ximian.com>
3781
3782         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3783
3784         * reflection.c
3785         (write_generic_param_entry): Encode our custom attrs.
3786
3787         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3788
3789 2005-12-07  Martin Baulig  <martin@ximian.com>
3790
3791         * reflection.c (encode_new_constraint): Removed; we don't use the
3792         `NewConstraintAttribute' anymore.
3793
3794 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3795
3796         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3797         not fire a TypeResolve event when Assembly.GetType () is called.
3798
3799 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3800
3801         Beginning of support for nullable types in the runtime. Parts of
3802         this patch are from Martin.
3803
3804         * appdomain.c (MONO_CORLIB_VERSION): Bump
3805
3806         * domain.c (mono_init_internal): get the nullable type
3807
3808         * class.c (mono_class_is_nullable): New method
3809         (mono_class_get_nullable_param): New mehod
3810         (mono_class_create_generic): In types T? set cast_class to T
3811
3812         * class-internals.h (MonoDefaults): new nullable default class
3813         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3814         new methods.
3815
3816 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3817
3818         * metadata.c (select_container): New.  Refactor code to select the
3819         appropriate GenericContainer given the type of generic parameter
3820         we are looking for.
3821         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3822         not a MonoGenericContext.  Use select_container.  Update parameters.
3823         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3824         and MONO_TYPE_MVAR.
3825         (unwrap_arrays): Remove duplicate tests.
3826         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3827         generic instantiated class to find any arguments that are generic
3828         parameters.
3829         (mono_type_create_from_typespec_full): Use find_generic_param to
3830         avoid evicting some generic instantiations from the typespec
3831         cache.
3832
3833 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3834
3835         * reflection.c: fixed writing of doubles on ARM FPA.
3836
3837 2005-12-02  Robert Jordan  <robertj@gmx.net>
3838
3839         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3840
3841 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3842
3843         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3844         least on SUSE 10 they are not the same (on debian, they are just the
3845         same thing).
3846
3847 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3848
3849         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3850         DeclaringType for VARs and MVARs.
3851         * class.c (set_generic_param_owner): Fix initialization of owner
3852         fields.
3853
3854 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3855
3856         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3857
3858 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3859
3860         * threadpool.c: workaround for a bug that shows up on the Mac:
3861         select()+connect() on a blocking socket is not like it should
3862         be, so we proceed to connect() in that case, wasting the I/O
3863         threadpool thread until connect succeedes. Fixes bug #75436.
3864
3865 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3866
3867         * threadpool.c: fix typo when setting file descriptor states.
3868
3869 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3870
3871         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3872         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3873         create a temporary signature container.
3874         (mono_metadata_parse_generic_param): Update to changes.
3875         (mono_type_create_from_typespec_full): Update to changes.
3876         * loader.c (method_from_memberref): Don't use a
3877         MonoGenericContainer while parsing a memberref signature.
3878         (method_from_methodspec): Remove dead-store of the 'container'
3879         variable.  It's overwritten before use.
3880
3881         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3882         checks tighter.
3883         (mono_metadata_parse_generic_param): Likewise.
3884         * loader.c (find_method_in_class): Does not need a
3885         MonoGenericContainer.  Use 'mono_method_signature' rather than
3886         'mono_method_signature_full'.
3887         (find_method, mono_get_method_constrained, method_from_memberref):
3888         Update to changes.
3889
3890         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3891         owner-less generic-parameters are never evicted from the typespec
3892         cache.
3893
3894         * loader.c (method_from_memberref): Don't use the current context
3895         when parsing signatures.
3896         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3897
3898         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3899         side-effects in g_assert.
3900         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3901         that we don't potentially lose information.
3902
3903 2005-11-26  Dick Porter  <dick@ximian.com>
3904
3905         * icall.c:
3906         * threads.c: icalls to implement basic (ie, not named)
3907         System.Threading.Semaphore.
3908
3909 2005-11-24  Dick Porter  <dick@ximian.com>
3910
3911         * process.c
3912         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3913         Use GetProcessId() if it's available.
3914
3915 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3916
3917         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3918
3919 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3920             Ankit Jain  <jankit@novell.com>
3921
3922         * loader.c (mono_get_method_from_token): Initialize 'method' field
3923         of all generic parameters before parsing the signature.  Remove
3924         code that "fixed"-up MVAR references.
3925
3926 2005-11-23  Ankit Jain  <jankit@novell.com>
3927
3928         * metadata.c (mono_metadata_has_generic_params):
3929         (mono_metadata_load_generic_param_constraints):
3930         (mono_metadata_load_generic_params): Move duplicate code ...
3931         (mono_metadata_get_generic_param_row): ... here. Returns the
3932         first row-id in GenericParam table for a given owner (token).
3933         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3934         prototype.
3935
3936 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3937             Ankit Jain  <jankit@novell.com>
3938
3939         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3940         comparing VARs too.
3941         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3942         type->data.generic_param only if the type is an MVAR.
3943         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3944         leak owner-less VARs and MVARs into managed space.
3945
3946 2005-11-21  Martin Baulig  <martin@ximian.com>
3947
3948         * class-internals.h
3949         (MonoMethod): Moved the `generic_container' here from
3950         `MonoMethodNormal' since we now also need it for
3951         `MonoMethodPInvoke';
3952         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3953         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3954         an union containing both `MonoMethodNormal' and
3955         `MonoMethodPInvoke'.
3956
3957         * loader.c
3958         (mono_get_method_from_token): Allow implementing generic methods
3959         as interncalls.
3960
3961         * threads.c
3962         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3963         icall.
3964
3965 2005-11-17  Dick Porter  <dick@ximian.com>
3966
3967         * icall.c: 
3968         * process.h: 
3969         * process.c: Split the Process Start_internal icall into
3970         ShellExecuteEx_internal and CreateProcess_internal, which are
3971         called depending on whether UseShellExecute is true.  Fixes bug
3972         76670.
3973
3974         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3975
3976 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3977
3978         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3979         'msize' parameters, use the information in 'mspec' instead.
3980         (emit_object_to_ptr_conv): Ditto.
3981
3982         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3983         fields out of order. Fixes #76733.
3984
3985 2005-11-17  Ankit Jain  <jankit@novell.com>
3986
3987         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3988
3989 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3990
3991         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3992           bug #76575.
3993
3994 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3995
3996         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3997         for types with non-auto layout. Fixes #76717.
3998
3999 2005-11-16  Ankit Jain  <jankit@novell.com>
4000
4001         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4002         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
4003         if generic_context is null.
4004           (mono_metadata_generic_param_equal): param->owner can be null.
4005           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4006         null.
4007
4008 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4009
4010         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4011         the correct value.
4012
4013 2005-11-15  Martin Baulig  <martin@ximian.com>
4014
4015         * object.c (set_value): Use mono_class_from_mono_type() instead of
4016         the hack for generic instances; fixes #76136.
4017
4018 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
4019
4020         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4021         fields.
4022
4023         * image.c (load_metadata_ptrs): Initialize the new fields.
4024
4025         * reflection.c (create_dynamic_mono_image): Ditto.
4026
4027         * reflection.c (build_compressed_metadata): Use the new fields.
4028
4029         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4030         icall.
4031
4032         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4033         icall.
4034         
4035 2005-11-15  Ankit Jain  <jankit@novell.com>
4036             Raja R Harinath  <harinath@gmail.com>
4037
4038         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4039         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4040         new per-generic_container cache if the cached MonoType's context matches
4041         the current context.
4042           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4043         to the expected context.
4044           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4045
4046 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4047
4048         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4049         we changed the signature of an icall.
4050         * icall.c: Modify to mono_double_ParseImpl return true/false 
4051         depending on the success, instead of throwing the exception. This will
4052         help us in Double.TryParse methods.
4053         
4054 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4055
4056         * marshal.c (emit_marshal_object): Throw an exception when
4057         marshalling 'object' instead of crashing. Fixes #76696.
4058
4059 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4060
4061         * class-internals.h: Add prototype for mono_type_get_full_name ().
4062
4063 2005-11-11  Dick Porter  <dick@ximian.com>
4064
4065         * threads.c (mono_thread_manage): Make sure the main thread has
4066         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4067
4068 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4069
4070         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4071         console about the missing type.
4072         (mono_loader_set_error_method_load): Ditto.
4073
4074 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4075
4076         * mono-config.c (mono_get_config_dir): Set the system defaults if
4077         none is specified.
4078
4079         * assembly.c (mono_set_dirs): New API entry point to set the
4080         assembly and the config directory in one call
4081
4082 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4083
4084         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4085         the ftnptr was created from a delegate in a domain other than the
4086         current domain. Fixes #75377.
4087
4088         * exception.h exception.c: Add mono_get_exception_not_supported ().
4089
4090 2005-11-08  Martin Baulig  <martin@ximian.com>
4091
4092         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4093
4094 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4095
4096         * security-manager.h: Added definitions to deal with strongname key 
4097         pairs bigger (and smaller) than 1024 bits.
4098         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4099         adjust wrt the public key length being used.
4100
4101 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4102
4103         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4104           Windows build (r51396-51397).
4105
4106 2005-11-03  Martin Baulig  <martin@ximian.com>
4107
4108         * class.c (mono_class_setup_vtable_general): Also add generic
4109         methods to the vtable; fixes #76581.
4110
4111 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4112
4113         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4114         sure that we lookup GetString method from the System.Text.Encoding
4115         class, not the derived class or we get an empty method.
4116
4117         Fixed class #76612.
4118
4119 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4120
4121         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4122         if it has been previously set (embedders). 
4123
4124         Make mono_set_rootdir available also on Unix.
4125
4126 005-10-24  Robert Jordan  <robertj@gmx.net>
4127
4128         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4129
4130 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4131
4132         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4133         only calls which are made to native code use this flag.
4134
4135         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4136
4137 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4138
4139         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4140         Add support for FieldBuilders.
4141
4142 2005-10-29  Martin Baulig  <martin@ximian.com>
4143
4144         * mono-debug.c
4145         (mono_debug_using_mono_debugger): New public method; returns
4146         whether we're running inside the debugger.
4147
4148 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4149
4150         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4151         for Method/Constructor/FieldBuilders.
4152
4153 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4154
4155         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4156         and fields as well.
4157
4158 2005-10-26  Martin Baulig  <martin@ximian.com>
4159
4160         * mono-debug-debugger.c
4161         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4162
4163 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4164
4165         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4166         integer to isspace.
4167
4168 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4169
4170         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4171         when passing valuetypes byref. Fixes #76502.
4172
4173 2005-10-19  Jackson Harper  <jackson@ximian.com>
4174
4175         * profiler.c: Don't put a . in front of types that are not in a
4176         namespace.
4177
4178 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4179
4180         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4181
4182 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4183
4184         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4185         #76436.
4186         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4187
4188 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4189
4190         * assembly.c metadata-internals.h icall.c: Define an additional
4191         parameter for mono_assembly_name_parse_full, so we can avoid creating
4192         S.R.AssemblyName.Version when no version info wasn't passed.
4193         
4194 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4195
4196         * class.c (mono_type_get_full_name): Reimplement method that was
4197         removed. 
4198
4199         * image.c: Some docs
4200
4201 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4202
4203         * profiler.c (output_newobj_profile): Fix printing of Total memory
4204         on x86.
4205
4206 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4207
4208         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4209
4210 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4211
4212         * threads.c: remove debug output.
4213
4214 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4215
4216         * threads.c (mono_thread_manage): Fix crashes if more than 64
4217         threads need to be aborted. Hopefully fixes #75899.
4218
4219         * assembly.c (mono_stringify_assembly_name): New helper function.
4220
4221         * class.c: Use mono_stringify_assembly_name instead of the similar
4222         static function.
4223
4224         * assembly.h assembly.c: Add support for calling a postload search 
4225         hook if an assembly cannot be loaded.
4226
4227         * appdomain.c: Register new search hooks which call the AssemblyResolve
4228         events in AppDomain. Fixes #75231
4229
4230 2005-10-07  Martin Baulig  <martin@ximian.com>
4231
4232         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4233         methods without debug info.
4234
4235 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4236
4237         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4238         wrappers.
4239
4240 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4241
4242         * file-io.c: now that we return symlinks, use lstat and, when the file
4243         is a symbolic link, stat, to get the file attributes. Also avoid the
4244         conversion to/from utf16/external.
4245
4246 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4247
4248         * class.c (mono_class_layout_fields): Compute klass->has_references
4249         correctly if an embedded valuetype is not yet initialized. Fixes
4250         #76331.
4251
4252 2005-10-04  Martin Baulig  <martin@ximian.com>
4253
4254         * metadata.c
4255         (mono_metadata_load_generic_param_constraints): New public
4256         function; splitted the constraints loading out from
4257         mono_metadata_load_generic_params().
4258
4259         * class.c (mono_class_create_from_typedef): Call
4260         mono_metadata_load_generic_param_constraints() after setting up
4261         the type and creating our parent; fixes #75329.
4262
4263 2005-10-04  Martin Baulig  <martin@ximian.com>
4264
4265         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4266         non-dynamic parent classes.
4267
4268 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4269
4270         * file-io.c : win32 build fix (ETXTBSY seems not found).
4271
4272 2005-10-04  Martin Baulig  <martin@ximian.com>
4273
4274         * reflection.c
4275         (mono_image_get_methodspec_token): Make the cache actually work;
4276         fixes #75974.
4277
4278 2005-10-04  Martin Baulig  <martin@ximian.com>
4279
4280         * class.c (mono_class_name_from_token): Removed the unneccessary
4281         `MonoGenericContext *' argument.
4282
4283 2005-10-04  Martin Baulig  <martin@ximian.com>
4284
4285         * loader.c
4286         (method_from_methodspec): Make the caching work again; fixes the
4287         performance regression from #76262.
4288
4289 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4290
4291         * file-io.c:
4292         * file-io.h:
4293         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4294         GetFileSystemEntries that performs the same work but without going
4295         into io-layer, locking, etc.
4296
4297 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4298
4299         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4300         ThreadState_Stopped as well. Fixes #76047.
4301
4302 2005-09-29  Martin Baulig  <martin@ximian.com>
4303
4304         * class.c
4305         (inflate_generic_context): If the new context has a `gmethod', set
4306         its `container' that that gmethod's `container'.
4307
4308         * metadata.c
4309         (mono_metadata_parse_generic_param): Simplify things;
4310         `generic_container = generic_context->container;' is just fine.
4311
4312         * loader.c (method_from_methodspec): Code cleanups.
4313
4314 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4315
4316         * decimal.c: fix warning (and let gcc generate correct
4317         code on ARM with optimizations).
4318
4319 2005-09-28  Martin Baulig  <martin@ximian.com>
4320
4321         * loader.c
4322         (method_from_memberref): Added `MonoGenericContext *class_context'
4323         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4324         (method_from_methodspec): If we're a memberref, use the enclosing
4325         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4326
4327 2005-09-28  Martin Baulig  <martin@ximian.com>
4328
4329         * object.c (mono_runtime_invoke_array): Added support for
4330         MONO_TYPE_GENERICINST; fixes #75917.
4331
4332 2005-09-27  Martin Baulig  <martin@ximian.com>
4333
4334         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4335         `k->byval_arg.type' to determine the actual type.
4336
4337         * loader.c (method_from_methodspec): Removed some hacks.
4338
4339 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4340
4341         * class-internals.h (mono_field_is_deleted): Do the test for
4342         rtspecialname before we check the actual name of the field. This
4343         prevents us from dereferencing a pointer into the string table,
4344         saving us from accessing a few pages
4345
4346         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4347         macros. This will allow a deadlock debugger to easily be plugged
4348         in.
4349
4350 2005-09-27  Martin Baulig  <martin@ximian.com>
4351
4352         * loader.c (method_from_methodspec): Create a "signature"
4353         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4354
4355 2005-09-27  Martin Baulig  <martin@ximian.com>
4356
4357         * class.c
4358         (inflate_generic_class): Correctly set the new context's
4359         container.
4360
4361         * loader.c
4362         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4363         instead of a `MonoGenericContext *'.
4364         (mono_method_signature_full): Take a `MonoGenericContainer *'
4365         instead of a `MonoGenericContext *'.
4366
4367         * metadata.c
4368         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4369         instead of a `MonoGenericContext *'.
4370         (mono_metadata_parse_method_signature_full): Likewise.
4371
4372 2005-09-26  Martin Baulig  <martin@ximian.com>
4373
4374         * class.c
4375         (mono_class_from_generic_parameter): Set `klass->generic_container'
4376         (mono_class_from_generic_parameter): Likewise.
4377         (mono_bounded_array_class_get): We inherit the generic container
4378         from the element class.
4379
4380         * loader.c
4381         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4382         argument rather than computing it here.
4383         (method_from_memberref): Correctly set the generic context before
4384         parsing the signature.  Fixes #75681.
4385
4386 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4387
4388         * object.c (mono_class_has_special_static_fields): Fix warnings.
4389
4390 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4391
4392         * assembly.c: Add parse_public_key function, to
4393         par the public keys. Also added mono_assembly_name_parse_full,
4394         to define it the parsed key should be freed or not.
4395         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4396         to parse a long format assembly name.
4397         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4398         private, since calling it to preserve the key requires
4399         freeing it manually.
4400         
4401 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4402
4403         * locales.c : removed HAVE_ICU part.
4404
4405 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4406
4407         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4408         field_is_special_static if the klass has no special static fields.
4409
4410         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4411         (MonoCachedClassInfo): Likewise.
4412
4413         * object.c (mono_class_has_special_static_fields): New helper function.
4414
4415 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4416
4417         * class.c (mono_class_create_from_typedef): Don't call 
4418         interfaces_from_typedef_full for enums.
4419         (mono_class_create_from_typedef): Compute the base types of enums directly
4420         without calling mono_class_setup_fields ().
4421         (mono_class_find_enum_basetype): New helper function.
4422
4423         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4424         one place inside the string heap.
4425         
4426 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4427
4428         * class.c: locking fixes, code cleanups, some docs added.
4429         Allocate some data structures in the image mempool.
4430
4431 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4432
4433         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4434         the example code.
4435         
4436 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4437
4438         * class-internals.h, class.c, reflection.c: reduce memory taken by
4439         MonoClass.
4440
4441 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4442
4443         * metadata.c, metadata.h, loader.h: documentation updates, code and
4444         API cleanups.
4445
4446 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4447
4448         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4449         the example code.
4450
4451         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4452         page faults caused by the runtime while reading metadata.
4453
4454 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4455
4456         * socket-io.c: the field names were changed 3 months ago and no one
4457         realized until bug #76077 got filed!
4458
4459 2005-09-20  Martin Baulig  <martin@ximian.com>
4460
4461         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4462
4463 2005-09-20  Martin Baulig  <martin@ximian.com>
4464
4465         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4466         write the rank into the class entry.
4467
4468 2005-09-20  Martin Baulig  <martin@ximian.com>
4469
4470         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4471
4472 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4473
4474         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4475
4476         * icall.c (custom_attrs_defined_internal): New icall.
4477
4478         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4479         function.
4480         (mono_custom_attrs_construct_by_type): New helper function.
4481
4482 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4483
4484         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4485         terminate the resulting string. Fixes #76123.
4486
4487 2005-09-16  Martin Baulig  <martin@ximian.com>
4488
4489         * mono-debug.c
4490         (mono_debug_add_method): Ignore inflated methods for the moment.
4491
4492 2005-09-14  Martin Baulig  <martin@ximian.com>
4493
4494         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4495
4496 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4497
4498         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4499         return a success/failure indication.
4500         (mono_metadata_interfaces_from_typedef_full): Ditto.
4501         (get_constraints): Ditto.
4502
4503 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4504
4505         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4506         
4507         * marshal.c (emit_marshal_array): Add support for returning string
4508         arrays from delegates. Fixes #76063.
4509
4510         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4511
4512 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4513
4514         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4515         icall.
4516
4517 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4518
4519         * reflection.c icall.c: Fix after mono_get_exception_type_load
4520         signature change.
4521
4522         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4523         (mono_assembly_load_reference): Use the new helper.
4524
4525         * class-internals.h (MonoLoaderError): New structure containing 
4526         information about type loading errors.
4527
4528         * class-internals.h loader.c: Add APIs to store per-thread loader
4529         error information.
4530
4531         * loader.c class.c: Set the loader error if needed.
4532
4533         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4534
4535 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4536
4537         * decimal.c: fixed to handle the broken ARM fp format.
4538
4539 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4540
4541         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4542         broken.
4543
4544 2005-09-06  Martin Baulig  <martin@ximian.com>
4545
4546         * domain.c (supported_runtimes): Added v2.0.50727.
4547
4548 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4549
4550         * culture-info.h: reduce the size of some structures.
4551
4552 2005-09-05  Martin Baulig  <martin@ximian.com>
4553
4554         Reflect latest API changes in the August CTP.
4555
4556         * icall.c
4557         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4558         ("MonoType.HasGenericArguments"): Removed.
4559         ("MonoMethod.BindGenericParameters"): Renamed to
4560         "MakeGenericMethod".
4561         ("MethodBuilder.BindGenericParameters"): Renamed to
4562         "MakeGenericMethod".    
4563
4564 2005-09-05  Martin Baulig  <martin@ximian.com>
4565
4566         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4567
4568 2005-09-05  Martin Baulig  <martin@ximian.com>
4569
4570         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4571
4572         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4573         generic_container is non-NULL.
4574
4575 2005-09-05  Martin Baulig  <martin@ximian.com>
4576
4577         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4578
4579         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4580
4581 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4582
4583         * reflection.c (encode_locals,
4584         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4585         for large generic types.
4586
4587 2005-09-05  Martin Baulig  <martin@ximian.com>
4588
4589         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4590
4591         * class.c (mono_dup_array_type): New public method.
4592         (mono_metadata_signature_deep_dup): New public method.
4593         (dup_type): Correctly duplicate array and function types.
4594
4595 2005-09-05  Martin Baulig  <martin@ximian.com>
4596
4597         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4598
4599         * reflection.c (get_default_param_value_blobs): Handle generic types
4600         and generic methods.
4601
4602 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4603
4604         * class.c: Fixed error reporting (method/class were inversed) for 
4605         inheritance demands.
4606         * security-manager.c|h: Added the AppDomain when calling the managed
4607         System.Security.SecurityManager.InheritanceDemand method.
4608
4609 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4610
4611         * reflection.c (encode_marshal_blob): 'marshaltype' and
4612         'marshaltyperef' are alternate sources for the custom marshaler
4613         name.
4614
4615 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4616
4617         * class.c: fix creation of array classes with rank == 1
4618         (patch by Ankit Jain <jankit@novell.com>).
4619
4620 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4621
4622         * object.c: fix check for creating the bound data for arrays vs
4623         szarrays.
4624
4625 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4626
4627         * object.c: configuration file name is now based on the executable name,
4628         not the image name. Fixes bug #75931.
4629
4630 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4631
4632         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4633         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4634
4635 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4636
4637         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4638
4639 2005-08-24  Ankit Jain  <jankit@novell.com>
4640             Raja R Harinath  <rharinath@novell.com>
4641
4642         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4643           called by it recursively.
4644           (mono_class_init): Remove special case in pending_init handling, since it's
4645           superseded by the fix to mono_class_from_typeref.
4646
4647 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4648
4649         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4650         BROKEN_THREAD_START stuff.
4651
4652 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4653
4654         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4655         trampoline.
4656
4657         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4658         
4659         * object.c (mono_delegate_ctor): Replace the original function address with
4660         a delegate trampoline.
4661
4662 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4663
4664         * icall.c: add boolean argument to base64_to_byte_array and 
4665         InternalFromBase64String to control whether a whitespace-only string
4666         is allowed (or should casue a FormatException to be thrown). We need
4667         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4668         to match the MS behaviour in both profiles.
4669         * appdomain.c: Bump corlib version.
4670
4671 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4672
4673         This patch implements a big portion of publisher policy
4674         support, used to bind assembly versions and redirect
4675         one assembly from version A to version B.
4676
4677         * assembly.c:
4678         New GSList loaded_assembly_bindings, for storing the cached
4679         assembly bindings.
4680         (assembly_binding_maps_name): New static function for checking if a 
4681         assembly binding information maps an assembly name.
4682         (mono_assembly_binding_info_free): New function for freeing
4683         assembly binding information resources.
4684         (get_publisher_policy_info): New static function for retrieving 
4685         assembly binding information from a MonoImage.
4686         (compare_versions): New static function for comparing an assembly
4687         binding information data and the version of an assembly name.
4688         (check_policy_versions): New static function for checking if an
4689         assembly binding info mapping an assembly name is valid for it.
4690         (mono_assembly_load_publisher_policy): New static function for
4691         loading the 'policy.major.minor.MyAssembly' image for an assembly
4692         with an assembly name 'aname'.
4693         (mono_assembly_bind_version): New static function for updating
4694         assembly redirection.
4695         (mono_assembly_apply_binding): New static function for applying
4696         assembly binding.
4697         (search_binding_loaded): New static function for searching 
4698         loaded assembly binding infos in the cache domain.
4699         (mono_assembly_load_full): Don't apply assembly binding for
4700         reflection only assemblies.
4701
4702         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4703         which contains information about assembly binding. Also
4704         declare signature for mono_config_parse_publisher_policy ()
4705         function, used to retrieve pub policy info.
4706         
4707         * mono-config.c:
4708         (publisher_policy_start): New static function used to parse publisher 
4709         policy config files.
4710         (publisher_policy_parser): New static MonoParseHandler containing 
4711         the functions used when parsing config files.
4712         (mono_config_parse_publisher_policy): New function for parsing
4713         publisher policy files.
4714         
4715 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4716
4717         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4718
4719         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4720
4721         * object.c (mono_get_addr_from_ftnptr): New helper function.
4722
4723         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4724
4725         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4726
4727 2005-08-19  Dick Porter  <dick@ximian.com>
4728
4729         * threads.c, threads.h, appdomain.c, appdomain.h,
4730         profiler-private.h, monitor.c, object.c, object-internals.h,
4731         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4732         store the thread ID, so it can hold a 64 bit value if needed.
4733
4734 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4735
4736         * reflection.c (mono_reflection_create_dynamic_method): Store the
4737         handle class into the method references as well so ldtoken works in
4738         dynamic methods.
4739
4740         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4741         types.
4742
4743 2005-08-19  Ankit Jain <jankit@novell.com>
4744
4745         Fix #75847.
4746         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4747           here rather than using the method signature of a arbitrary function
4748           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4749           two arguments.
4750           Hack done with Harinath.
4751
4752 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4753
4754         * threadpool.c: disable printing stack traces when we get a exception
4755         in a threadpool thread. I need to do more testing to figure out which
4756         cases actually print this. Fixes bug #75828.
4757
4758 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4759
4760         * icall.c: there might be ignored whitespace after the last '='. This
4761         fixes length computation and bug #75840.
4762
4763 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4764
4765         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4766         well. Fixes #75809.
4767
4768         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4769         #75784.
4770         
4771         * reflection.c (create_custom_attr_data): Ditto.
4772
4773 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4774
4775         * locales.c, culture-info.h : removed RegionLCIDMap.
4776         * culture-info-tables.h : regenerated.
4777
4778 2005-08-16  Martin Baulig  <martin@ximian.com>
4779
4780         * class.c (mono_type_get_name_recurse): Small fix.
4781
4782 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4783
4784         * locales.c : indentation fixie.
4785
4786 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4787
4788         * object-internals.h,
4789           locales.h,
4790           locales.c,
4791           culture-info.h,
4792           icall.c : added RegionInfo table support.
4793         * culture-info-table.h : regenerated for region support.
4794
4795 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4796
4797         * reflection.c (resolve_object): handle all kinds of MonoMethod
4798         including generic ones
4799
4800 2005-08-12  Ankit Jain <jankit@novell.com>
4801
4802         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4803           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4804
4805 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4806
4807         * process.c: Don't close a thread handle when it's NULL. This is a
4808         workaround for bug #75733.
4809
4810 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4811
4812         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4813
4814 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4815
4816         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4817
4818 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4819
4820         * threadpool.c: if a work item in the thread pool has a callback that
4821         catches a exception, don't propagate it after invoking the callback.
4822         Fixes bug #75336.
4823
4824 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4825
4826         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4827
4828         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4829
4830         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4831
4832         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4833
4834 2005-08-03  Ankit Jain  <jankit@novell.com>
4835
4836         Fix #75683.
4837         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4838           PInvoke calling convention is 0.
4839
4840 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4841
4842         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4843         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4844
4845 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4846
4847         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4848         to handle threads not started by the GC (patch by Michael Meeks
4849         <michael.meeks@novell.com>).
4850
4851 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4852
4853         * reflection.c: Make buffer used in emitting types larger for some
4854         big generic types (patch by Michal Moskal).
4855
4856 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4857
4858         * mono-debug.c: Fix some (not all) alignment problems.
4859
4860 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4861
4862         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4863         Invoke mono_image_load_from_data_full passing the refonly
4864         parameter.
4865
4866         * assembly.c
4867         (mono_assembly_open_from_bundle): Add the refonly argument, 
4868         in order to pass it to other methods it calls to.
4869         (do_mono_assembly_open): Add the refonly argument, in order 
4870         to pass it to other methods it calls to.
4871         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4872         the refonly parameter to it.
4873
4874         * image.c: Add loaded_images_refonly_hash and
4875         loaded_images_refonly_guid_hash to cache the reflection
4876         only loaded images.
4877         (mono_images_init): Initialize the hash tables used for
4878         caching the reflection only images.
4879         (load_modules): Invoke mono_image_open_full passing the refonly
4880         parameter to load the modules the correct way.
4881         (build_guid_table): Add the refonly argument, to re-build the 
4882         correct hash table.
4883         (do_mono_image_open): Added the refonly argument, in order to
4884         define it for the loaded image.
4885         (mono_image_loaded_full): New function, which receives an
4886         additional parameter to look for the image in the refonly or
4887         non-refonly section.
4888         (mono_image_loaded): Updated, using mono_image_loaded_full.
4889         (mono_image_loaded_by_guid_full): The same case that happens
4890         with mono_image_loaded_full.
4891         (mono_image_loaded_by_guid): Likewise.
4892         (register_image): Use the ref_only variable inside MonoImage
4893         to decide in which hash table store the current image.
4894         (mono_image_open_from_data_full): Rename
4895         mono_image_open_from_data to mono_image_open_from_data_full,
4896         adding the refonly argument, to define the ref_only variable 
4897         inside MonoImage.
4898         (mono_image_open_from_data): Return 
4899         mono_image_open_from_data_full.
4900         (mono_image_open_full): Rename mono_image_open to
4901         mono_image_open_full, receiving the new refonly argument,
4902         to pass it to inner methods.
4903         (mono_pe_file_open): Update this function, to open
4904         a MonoImage as a non-refonly image.
4905         (mono_image_close): Use the refonly variable inside
4906         MonoImage to remove the image from the correct caches.
4907
4908         * image.h: Add the signatures of mono_image_open_full,
4909         mono_image_open_from_data_full, mono_image_loaded_full,
4910         mono_image_loaded_by_guid_full.
4911
4912         * metadata-internals.h: Add the ref_only field to 
4913         MonoImage.
4914         
4915 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4916
4917         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4918         Fix the last behavior, which used to load the assemblies and
4919         extract MonoReflectionAssemblyName information, instead of
4920         extract it from the metadata tables. Needed for Reflection
4921         Only assemblies.
4922         
4923 2005-07-29  Martin Baulig  <martin@ximian.com>
4924
4925         * mono-debug-debugger.c
4926         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4927         not initialized.
4928
4929         * mono-debug.c
4930         (mono_debug_address_from_il_offset): Check whether we have
4931         debugging support before attempting to take the lock.
4932         (mono_debug_source_location_from_address): Likewise.
4933         (mono_debug_source_location_from_il_offset): Likewise.
4934         (mono_debug_il_offset_from_address): Likewise.
4935         (mono_debug_address_from_il_offset): Likewise.
4936
4937 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4938
4939         * class.c (mono_class_from_name_case): Add support for dynamic images.
4940         Fixes #75650.
4941
4942         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4943         for #75479.
4944
4945 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4946         
4947         * reflection.c (mono_method_get_object): Fix warning.
4948
4949 2005-07-28  Martin Baulig  <martin@ximian.com>
4950
4951         * mono-debug.c
4952         (mono_debug_add_wrapper): Also write the wrapper type.
4953
4954 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4955
4956         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4957         
4958         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4959         data indicates the class has none.
4960
4961 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4962
4963         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4964         loader lock with the debugger lock. Prevents deadlocks for beagle.
4965
4966         Beagle can now run on an smp box for a weekend without any
4967         issues. Woohoo!
4968
4969 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4970
4971         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4972         in a module. Fixes #75629.
4973
4974 2005-07-26  Martin Baulig  <martin@ximian.com>
4975
4976         * mono-debug.c (mono_debug_add_wrapper): New static method.
4977         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4978         interncall or a wrapper.
4979
4980         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4981         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4982         (MONO_DEBUGGER_VERSION): Bump to 51.
4983
4984         * mono-debug-debugger.c
4985         (mono_debugger_add_type): Removed this empty function.
4986         (mono_debugger_add_method): Likewise.
4987
4988 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4989
4990         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4991         before accessing method->slot.
4992
4993 2005-07-21  Jb Evain  <jbevain@gmail.com>
4994
4995         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4996         Fixes #75010.
4997
4998 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4999
5000         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5001         #75587.
5002
5003 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
5004
5005         * image.h image.c: Add mono_image_get_guid () API function.
5006
5007 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
5008
5009         There were issues when multiple threads tried to load
5010         assemblies. A deadlock was created between assemblies_mutex and
5011         mono_domain_assemblies_lock. This fixes the issue by making the
5012         assembly ref counting be lock free. See bug 75586.
5013         
5014         * image.c (mono_image_close): The add ref function here was using
5015         Interlocked operations while the unref was using a mutex and a
5016         --. I don't think this was ever a bug that would be exposed in a
5017         non-pendantic way (ie, by an embedder doing a ref on one thread
5018         and an unref on another), but for the sake of correctness, this is
5019         now Interlocked.
5020
5021         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5022         (mono_assembly_load_reference): Call mono_assembly_addref rather
5023         than touching the refcount ourselves.
5024         (mono_assembly_close): Use InterlockedDecrement to unref the
5025         assembly. Don't acquire the lock unless it is actually needed.
5026
5027 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5028
5029         * class.c (mono_class_layout_fields): Fix calculation of has_references
5030         for generic types.
5031
5032 2005-07-12  Martin Baulig  <martin@ximian.com>
5033
5034         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5035
5036         * metadata.c
5037         (mono_type_hash): Provide better hashing for generic instances.
5038         (mono_generic_inst_hash): Improve hashing.
5039         (mono_generic_class_hash): Likewise.
5040
5041         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5042         generic instances.
5043
5044 2005-07-12  Martin Baulig  <martin@ximian.com>
5045
5046         * reflection.c (mono_reflection_create_runtime_class): Remove the
5047         hack for generic type definitions and non-`Run' assemblies.
5048         (mono_reflection_bind_generic_parameters): Also use
5049         `klass->wastypebuilder' to check for TypeBuilders.
5050
5051 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5052
5053         * class.c (mono_class_layout_fields): Fix calculation of has_references
5054         for generic types.
5055
5056         * class.c (inflate_generic_class): Fix a leak.
5057         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5058         for generic types.
5059
5060 2005-07-11  Martin Baulig  <martin@ximian.com>
5061
5062         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5063         on error.
5064
5065 2005-07-11  Martin Baulig  <martin@ximian.com>
5066
5067         * loader.c (find_method): Also lookup in
5068         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5069
5070 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5071
5072         * appdomain.c (mono_domain_unload): Don't free the error message
5073         before passing it to mono_get_exception_...
5074
5075         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5076         
5077 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5078
5079         * threads.c: try to better guess an available RT signal (bug #75387).
5080
5081 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5082
5083         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5084         and CACHE_OBJECT.
5085
5086 2005-07-07  Martin Baulig  <martin@ximian.com>
5087
5088         * class.c (mono_type_get_name_full): Return NULL for
5089         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5090         fixes #75408.
5091
5092 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5093
5094         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5095         exit the appdomain as well being aborted.
5096
5097         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5098         change back to the root domain after calling managed code. This enables
5099         appdomains using threadpools to be unloaded.
5100
5101 2005-07-07  Martin Baulig  <martin@ximian.com>
5102
5103         * class-internals.h
5104         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5105         into `MonoDynamicGenericClass' since we only need it for dynamic
5106         types.
5107
5108         * reflection.c (mono_class_bind_generic_parameters): We don't need
5109         to compute the `parent' here.
5110
5111 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5112
5113         * culture-info-table.h : regenerated.
5114
5115 2005-07-06  Martin Baulig  <martin@ximian.com>
5116
5117         * icall.c
5118         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5119
5120         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5121
5122 2005-07-06  Martin Baulig  <martin@ximian.com>
5123
5124         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5125         we're doing a signature-only comparision; fixes #74945.
5126
5127 2005-07-06  Martin Baulig  <martin@ximian.com>
5128
5129         * class-internals.h (MonoGenericClass): Moved some things out into
5130         a new `MonoInflatedGenericClass' type.  
5131         (MonoInflatedGenericClass): New type; the `klass' of a
5132         `MonoGenericClass' is now computed lazyly in
5133         mono_get_inflated_generic_class().      
5134
5135         * class.c (mono_get_inflated_generic_class): New public function.
5136         (mono_class_inflate_generic_method): Removed the unused
5137         `MonoClass *' argument.
5138         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5139         all the methods.
5140         (mono_class_create_generic): Make this static and merge it with
5141         mono_class_create_generic_2(); we're now called automatically from
5142         mono_get_inflated_generic_class().
5143
5144         * loader.c (mono_method_signature): Call
5145         mono_get_inflated_method() here.
5146
5147 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5148
5149         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5150         type of fields with RVA.
5151
5152         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5153         for this pseudo class.
5154         (my_mono_class_from_generic_parameter): Likewise.
5155         (mono_class_init): Allow interfaces to have cctors.
5156
5157 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5158
5159         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5160         lazily for AOT methods.
5161
5162 2005-07-05  Martin Baulig  <martin@ximian.com>
5163
5164         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5165         returns FALSE for a successful match, not TRUE.
5166
5167 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5168
5169         * loader.c (mono_method_get_index): Optimize this a bit.
5170
5171 2005-07-04  Martin Baulig  <martin@ximian.com>
5172
5173         * class.c
5174         (class_compute_field_layout): Move the check for generic type
5175         definitions into mono_class_layout_fields().  Fixes #74684.
5176         (mono_class_from_generic_parameter): Correctly compute
5177         `klass->parent'; fixes #75457.
5178
5179         * reflection.c (register_assembly, register_module): Make sure
5180         `domain->rejobject_hash' is already created.
5181
5182 2005-07-02  Martin Baulig  <martin@ximian.com>
5183
5184         * class-internals.h
5185         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5186         `MonoDynamicGenericClass'.      
5187
5188 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5189
5190         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5191         returned by a field getter is null, since null is a valid value.
5192
5193 2005-07-01  Martin Baulig  <martin@ximian.com>
5194
5195         * reflection.c (mono_reflection_generic_class_initialize): Update
5196         the `dgclass->fields [i].parent' to the correct class.
5197         (mono_image_get_fieldref_token): Use the declaring type, not the
5198         reflected type.
5199
5200 2005-07-01  Martin Baulig  <martin@ximian.com>
5201
5202         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5203
5204 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5205
5206         * threads.c (thread_cleanup): assert that thread != NULL
5207         (wait_for_tids_or_state_change): We were using the wrong variable
5208         when accessing wait->threads. `i' was always out of the bounds of
5209         the array.
5210
5211 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5212
5213         * loader.c: map user32 and kernel32 to libMonoSupportW
5214
5215 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5216
5217         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5218
5219 2005-06-28  Martin Baulig  <martin@ximian.com>
5220
5221         * loader.c (method_from_methodspec): Fix #75334.
5222
5223 2005-06-28  Martin Baulig  <martin@ximian.com>
5224
5225         Fix #74953 - Arrays now implement the generic IList<T> interface
5226         on the 2.0 platform.
5227
5228         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5229
5230         * reflection.c (mono_class_bind_generic_parameters): New public
5231         function; similar to mono_reflection_bind_generic_parameters(),
5232         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5233
5234         * domain.c (mono_init_internal): Try to initialize.
5235         `mono_defaults.generic_array_class' here; this'll only succeed if
5236         we're using the 2.0 corlib.
5237
5238         * icall.c
5239         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5240         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5241         (mono_lookup_internal_call): Added support for nested classes.
5242
5243         * loader.c
5244         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5245         we're an interncall and have generic arguments.
5246
5247         * class.c
5248         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5249         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5250         instance of System.Array.InternalArray<T> for arrays, so they
5251         implement the generic IList<T> interface.
5252
5253 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5254
5255         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5256         (chastamar@yahoo.com). Fixes #75374.    
5257
5258 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5259
5260         * culture-info-table.h: regenerated.
5261
5262 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5263
5264         * icall.c: handle spaces correctly for base64 strings.
5265
5266 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5267
5268         * *.c: Kill some warnings.
5269
5270 2005-06-23  Duncan Mak  <duncan@novell.com>
5271
5272         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5273         that this builds on Solaris 10 (x86).
5274
5275 2005-06-23  Martin Baulig  <martin@ximian.com>
5276
5277         * class.c
5278         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5279         generic type definitions.
5280
5281 2005-06-23  Martin Baulig  <martin@ximian.com>
5282
5283         Fix #75331.
5284
5285         * metadata.c (mono_class_get_overrides): Renamed to
5286         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5287         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5288         pass it to mono_get_method_full().
5289
5290 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5291
5292         * reflection.c (mono_reflection_create_runtime_class): take the
5293         mono_domain_lock in this method. Prevents deadlocks
5294
5295 2005-06-22  Martin Baulig  <martin@ximian.com>
5296
5297         * loader.c (method_from_methodspec): Fix #75330.
5298
5299 2005-06-22  Martin Baulig  <martin@ximian.com>
5300
5301         * reflection.c (type_get_qualified_name): Use
5302         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5303         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5304         argument; use it if we don't have an assembly name.
5305
5306 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5307
5308         * object.c: In mono_message_init, set "copy out" flag for in
5309         parameters with the [Out] flag.
5310
5311 2005-06-21  Martin Baulig  <martin@ximian.com>
5312
5313         * class.c
5314         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5315         and MONO_TYPE_PTR.
5316
5317 2005-06-21  Martin Baulig  <martin@ximian.com>
5318
5319         * class.c (mono_class_init): Don't initialize `class->fields' for
5320         generic instances since they're initialized again in
5321         compute_field_layout(). 
5322         (compute_field_layout): Set the field's `generic_info' here; fix
5323         #75320. 
5324
5325 2005-06-21  Martin Baulig  <martin@ximian.com>
5326
5327         * class-internals.h
5328         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5329
5330         * metadata.c (mono_metadata_generic_method_equal): Also
5331         distinguish the `generic_class'; fixes #75334.
5332
5333 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5334
5335         * domain.c:
5336         * appdomain.c:
5337         * domain-internals.h:
5338         * reflection.c: 'domain_assemblies' field is now protected by its own
5339         lock. Don't call into managed code to run the AssemblyLoad event if we
5340         now there are no registered delegates for it.
5341
5342 2005-06-20  Martin Baulig  <martin@ximian.com>
5343
5344         * class.c (mono_class_is_assignable_from): Use a custom version of
5345         mono_class_has_parent() to make things work for generic instances;
5346         fix #75300.
5347
5348 2005-06-20  Martin Baulig  <martin@ximian.com>
5349
5350         * loader.c (method_from_methodspec): Apply a patch from
5351         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5352
5353 2005-06-20  Martin Baulig  <martin@ximian.com>
5354
5355         * class.c (mono_class_init): Reverted Zoltan's last change; it
5356         breaks generics.
5357
5358 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5359
5360         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5361
5362 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5363
5364         * socket-io.c: fix the index in the socket array for writable/error
5365         sockets. Fixes bug #75306.
5366
5367 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5368
5369         * class.c (mono_class_init): Allow interfaces to have static ctors.
5370
5371 2005-06-17  Martin Baulig  <martin@ximian.com>
5372
5373         * loader.c (method_from_methodspec): Use `context->container' when
5374         parsing the `gmethod->inst'.
5375
5376 2005-06-17  Martin Baulig  <martin@ximian.com>
5377
5378         * class.c (mono_type_get_name_recurse): Don't add the assembly
5379         name for type arguments.
5380
5381 2005-06-15  Martin Baulig  <martin@ximian.com>
5382
5383         * reflection.c (mono_image_get_inflated_method_token): Encode
5384         correct klass; fixes #75260.
5385
5386 2005-06-13 Michal Moskal <malekith@nemerle.org>
5387
5388         * icall.c: Make GetCorrespondingMethod/Constructor take
5389         MonoReflectionMethod method not MonoMethod. Removed
5390         MonoType.GetCorrespondingField, and make
5391         MonoGenericType.GetCorrespondingField take name not
5392         MonoClassField.
5393
5394 2005-06-13  Michal Moskal <malekith@nemerle.org>
5395
5396         * reflection.c (field_encode_signature, encode_locals):
5397          Make sizes of buffers for types larger (for big generic types).
5398          (create_generic_typespec,
5399          mono_reflection_sighelper_get_signature_local,
5400          mono_reflection_sighelper_get_signature_field):
5401          Add asserts for too small buffers.
5402
5403 2005-06-15  Martin Baulig  <martin@ximian.com>
5404
5405         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5406         if our parent is not a dynamic type.
5407
5408 2005-06-15  Martin Baulig  <martin@ximian.com>
5409
5410         * class-internals.h (MonoTypeNameFormat): New enum.
5411
5412         * class.c
5413         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5414         (mono_type_get_full_name): Removed.
5415         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5416         argument instead of the boolean's.
5417
5418         * icall.c (ves_icall_System_MonoType_getFullName):
5419         Added `gboolean assembly_qualified'.    
5420
5421         * reflection.h
5422         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5423
5424         * reflection.c (mono_reflection_parse_type): Parse the new type
5425         name format.
5426
5427 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5428
5429         * icall.c: no need to convert from utf16 to utf8 and then back again
5430         after the call to GetLogicalDrives.
5431
5432 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5433
5434         * icall.c: frombase64. Fix problems exposed by new tests.
5435
5436 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5437
5438         * icall.c: added internal calls for converting char [] and strings in
5439         base64 into byte [].
5440
5441 2005-06-10  Martin Baulig  <martin@ximian.com>
5442
5443         * class.c (mono_class_create_generic_2): Read the nested classes
5444         from the metadata rather than from `gklass->nested_classes' since
5445         `gklass' might not be initialized yet.
5446
5447 2005-06-09  Duncan Mak  <duncan@novell.com>
5448
5449         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5450         all public headers. Fixes #74919.
5451
5452 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5453
5454         * domain.c: The key for proxy_vtable_hash is now a pointer
5455         array. Added new GHashFunc and GCompareFunc functions for this.
5456
5457         * class.h: The list of interfaces in MonoRemoteClass is known in
5458         advance and can't grow (we create a new MonoRemoteClass if needed),
5459         so now the interface array can be allocated together with
5460         MonoRemoteClass.
5461         
5462         * object.c: Added a new method create_remote_class_key.
5463         Fixed mono_remote_class so it does not depend on
5464         mono_upgrade_remote_class.
5465         Removed extend_interface_array.
5466         Added new method clone_remote_class(), which makes a copy of a remote
5467         class and adds a new interface or class to it.
5468         mono_upgrade_remote_class() now creates a new remote class (or gets
5469         it from the cache) if an vtable upgrade is needed. In this way
5470         we make sure that other objects sharing the same remote class
5471         don't get the new vtable with unwanted interfaces.
5472         
5473         * object-internals.h:
5474         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5475         
5476         * marshal.c: Track changes in mono_upgrade_remote_class().
5477
5478 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5479         * icall.c: Add runtime methods for obtaining members of inflated
5480         class, which were created from supplied non-inflated members. It
5481         is used in internal Get{Method,Constructor,Field} methods in
5482         System.Type
5483
5484 2005-06-09  Martin Baulig  <martin@ximian.com>
5485
5486         * reflection.c
5487         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5488
5489 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5490         * reflection.c (mono_image_basic_init): Define
5491         Version in MonoDynamicAssembly. 
5492         
5493 2005-06-08  Martin Baulig  <martin@ximian.com>
5494
5495         Fix #75136.
5496
5497         * loader.c
5498         (mono_method_signature_full): New public method; takes a
5499         `MonoGenericContext *'.
5500         (find_method): Use mono_method_signature_full() and pass the
5501         klass'es context to it.
5502
5503         * class.c (mono_class_is_inflated_method): Use
5504         mono_method_signature_full() and pass the context to it.
5505
5506 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5507
5508         * object.c: add proper locking in mono_remote_class_vtable(),
5509         fixes possible memory corruption.
5510
5511 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5512
5513         * marshal.c (mono_remoting_marshal_init): set
5514         initialized after initialization.
5515
5516 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5517
5518         * locales.c : hush.
5519
5520 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5521
5522         * object.c (extend_interface_array): fix really silly
5523         memory corrupting / comparison bug.
5524
5525 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5526
5527         * reflection.c: Functions added to support the creation
5528         of CustomAttributeData, which includes Attribute data
5529         used by ReflectionOnly methods.
5530
5531         * reflection.h:  mono_reflection_get_custom_attrs_data and
5532          mono_custom_attrs_data_construct added (functions exposed).
5533
5534          * icall.c: Added mono_reflection_get_custom_attrs_data
5535          as icall.
5536         
5537 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5538
5539         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5540         lupus's request.
5541
5542 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5543
5544         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5545
5546         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5547         dynamic DllImportAttribute.
5548
5549         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5550         dynamic DllImportAttribute.
5551
5552         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5553         Fixes #75162.
5554
5555 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5556
5557         * threads.c: avoid segfault when an unstarted thread is aborted.
5558
5559 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5560
5561         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5562         Returns the name and version of the runtime for reporting.
5563
5564 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5565
5566         * appdomain.c: bump corlib version.
5567         * object-internals.h: new field in MonoReflectionAssembly.
5568
5569 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5570
5571         * object-internals.h: Carlos forgot to add this field.
5572
5573 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5574
5575         * icall.c: Added create_version to create instances
5576         of Version of MonoReflectionAssemblyName. This change helps
5577         the AssemblyName tests to keep running fine.
5578         
5579 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5580   
5581         * object.c (mono_method_return_message_restore): A somehow less
5582         intrusive fix for #75138.
5583
5584 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5585
5586         * object.c (mono_method_return_message_restore): Fix computation
5587         of expected number of out args.
5588
5589 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5590
5591         * reflection.c (mono_image_get_method_info): Fix the case when the
5592         charset is empty.
5593
5594 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5595
5596         * object.c: Added missing null check in
5597           mono_method_return_message_restore.
5598
5599 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5600
5601         * reflection.c (mono_image_get_method_info): Handle the case when
5602         dllentry is empty.
5603
5604 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5605
5606         * object.c: When creating the vtable for a proxy, take into account
5607         all inherited interfaces, not only the ones registered in
5608         iclass->interfaces. This fixs bug #74996.
5609         Also, in mono_method_return_message_restore, verify that the array
5610         of out args has the expected lengh.
5611
5612 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5613
5614         * socket-io.c: update the timeout in Poll when the call is interrupte.
5615
5616 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5617
5618         * socket-io.c: support abort/suspend in Select_internal after last
5619         change.
5620
5621 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5622
5623         * threadpool.c: remove warning.
5624
5625 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5626
5627         * icall.c:
5628         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5629         removing the 1024 limit from select(). Runtime part of the fix for
5630         bug #71203.
5631
5632 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5633
5634         * socket-io.c: when resolving the addresses for the same
5635         host returned by gethostname(), get the local IPs from the interface
5636         list. Loopback addresses are discarded if the are interfaces up with
5637         non-loopback ones. Fixes bug #63265.
5638
5639 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5640
5641         * appdomain.c, verify.c, object-internals.h, reflection.c:
5642         bumped corlib number to 36, and added new extra_flags field
5643         to ReflectionMethodBuilder and friends.  Fixes #75060.
5644
5645 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5646
5647         * gc.c: register a new weak link only if the object is non-null
5648         (fixes bug#75047).
5649
5650 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5651
5652         * culture-info.h : short time pattern too.
5653
5654 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5655
5656         * culture-info.h : expand long time pattern string length.
5657
5658 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5659
5660         * culture-info-table.h : update (more French date format; #72788).
5661
5662 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5663
5664         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5665         the method is static. Fixes #75029.
5666
5667 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5668
5669         * reflection.c: Update the table_idx field of method builders after
5670         saving the module, since it can change. This is a workaround for
5671         bug #74914. 
5672
5673 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5674
5675         * culture-info-table.h : update (additional French date format).
5676
5677 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5678
5679         * icall.c (ves_icall_type_Equals): Revert last change.
5680         
5681         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5682
5683         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5684
5685 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5686
5687         * class-internals.h: Added executioncontext_class field to 
5688         MonoDefaults structure.
5689         * domain.c: Cache System.Threading.ExecutionContext class in 
5690         mono_defaults.
5691         * object.c: Capture the ExecutionContext for asynchroneous calls in
5692          mono_async_result_new.
5693         * object-internals.h: Added execution_context and original_context 
5694         fields to MonoAsyncResult. Added execution_context to MonoThread.
5695         * security-manager.c|.h: Added mono_get_context_capture_method to 
5696         return the capture method (if required by the security manager or by
5697         the framework version used).
5698         * threadpool.c: Apply capture (if present) ExecutionContext in 
5699         mono_async_invoke and revert to original context after it completes.
5700
5701 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5702
5703         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5704
5705 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5706
5707         * culture-info-table.h : zh-CHT related workaround.
5708
5709 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5710
5711         * marshal.c (emit_marshal_custom): Add some error checking and call the
5712         methods in the ICustomMarshaler interface. Fixes #74875.
5713         
5714         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5715         native->managed wrappers.
5716
5717 2005-05-12  Martin Baulig  <martin@ximian.com>
5718
5719         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5720         here and use the loader lock.
5721
5722         * mono-debug.c: Properly lock when the debugger is not attached.
5723         (mono_debug_init): Release the initial lock if we're not running
5724         in the debugger.
5725
5726 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5727
5728         * marshal.c (emit_marshal_custom): Pass through NULL values without
5729         calling the custom marshalling routines.
5730
5731         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5732         conversion in structures. Fixes #74882.
5733
5734 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5735
5736         * culture-info-table.h : zh-* cultures were missing.
5737
5738 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5739
5740         * threads.c: Added a new event background_change_event which is signaled
5741         when a thread changes its background mode.
5742         Moved here several checks previously done in managed code. The checks
5743         require the thread lock, and using the thread lock in managed code
5744         can result in deadlocks.
5745         Merged Start_internal and Thread_internal into a single method. Now 
5746         Thread_internal does all work of creating and starting a thread.
5747         Added icalls for setting and getting the state of the object. Moved from
5748         managed code to avoid locking there.
5749         Added wait_for_tids_or_state_change() which is called instad of
5750         wait_for_tids when waiting for non-backround threads to end. This method
5751         will return if one of the threads ends or the background_change_event
5752         is signaled.
5753         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5754         the background mode. This method signals the background_change_event
5755         event.
5756         * icall.c:
5757         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5758         removed Start_internal.
5759         
5760 2005-05-11  Martin Baulig  <martin@ximian.com>
5761
5762         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5763         to order of some fields to get proper alignment on 64-bit machines.
5764
5765 2005-05-11  Martin Baulig  <martin@ximian.com>
5766
5767         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5768         changes as they're broken and completely fuck up the debugger.
5769
5770         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5771
5772 2005-05-10  Martin Baulig  <martin@ximian.com>
5773
5774         * reflection.c (mono_reflection_generic_class_initialize): Don't
5775         call mono_class_setup_parent() here.
5776
5777 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5778
5779         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5780         send/receive timeout use an integer in milliseconds. We were using a
5781         struct timeval.
5782
5783 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5784
5785         * locales.c:
5786         (internal_get_cultures): reserve the first slot of the array for the
5787         InvariantCulture, which will be filled in managed code.
5788
5789 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5790
5791         * reflection.c (mono_image_fill_module_table): Initialize the
5792         GENERATION field as well.
5793
5794 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5795
5796         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5797         Monitor.Enter on the object.
5798
5799 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5800
5801         * threads.c: Enable the wait for running threads when exiting.
5802         * icall.c: Suspend all threads before exiting.
5803
5804 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5805
5806         * assembly.c (mono_assembly_load_reference): Fix warning.
5807
5808 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5809
5810         * threadpool.c: changed the default number of threads per cpu. From now
5811         on, the default will be 20 + (5 * number of cpus) instead of 50.
5812
5813 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5814
5815         * loader.c (mono_method_get_signature_full): Add locking here.
5816
5817 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5818
5819         * appdomain.c: Moved methods for parsing and freeing assembly
5820         names to assembly.c.
5821         * assembly.c, domain-internals.h: Created public methods for parsing
5822         assembly names. Fixed mono_assembly_load_with_partial_name:
5823         it now finds the best match, taking into account the version,
5824         token and culture specified in the partial name. Also return
5825         the latest version if no version information is specified.
5826
5827 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5828
5829         * threadpool.c: replace check for SocketAsyncCall class.
5830
5831 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5832
5833         * threadpool-internals.h:
5834         * Makefile.am: added threadpool-internals.h
5835
5836         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5837         that happen in threadpool threads (tested on MS).
5838         (mono_thread_pool_remove_socket): new function that dispatch any pending
5839         AIO call on a socket that is closing. By now only epoll really needs it,
5840         as select/poll wake up when the socket closes.
5841
5842
5843         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5844
5845 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5846
5847         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5848
5849 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5850
5851         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5852
5853 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5854
5855         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5856         has an abort request, convert it into a suspend request.
5857
5858 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5859
5860         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5861         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5862         is not supported yet.
5863
5864 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5865
5866         * image.c: register assemblies loaded from data (bundles) in the loaded
5867         assemblies hash. Fixes bug #74772.
5868
5869 2005-04-29  Martin Baulig  <martin@ximian.com>
5870
5871         * class.c (mono_type_get_name_recurse): Update to the new naming
5872         schema from the latest .NET 2.x beta2.
5873         (mono_class_setup_vtable_general): If we're a generic instance,
5874         copy the vtable from our generic type definition and inflate all
5875         the methods in it.
5876
5877         * loader.c (find_method): Update to the new naming schema from the
5878         latest .NET 2.x beta2.
5879
5880 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5881
5882         * class.c (mono_class_init): Add a mono_loader_unlock to the
5883         #74734 fix.
5884
5885 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5886
5887         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5888         suspend_all_other_threads () call for the time being, since it can hang.
5889
5890         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5891         the background threads to exit, since it can also hang.
5892
5893         * class.c (mono_class_init): Applied patch from Ankit Jain 
5894         (radical@gmail.com). Avoid pending init errors when a field refers
5895         to a nested class using a typeref. Fixes #74734.
5896
5897         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5898         this for dynamic modules.
5899
5900 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5901
5902         * threads.c: don't wait for threads that are in the process of aborting
5903         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5904         and waiting for background threads to finish. This makes xsp and
5905         mod-mono-server exit without random length delays and/or hangs.
5906
5907 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5908
5909         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5910
5911 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5912
5913         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5914         dynamic types to prevent infinite loops. Fixes #74727.
5915
5916         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5917         ..._is_assignable_to.
5918
5919 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5920
5921         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5922
5923 2005-04-25  Martin Baulig  <martin@ximian.com>
5924
5925         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5926
5927         * domain.c
5928         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5929
5930         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5931
5932         * reflection.c (build_compressed_metadata): Set metadata header
5933         version to 2.0.
5934
5935 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5936
5937         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5938         number into an integral and a decimal part. Fixes #70473.
5939
5940         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5941
5942 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5943
5944         * culture-info-table.h : reflected the latest locale-builder output.
5945
5946 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5947
5948         * threadpool.c: check for SuspendRequested too when deciding if
5949         mono_thread_interruption_checkpoint should be called.
5950
5951 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5952
5953         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5954         * threads.c: remove interruption_mutex and use Interlocked instead. When
5955         suspending all the threads, wait for all the suspended events at once.
5956         If we're shutting down and get an APC that is going to be queued,
5957         call mono_thread_execute_interruption immediately, as the thread might
5958         be sleeping on a pthread condition or mutex.
5959
5960         * icall.c: call mono_runtime_set_shutting_down before suspending the
5961         threads.
5962
5963         Fixes bug #74693. And now xsp is happier when exiting.
5964
5965 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5966
5967         * loader.c (mono_stack_walk): Fix #74690.
5968
5969 2005-04-22  Martin Baulig  <martin@ximian.com>
5970
5971         * mono-debug.h (MonoDebugMethodJitInfo): Added
5972         `MonoDebugMethodJitInfo *jit'.
5973
5974         * mono-debug.c (mono_debug_read_method): Cache the
5975         MonoDebugMethodJitInfo in `address->jit'.
5976         (mono_debug_free_method_jit_info): New public method.
5977
5978 2005-04-22  Martin Baulig  <martin@ximian.com>
5979
5980         * class.c (mono_class_is_assignable_from): Disallow
5981         type parameter -> interface.
5982
5983 2005-04-21  Dick Porter  <dick@ximian.com>
5984
5985         * threads.c (mono_thread_create): Turn an assertion into an error.
5986
5987 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5988
5989         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5990         
5991         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5992         Fix some gcc 4.0 warnings.
5993
5994 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5995
5996         * file-io.c: fix alt dir separator char on unix systems
5997         and cleanup (fixes bug #71214).
5998
5999 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
6000
6001         * marshal.c: Use CALLVIRT instead of CALL when dispatching
6002         a call to a remote domain, since the method may be an
6003         interface method in the client domain. This fixes bug #74192.
6004
6005 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6006
6007         * threadpool.c: recv/send are now performed before going back to managed
6008         code to save one transition.
6009
6010 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6011
6012         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6013
6014         * metadata/threadpool.c: removed hack to workaround the bug above.
6015
6016         Fixes bug #74618.
6017
6018 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
6019
6020         * reflection.c reflection.h: Fix handling of parameter defaults in
6021         dynamic methods. Also fixes handling of parameter attributes.
6022         Fixes #74609.
6023
6024         * mono-debug.c (mono_debug_close_image): Fix warning.
6025
6026 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6027
6028         * socket-io.h: replaced old unused field with new 'blocking'.
6029         * threadpool.c: restore socket blocking state on windows(tm).
6030
6031 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6032
6033         * icall.c: don't return the codebase in the AssemblyName[] returned by
6034         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6035         * object-internals.h: Removed FIXME (fields were presents) and fixed
6036         versioncompat declaration.
6037
6038 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6039
6040         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6041         not closed, so don't cleanup when it happens.
6042
6043 2005-04-13  Chris Toshok  <toshok@ximian.com>
6044
6045         * mono-debug-debugger.h: change prototype for
6046         mono_debugger_lookup_type.
6047
6048         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6049         this function, although it should probably be named
6050         mono_debugger_init_type.
6051
6052 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6053
6054         * threadpool.c: fix non-AIO case.
6055
6056 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6057
6058         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6059         the built-in profiler to measure just JIT compilation times.
6060
6061 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6062
6063         * threadpool.c: the epollfd might be closed by another thread at
6064         any time, so ignore EBADF at treat it as a "we're closing" sign.
6065
6066 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6067
6068         * threadpool.c: release the semaphores with a count equals to the number
6069         of working threads in both IO and regular pools. Fixed typo that messed
6070         up the count of IO pool threads. Don't initialize the pipe handles if
6071         we're using epoll.
6072
6073 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6074
6075         * threadpool.c: some systems don't like a NULL when deleting the socket
6076         from epoll.
6077
6078 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6079
6080         * threadpool.c: fix semaphore allocation.
6081
6082 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6083
6084         * threadpool.c: added epoll() based implementation for asynchronous IO
6085         that is used instead of the default poll() when available.
6086         It can be disabled by setting MONO_DISABLE_AIO.
6087
6088 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6089
6090         * threadpool.c: windows needs 'closesocket' and instead of returning
6091         0 when the stream is closed while in select, it returns -1. Fixes bug
6092         #74573.
6093
6094 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6095
6096         * class.c (class_compute_field_layout): Fix the regression caused by
6097         the previous try.
6098
6099 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6100
6101         * threadpool.c: separate pool for socket async. IO.
6102         * threadpool.h: mono_max_worker_threads is not a global any more.
6103
6104 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6105
6106         * class.c (class_compute_field_layout): Fix #74549.
6107
6108 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6109
6110         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6111         use 2 connected sockets instead.
6112
6113 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6114
6115         * mono-config.c: Add new entry point for mkbundle
6116         mono_config_parse_memory. 
6117
6118 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6119
6120         * threadpool.c: removed another unused function.
6121
6122 2005-04-08  Ankit Jain  <radical@corewars.org>
6123
6124         * reflection.c (get_default_param_value_blobs): Add 'types'
6125         parameter to get the types encoded in the constant table.
6126         (mono_param_get_objects): Use the type from the constant table,
6127         not the type of the parameter, when creating default values.
6128         Handle null default values correctly.
6129
6130 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6131
6132         * file-io.c:
6133         * file-io.h:
6134         * threadpool.c:
6135         * threadpool.h:
6136         * icall.c:
6137         * socket-io.c: removed dead code for async IO.
6138
6139 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6140
6141         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6142
6143         * threadpool.c: intercept socket async. calls and pass them to a thread
6144         that is polling and dispatching the job items to the threadpool as
6145         socket become ready. Fixes bugs #71217, #71933.
6146
6147         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6148         between char and short/ushort arrays.
6149
6150         * socket-io.c: remove dead code.
6151
6152 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6153
6154         * locales.c,
6155           icall.c : removed InternalToUpper_Comp() and
6156           InternalToLower_Comp().
6157
6158 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6159
6160         * char-conversions.h : The tables were incorrectly generated. Should
6161           be generated against invariant culture.
6162
6163 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6164
6165         * object.c (mono_runtime_invoke_array): Fix return value when 
6166         passing pre-created valuetype objects to ctors.
6167
6168         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6169         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6170         Fixes #74338.
6171
6172 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6173
6174         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6175         only used with --security and hides the wrong corlib version error.
6176
6177 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6178
6179         * class.c: Changed mono_class_name_from_token so that types
6180         outside of a namespace don't have an initial period.  Improved
6181         the g_warning message used in _mono_class_get when loading
6182         fails.
6183         * assembly.c: In mono_assembly_load_reference, when an assembly
6184         can't be found, "No such file or directory" is misleading and
6185         unhelpful because a few paths were checked for the presence of
6186         the assembly.  When that happens (ENOENT), display a nicer
6187         message indicating the directories that were searched.  In all
6188         cases, the warning is made easier to read for non-hackers.
6189
6190 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6191
6192         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6193         project/solution.
6194         * appdomain.h|domain.c: Removed inline from functions.
6195         * appdomain.c: Reduced warnings when compiling on windows.
6196         * icall.c: Fixed output_debug declaration to gunichar2*.
6197         * mono-config.c: Reduced warnings when compiling on windows.
6198         * rand.c: Added missing "windows.h". Added missing return value.
6199         * rawbuffer.c: Added missing winsock2.h for windows.
6200         * sysmath.h: Added mono-compiler.h header to allow/ease 
6201         compilation with non-GCC compilers.
6202         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6203         Removed cast warnings.
6204
6205         Adapted from the work of J Lothian (for VC6).
6206
6207 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6208
6209         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6210         from default_path.
6211
6212 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6213
6214         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6215         the 2.0 profile.
6216
6217 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6218
6219         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6220         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6221         stuff, and it would probably use $(prefix)/share rather than
6222         $(prefix)/lib.
6223
6224 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6225
6226         * console-io.c: added 2 includes that might be missing.
6227
6228 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6229
6230         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6231         profile.
6232
6233         * reflection.c (create_custom_attr): Allocate the params array using
6234         alloca so it gets GC tracking.
6235
6236 2005-03-23  Chris Toshok  <toshok@ximian.com>
6237
6238         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6239         out some spew.
6240
6241 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6242
6243         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6244         changes to pick up any changes in prefix, etc.
6245
6246 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6247
6248         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6249         
6250         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6251         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6252
6253 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6254
6255         * class-internals.h object-internals.h class.c reflection.c: Extend the
6256         mono_lookup_dynamic_token () function to return the class of the
6257         token as well. 
6258
6259         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6260         well. Fixes #73848.
6261
6262 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6263
6264         * security-manager.c: Skip inheritance checks for intra-corlib
6265         class inheritance and method overrides. This skips a lot of checks
6266         and (anyway) permissions cannot work until corlib is loaded.
6267
6268 2005-03-23  Martin Baulig  <martin@ximian.com>
6269
6270         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6271         MONO_TYPE_GENERICINST.  
6272
6273 2005-03-23  Martin Baulig  <martin@ximian.com>
6274
6275         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6276
6277 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6278
6279         * class.c: added locking comments to some functions.
6280         Cache the interface offsets arrays (saves about 20 KB
6281         of runtime memory in a typical app).
6282         Reduce the time overhead in mono_class_setup_supertypes ().
6283
6284 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6285
6286         * icall.c: speedup and fix leaks in GetMethodsByName and
6287         GetPropertiesByName.
6288
6289 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6290
6291         * reflection.c: some locking fixes.
6292
6293 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6294
6295         * metadata.c: added missing break in case statement.
6296
6297 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6298
6299         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6300         typedbyref return values. Fixes #73941.
6301
6302 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6303
6304         * security-manager.c|h: Added demandunmanaged method and 
6305         suppressunmanagedcodesecurity class to MonoSecurityManager.
6306         Renamed aptc class to allowpartiallytrustedcallers.
6307
6308 2005-03-17  Martin Baulig  <martin@ximian.com>
6309
6310         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6311
6312 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6313
6314         * file-io.c: disabled file async. IO using aio_*. It uses the
6315         threadpool now. Workaround for bug #73718.
6316
6317 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6318
6319         * assembly.h, mono-config.c: added code to deal with bundled configs
6320         for bundled assemblies.
6321
6322 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6323
6324         * *.c, private.h: cleanup, removing old private.h header file.
6325
6326 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6327
6328         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6329         and throw_on_unmappable_char attributes.
6330
6331 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6332
6333         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6334         _ProcessName_internal.
6335
6336 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6337
6338         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6339         #73631.
6340
6341         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6342         are no longer used.
6343
6344 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6345
6346         * object.c (compute_class_bitmap): Add support for generics. Fixes
6347         #73527.
6348
6349 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6350
6351         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6352
6353 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6354
6355         * filewatcher.c: commented out the code for windows watcher, as we don't
6356         use it (we use the managed implementation instead).
6357
6358 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6359
6360         * object-internals.h (MonoThread): Remove 'unused1' field.
6361
6362         * appdomain.c: Bump corlib version.
6363
6364         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6365
6366         * reflection.c (mono_reflection_create_runtime_class): Remove the
6367         AssemblyBuilder.Save optimization since it causes too many problems.
6368
6369 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6370
6371         * exception.c|h: Added mono_get_exception_reflection_type_load to
6372         create a ReflectionTypeLoadException object.
6373         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6374         to return NULL is a InheritanceDemand fails during reflection. Updated
6375         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6376         ReflectionTypeLoadException if an InheritanceDemand fails during 
6377         reflection. Added icall mapping for GetLinkDemandSecurity.
6378         * security-manager.c|h: Added ves_icall_System_Security_
6379         SecurityManager_GetLinkDemandSecurity internal call to return the
6380         class and methods permissions set for a LinkDemand. Removed unused
6381         fields in MonoSecurityManager.
6382
6383 2005-03-10  Martin Baulig  <martin@ximian.com>
6384
6385         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6386         it's a generic instance.
6387
6388 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6389
6390         * reflection.c (mono_get_object_from_blob): Applied patch from
6391         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6392
6393         * class.c (mono_class_is_assignable_from): Another try at fixing 
6394         #73469 without breaking anything.
6395
6396 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6397
6398         * class.c: (mono_class_is_assignable_from): Revert the last changes
6399         since they don't work with generics.
6400         
6401         * class.c (mono_class_is_assignable_from): Fix build bustage.
6402
6403         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6404         the managed IsAssignableFrom method. Fixes #73469.
6405
6406         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6407         function.
6408
6409 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6410
6411         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6412         memory when the remoting callback does not sets the out arguments.
6413         Fixes #73007.
6414
6415         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6416         by mistake.
6417
6418         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6419
6420         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6421
6422         * appdomain.c: Bump corlib version.
6423
6424 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6425
6426         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6427         function.
6428
6429         * threads.c (mono_thread_attach): Detect threads which are not started
6430         by the GC pthread wrappers.
6431
6432 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6433
6434         * icall.c: Added new icall for RNG.
6435         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6436         single handle on Linux to access /dev/urandom and fix #73183.
6437
6438 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6439
6440         * object.c: setting the new vtable in a transparent proxy object must
6441         not change the GC descriptor.
6442
6443 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6444
6445         * object.c: fixed compilation without GCJ support.
6446         * reflection.c: for runtime-created types ensure klass->has_references
6447         is correct (bug #73215).
6448
6449 2005-03-02  Martin Baulig  <martin@ximian.com>
6450
6451         * class.c (mono_class_is_assignable_from): Make this work if
6452         `oklass' is a generic instance; fixes #72831.
6453
6454 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6455
6456         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6457         with hasthis set.
6458         
6459         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6460
6461         * marshal.c: Reorganize native->managed marshalling code to also use
6462         the emit_marshal_... functions.
6463
6464 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6465
6466         * object.c: typed allocs have issues with bitmap sizes > 30,
6467         so check for max_set >= 30.
6468
6469 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6470
6471         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6472         managed code. Fixes #73012.
6473
6474         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6475
6476         * metadata.c reflection.c: Load/Emit elem_mult as well.
6477         
6478         * metadata.h (MonoMarshalSpec): Add comment.
6479
6480         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6481
6482         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6483         num_elem to -1 if not given.
6484
6485         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6486
6487         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6488         given values.
6489
6490 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6491
6492         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6493
6494 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6495
6496         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6497
6498         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6499
6500 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6501
6502         * object.c: generalized the reference bitmap creation
6503         and added hooks for the new GC.
6504         * class-internals.c: removed the gc_bitmap field from MonoClass.
6505
6506 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6507
6508         * domain.c: help the compiler to produce better code
6509         in mono_jit_info_table_find ().
6510
6511 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6512
6513         * object.c: make all allocations look typed.
6514
6515 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6516
6517         * socket-io.c: load Mono.Posix if it's not loaded already
6518         (fixes bug#73033).
6519
6520 2005-02-24  Martin Baulig  <martin@ximian.com>
6521
6522         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6523         * reflection.c (dup_type): Likewise.
6524
6525 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6526
6527         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6528         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6529
6530 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6531
6532         * domain.c, threads.c, object-internals.h: make the critical thread
6533         local vars use the fast access mode (even when we're compiled in
6534         a lib). Provide accessors to be used by the jit during codegen.
6535
6536 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6537
6538         * appdomain.c: Changed hook functios behavior to include
6539         support for the reflection only assemblies. Some icalls were changed
6540         to support the mentioned assemblies too. Signatures of static methods
6541         try_assembly_resolve and real_load now have an additional parameter:
6542         refonly.
6543
6544         * assembly.c: General changes to mono_assembly_ methods to support
6545         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6546         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6547         suffix, to support an additional gbool parameter to specify whether
6548         the assembli is reflection only or not. Created some new hook functions 
6549         to add support for reflection only assemblies. Signatures of static 
6550         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6551         have now an additional parameter: refonly.
6552
6553         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6554         indicating whether the assembly is reflection only or not.
6555
6556         * exception.c: Add mono_get_exception_invalid_operation.
6557
6558         * icall.c: Throw an InvalidOperationException when trying to invoke
6559         a property/method/event, or trying to set/get the value of a field.
6560         Also add an icall to retrieve the ref_only flag to the
6561         MonoReflectionAssembly.
6562
6563 2005-02-23  Chris Toshok  <toshok@ximian.com>
6564
6565         Part of fix for #72827.
6566         * mono-debug.c (mono_debug_add_method): add lexical block data to
6567         the info we write.  Kind of a hack at the moment - we copy the
6568         lexical block info from the MonoDebugMethodInfo to the
6569         MonoDebugMethodJitInfo here, before writing it.
6570         (mono_debug_read_method): read the lexical block info.
6571
6572         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6573
6574         * debug-mono-symfile.h: add lexical block support.
6575
6576         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6577         support.
6578
6579 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6580
6581         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6582
6583         * object.c (mono_runtime_free_method): Call mono_free_method () and
6584         put the TODOs there.
6585
6586         * loader.c (mono_free_method): Free up most memory allocated for 
6587         dynamic methods.
6588
6589 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6590
6591         * reflection.c: properly flag a Type argument to a
6592         named custom attr value (bug #72248).
6593
6594 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6595
6596         * reflection.c: reduce code duplication in named custom
6597         attribute encoding.
6598
6599 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6600
6601         * reflection.c: properly encode custom attrs of type object
6602         (bug #72649).
6603
6604 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6605
6606         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6607
6608 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6609
6610         * socket-io.c: load System.dll if it's not loaded already
6611         (bug #72850 and #70477).
6612
6613 2005-02-21  Martin Baulig  <martin@ximian.com>
6614
6615         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6616         generic instances.
6617
6618 2005-02-21  Martin Baulig  <martin@ximian.com>
6619
6620         * reflection.c (mono_image_build_metadata): We also need to
6621         "fixup" the MethodImpl table after we computed the final method
6622         indices.  Call fixup_methodimpl() to do that.
6623         (fixup_methodimpl): New private method.
6624
6625 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6626
6627         * assembly.c: special case mscorlib.dll (bug#72536),
6628         patch from Carlos Alberto Cortez.
6629
6630 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6631
6632         * threads-types.h threads.c: Fix build bustage.
6633
6634         * threads.c: Use a union for long<->double conversions.
6635
6636         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6637         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6638
6639         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6640         containing the checkpoint call with NOT_TAKEN.
6641         
6642         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6643         checkpoint before pushing the arguments, so they won't have to be
6644         spilled to stack.
6645
6646 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6647
6648         * domain.c, assembly.c, domain-internals.h: make some data
6649         const and relocation-free.
6650
6651 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6652
6653         * object.c, appdomain.c, class-internals.h: introduce the
6654         MonoClassRuntimeInfo structure to hold the info needed to
6655         use a class at runtime. Made mono_class_vtable() lock-free
6656         for all the appdomains.
6657
6658 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6659
6660         * metadata-internals.h, image.c: introduce a per-image mempool to
6661         be used for memory that has the same lifetime as the image.
6662
6663 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6664
6665         * domain.c: In mono_init_internal(), instead of selecting the first
6666         runtime version supported by an executable, get a list of all
6667         supported versions and select the one for which an mscorlib exists
6668         (since even if the runtime supports a given version, it doesn't mean
6669         that the framework for that version is installed).
6670         Modified get_runtimes_from_exe to support this behavior.
6671         In supported_runtimes, added information about additional system
6672         assembly versions.
6673         
6674         * assembly.c: Added support for more than one system assembly version
6675         per runtime version. Updated the assembly list.
6676         In mono_assembly_remap_version, removed the initial version check,
6677         since we don't know to which version we need to compare until we
6678         get the version set on which the assembly is based.
6679         Moved the code for loading corlib into the new method
6680         mono_assembly_load_corlib(), so it can be used by the initialization
6681         code.
6682         
6683         * domain-internals.h: Updated data structures and added declaration
6684         for mono_assembly_load_corlib.
6685
6686 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6687
6688         * reflection.c (resolve_object): Fix the creation of the signature in 
6689         the SignatureHelper case.
6690
6691         * assembly.c (mono_assembly_remap_version): Fix binary search.
6692         
6693 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6694  
6695         * class.c: Added inheritance check when a method is overloaded (from a
6696         virtual method or when implementing an interface) and when a class is
6697         inherited. Added functions to set a failure for a class and to 
6698         retreive the exception from a failure.
6699         * class-internals.h: Added fields to MonoClass to keep the exception
6700         information status for inheritance (or other exceptions) to be thrown
6701         later (i.e. not at load time).
6702         * object.c: Throw the inheritance SecurityException when a type is to 
6703         be created with either class or method inheritance violations.
6704         * reflection.c|h: Fix when getting declsec from a class. Removed 
6705         unrequired code for class. Improved sanity in parameter naming.
6706         * security-manager.c|h: Added functions to check for class and method
6707         inheritance.
6708
6709 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6710
6711         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6712         and has_finalize in dynamic types as well.
6713
6714 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6715
6716         * culture-info-table.h : fixed currency format for en-GB (and so on).
6717
6718 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6719
6720         * gc.c: ensure the GC handles never have 0 as a value.
6721
6722 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6723
6724         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6725         a pointer to a struct to unmanaged code. Fixes #72625.
6726
6727 2005-02-16  Martin Baulig  <martin@ximian.com>
6728
6729         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6730
6731 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6732
6733         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6734
6735 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6736
6737         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6738
6739         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6740         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6741         etc. Fixes #71471.
6742
6743         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6744
6745         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6746
6747 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6748
6749         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6750         changes to make the current context a field in MonoThread.
6751
6752 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6753
6754         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6755         the last change.
6756         
6757         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6758         extracted from mono_marshal_get_native_wrapper.
6759
6760         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6761         to create wrappers around native functions.
6762
6763         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6764         delegates for arbitrary function pointers. Fixes #71472.
6765
6766 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6767
6768         * threads.c: cleaned up the code a little.
6769
6770 2005-02-15  Martin Baulig  <martin@ximian.com>
6771
6772         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6773         the data table.
6774
6775         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6776         allocate larger chunks if needed.
6777
6778 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6779
6780         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6781         in by mistake.
6782
6783 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6784
6785         * domain.c: keep the domains in an array and ensure the domain ids
6786         are kept small, so they can be used as indexes to domain-specific data
6787         with a small memory overhead.
6788
6789 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6790
6791         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6792
6793 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6794
6795         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6796
6797 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6798
6799         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6800
6801         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6802         values.
6803
6804         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6805         
6806 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6807
6808         * domain-internals.h: add the hashtable here.
6809
6810         * class-internals.h: Remove `info' from MonoMethod
6811
6812         * domain.c: Add a new hashtable, jit_trampoline_hash
6813
6814 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6815
6816         * object.c: don't set the value of static fields
6817         (fixes bug#72494).
6818
6819 2005-02-11  Martin Baulig  <martin@ximian.com>
6820
6821         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6822         (mono_debug_add_method): Silently ignore the method if it's too big.
6823         (mono_debug_add_type): Likewise.
6824
6825 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6826
6827         * threads.c, appdomain.c: remove #ifdefs from the code.
6828
6829 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6830
6831         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6832         common security informations. This allows us to stay in unmanaged code
6833         when doing LinkDemand and it's special cases (except for the first 
6834         time for initialization). The flags a very much used with --security.
6835         * reflection.c|h: Added code to get declarative security attributes 
6836         for LinkDemand and InheritanceDemand. This required to refactor the
6837         existing code for Demand.
6838         * security-manager.c|h: Added new method fields for the special cases
6839         of LinkDemand.
6840
6841 2005-02-10  Martin Baulig  <martin@ximian.com>
6842
6843         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6844         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6845
6846 2005-02-10  Martin Baulig  <martin@ximian.com>
6847
6848         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6849         debugging code; this is almost a complete rewrite.
6850
6851         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6852
6853 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6854
6855         * domain.c, object.h: expose mono_string_equal () and 
6856         mono_string_hash ().
6857         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6858         it's implemented in managed code.
6859
6860 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6861
6862         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6863         lo leak objects between appdomains.
6864
6865 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6866
6867         * assembly.c: old compilers compilation fix from 
6868         robertj@gmx.net (Robert Jordan).
6869
6870 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6871
6872         * class-internals.h: Little reminder for the future.
6873
6874         * debug-helpers.c: Fix up wrapper_type_names
6875
6876 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6877
6878         * image.c, metadata-internals.h: when loading an image from a file,
6879         mmap all of it and use the same codepaths as when using a
6880         in-memory image: the code is simpler and we use less memory
6881         (both writable and readonly).
6882
6883 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6884
6885         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6886         API to alloc runtime data structures that need to be tracked by the
6887         GC and contain pointers.
6888         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6889         make the code more readable and eventually use a different GC.
6890
6891 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6892
6893         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6894         for out arguments.
6895         
6896 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6897
6898         * object.c: In release_type_locks(), don't release the cctor lock
6899         if it has already been released. This fixes a crash in the
6900         thread5 test.
6901
6902 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6903
6904         * gc.c, marshal.c, icall.c: register a delegate for finalization
6905         only when the native function pointer has been allocated for it.
6906
6907 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6908
6909         * object.c: cleaned up some code, allocate objects that are
6910         pointer free with the atomic malloc variant. Allocate memory
6911         for static data from the mempool if it's pointer-free.
6912         Allocate the bounds array at the end of the array data, when needed.
6913         * object-internals.h, object.h: move a private function in a private
6914         header.
6915         * class.c: handle missing case in tracking references in fields.
6916
6917 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6918
6919         * class.c, class-internals.h: keep track if a type has
6920         reference fields in either the instance or static fields.
6921
6922 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6923
6924         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6925         and renamed to MonoRuntimeInfo. Added fields to store the expected
6926         framework assembly version. Changed mono_get_framework_version and
6927         mono_get_runtime_version for a single mono_get_runtime_info method.
6928         
6929         * assembly.c: Added method to remap system assembly versions to the
6930         current executing runtime version. Removed old mapping code.
6931         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6932         
6933         * icall.c, reflection.c: Track api changes.
6934
6935 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6936
6937         * loader.c (method_from_memberref): Improve error reporting,
6938         produce the class name instead of the typeref/typedef index. 
6939
6940 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6941
6942         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6943
6944 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6945
6946         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6947         stdcall and charset name mangling.  Reorganize the code and add
6948         some tracing stuff.
6949
6950 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6951
6952         * monodiet.c: More iters!
6953
6954         * marshal.c: Iter usage.
6955
6956         * icall.c: Iter usage.
6957
6958         * object.c: Use iters.
6959
6960         * debug-helpers.c: More iters
6961
6962 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6963
6964         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6965         under win32.
6966
6967 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6968
6969         * mono-debug-debugger.c: use iters
6970
6971         * class.c, class-internals.h: mono_class_setup_events is static
6972         now
6973
6974         * All callers: use iters
6975
6976 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6977
6978         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6979         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6980
6981 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6982
6983         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6984
6985         * marshal.h: Add prototypes for ldfld/stfld_remote.
6986
6987         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6988         this is called during startup.
6989         
6990 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6991
6992         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6993         MonoThreadsSync struct private in monitor.c. Changed the way
6994         MonoThreadsSync is allocated so it's faster and there is no
6995         need to keep track of it with a finalizer and it uses less memory.
6996         This also finally allows us to allocate mono objects as ptrfree when
6997         there are no reference fields.
6998
6999 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7000
7001         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7002         disappearing link to the GC interface and use them to simplify
7003         the gchandles code.
7004
7005 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7006
7007         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7008         stfld_remote which call mono_load/store_field_new. This allows methods
7009         calling ldfld/stfld wrappers to be AOTed.
7010
7011         * console-io.c: Include sys/filio.h under solaris.
7012         
7013         * console-io.c: Include curses.h if needed correctly.
7014
7015 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7016         
7017         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7018         method->klass as well.
7019
7020         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7021
7022         * class.c (mono_class_init): Switch on lazy initialization of 
7023         methods.
7024
7025         * class.c (mono_class_get_finalizer): Handle the case when the 
7026         finalizer is inherited.
7027
7028 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7029
7030         * console-io.c: <curses.h> is needed by term.h on solaris.
7031
7032 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
7033
7034         * icall.c, class-internals.h, monodiet.c, class.c: Remove
7035         mono_class_setup_properties where possible. Remove this ftn from
7036         the header file, and make it static.
7037
7038 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7039
7040         * loader.c: Add missing setup_... call.
7041
7042         * class.c: Add missing setup_... calls.
7043
7044         * class.c (mono_class_init): Switch on lazy initialization of 
7045         the generic vtable.
7046         
7047         * class.c (mono_class_init): Fix generics broken by the recent changes.
7048
7049         * monodiet.c (handle_type): Add missing setup_... calls.
7050
7051         * class.c: Back out garbage in previous patch.
7052         
7053         * class.c: Add missing setup_... calls.
7054
7055         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7056         mono_class_setup_methods () if possible.
7057
7058         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7059
7060         * class-internals.h (MonoCachedClassInfo): New structure.
7061
7062         * class.c: Initialize properties and events fields of MonoClass lazily.
7063
7064         * class.c: Add infrastructure for lazily initializing the methods and
7065         vtable fields of MonoClass. Not yet used.
7066
7067         * class.c (mono_class_get_finalizer): New helper function.
7068
7069         * class.c: Add infrastructure for loading some class related data from
7070         an AOT file.
7071
7072         * object.c: Add infrastructure for initializing the vtable from data
7073         in the AOT file.
7074
7075         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7076
7077         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7078         appropriate initialization function before accessing parts of the
7079         MonoClass structure.
7080
7081         * marshal.c: Fix warnings.
7082         
7083         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7084
7085         * mono-debug-debugger.c (get_exception_message): Use 
7086         mono_class_get_method_from_name_flags ().
7087
7088 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7089
7090         * reflection.c, appdomain.c: Replace a few manual searches that
7091         Zoltan missed. (Paolo approved this part of my initial patch).
7092
7093 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7094
7095         * profiler.c: disable recording statistical events at report time.
7096
7097 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7098
7099         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7100         to byteswap arrays of enum values, too (bug #72080).
7101
7102 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7103
7104         * appdomain.c (set_domain_search_path): Allow this to be called if
7105         domain->setup is not yet set.
7106
7107         * loader.c (mono_method_get_index): New helper function.
7108
7109         * loader.c reflection.c: Use mono_method_get_index ().
7110
7111         * class.c (mono_class_get_method_from_name_flags): New helper method.
7112
7113         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7114         this.
7115
7116         * class.c (mono_class_get_cctor): New helper method.
7117
7118         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7119         mono_class_get_method () to look up methods.
7120
7121 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7122
7123         * console-io.c: Fix the build, this should work on Windows.
7124
7125 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7126
7127         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7128         be set to null to keep things valid
7129
7130 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7131
7132         * icall.c: added Console 2.0 icalls.
7133         * Makefile.am: added console-io.[ch]
7134         * console-io.[ch]: internal calls for Console 2.0 API.
7135
7136 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7137
7138         * class.c: make sure we consider all the interfaces
7139         when calculating max_interface_id (bug found by
7140         Jeroen Frijters running ikvm).
7141
7142 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7143
7144         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7145         valuetype fields to null.
7146
7147         * object.c (set_value): Ditto. Fixes #71669.    
7148
7149 2005-01-31  Martin Baulig  <martin@ximian.com>
7150
7151         * metadata.c (mono_metadata_has_generic_params): New public
7152         function; checks whether something is a generic method.
7153
7154 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7155
7156         * appdomain.c: fix infinite recursion when adding assemblies.
7157
7158 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7159
7160         * object.c: Fix small typo to return all items for Environment.
7161         GetCommandLineArgs.
7162
7163 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7164
7165         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7166         reflection.c: more domain and assembly-unload related fixes
7167         and memory leaks plugs.
7168
7169 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7170
7171         * 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.
7172
7173 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7174
7175         * loader.c (mono_method_signature): Make this method lazy
7176         (mono_get_method_from_token): Don't computate the signature here.
7177
7178         Doing this saves quite a bit of memory. I got 90 kb on starting up
7179         monodoc. It should also save some disk reads on startup.
7180
7181         * *: MonoMethod->signature might be NULL now. You *MUST* use
7182         mono_method_signature.
7183
7184 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7185
7186         * object.c (mono_runtime_get_main_args): Return an array from the
7187         current domain here. Fixes #71938.
7188
7189 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7190
7191         * monitor.c: formatting changes to comply with the
7192         mono coding style and remove #ifdefs from the code.
7193
7194 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7195
7196         * metadata.c, private.h: remove some unneeded data
7197         and use a more compact representation for table schemas.
7198
7199 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7200
7201         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7202         to get a better distribution in hash tables.
7203         * *.c: use mono_aligned_addr_hash() where appropriate.
7204         * assembly.c: make var static.
7205
7206 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7207
7208         * domain-internals.h: Put MonoJitInfo on a diet.
7209
7210         * domain.c: Fix a warning.
7211
7212 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7213
7214         * gc.c: rework the gc handles code to reuse handles
7215         when freed.
7216
7217 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7218
7219         * domain.c: fixed long standing bug in mono_string_equal() which
7220         was brought to light with the ldstr changes.
7221
7222 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7223
7224         * reflection.c: Remove warning by adding missing include for marshal.h
7225
7226 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7227
7228         * domain.c, object.c: change the ldstr_table to hold
7229         MonoString* as keys: makes the runtime isinterned lookup
7230         faster and simplifies memory management.
7231
7232 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7233  
7234         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7235         possible to add imperative security checks before calling the icall.
7236         * reflection.c: Return security attributes on the original MonoMethod
7237         (and not the wrapped one). This fix permissions on icalls.
7238
7239 2005-01-25  Dick Porter  <dick@ximian.com>
7240
7241         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7242         the check for mktime() support actually test the mktime() return
7243         value.  "Fixes" bug 71682, though the output is still different to
7244         MS.
7245
7246 2005-01-25  Martin Baulig  <martin@ximian.com>
7247
7248         * class.c (mono_class_is_assignable_from): Make this work for
7249         generic instances.
7250
7251 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7252
7253         * marshal.c (mono_string_utf8_to_builder)
7254         (mono_string_builder_to_utf16): We might not have ownership of the
7255         string. In thise case, we need to create a new buffer.
7256
7257         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7258         be null, in which case, use the default capacity.
7259
7260 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7261
7262         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7263         GC events to the profiler.
7264
7265 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7266
7267         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7268         if you don't want the GC to run.
7269
7270 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7271
7272         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7273         start providing a GC API and keeping different implementations in
7274         their own file.
7275         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7276
7277 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7278
7279         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7280         mmap rather than allocating a huge buffer.
7281         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7282         above.
7283
7284 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7285
7286         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7287         and CheckExecutionRights.
7288         * reflection.c|h: Keep the index of the declarative security to be 
7289         used, instead of the pointer, when AOT compiler is used. Also add 
7290         class initialization when requesting demands.
7291         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7292         CheckExecutionRights. Both properties are now FALSE by default, and
7293         unmodifiable, unless the --security option is used.
7294
7295 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7296
7297         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7298         reflection.c: properly refcount images and assemblies, many leaks fixed.
7299
7300 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7301
7302         * threadpool.c: increase the timeout for threads in the thread pool to
7303         10s.  Fixes bug #67159.
7304
7305 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7306
7307         * class-internals.h: Sun's compiler insists on explicit
7308         signed on bit fields to handle then correctly.
7309
7310 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7311
7312         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7313         Make the size of the array fit only the number of invalid path
7314         chars that we have.
7315
7316         * class.c (_mono_class_get): Improve the error reporting when a
7317         class referenced is not found, to assist debugging. 
7318
7319 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7320
7321         * threads.c: fix off-by-one error.
7322         * domain.c: free data allocated in the domain.
7323
7324 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7325
7326         * reflection.c (mono_method_body_get_object): Fill out exception info
7327         as well.
7328
7329         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7330         structure.
7331         
7332 2005-01-19  Martin Baulig  <martin@ximian.com>
7333
7334         * loader.c (mono_get_method_constrained): Make this work again.
7335
7336 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7337
7338         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7339         guint16 to match the managed side.
7340
7341         * reflection.c (mono_reflection_body_get_object): Fill out local
7342         variables array.
7343
7344         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7345         as well.
7346
7347         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7348         'local_var_sig_token'.
7349
7350 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7351
7352         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7353         System.Drawing.
7354
7355         * reflection.c (mono_method_body_get_object): Handle abstract and
7356         runtime methods.
7357
7358 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7359
7360         * marshal.c, loader.c, class-internals.h, reflection.c:
7361         store the emthod data for a wrapper in an array instead of a list.
7362
7363 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7364
7365         * marshal.c: change the code to allocate memory more
7366         conservatively for method wrappers.
7367
7368 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7369
7370         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7371         fields from MonoClass to the marshal info structure where they belong.
7372
7373 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7374
7375         * class.c, object.c, class-internals.h, marshal.c: rearrange
7376         some fields and tweak some types to lower memory usage.
7377
7378 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7379
7380         * threads.c (signal_thread_state_change): Handle the case when the
7381         target thread is the current thread.
7382
7383         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7384
7385         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7386         emit_ptr_to_object_conv. 
7387
7388         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7389         marshalling. Fixes #71352.
7390
7391 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7392
7393         * metadata.h, blob.h: move table enum to blob.h so it can be included
7394         in any header.
7395         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7396         cut the size of MonoImage/MonoDynamicImage.
7397
7398 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7399
7400         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7401
7402 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7403
7404         * reflection.c, reflection.h, icall.c: add a function to check
7405         if an attribute type is defined for a metadata object.
7406
7407 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7408
7409         * object-internals.h: Added some needed fields from StringBuilder class.
7410         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7411
7412 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7413
7414         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7415         threads before shutting down the runtime.
7416
7417         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7418
7419 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7420
7421         * object-internal.h, threads.c: implement stacksize and 
7422         parameterized thread start functionality (requires
7423         matching corlib). Marked broken code for later removal.
7424
7425 2005-01-12  Martin Baulig  <martin@ximian.com>
7426
7427         * class-internals.h (MonoGenericClass): Moved the `initialized'
7428         flag to MonoDynamicGenericClass, removed `init_pending'.
7429         (MonoGenericInst): Added `is_reference' flag.
7430
7431 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7432
7433         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7434         inside the MSDOS header. Fixes #71201.
7435
7436         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7437         gc thread.
7438         (mono_domain_finalize): Ditto.
7439
7440 2005-01-12  Martin Baulig  <martin@ximian.com>
7441
7442         * class.c (mono_get_shared_generic_class): Use the cache for
7443         non-dynamic generic classes.
7444
7445         * class-internals.h (mono_class_create_generic_2): Removed
7446         function prototype, this function is now static inside class.c.
7447
7448         * class.c (mono_class_create_generic_2): Made this static, only
7449         call it from mono_class_init() and mono_class_setup_parent().
7450         (collect_implemented_interfaces_aux): Call mono_class_init() on
7451         the interfaces we collect.
7452         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7453
7454 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7455
7456         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7457         it a real thread handle.
7458
7459         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7460         MonoJitExceptionInfo, since each catch clause needs its own variable.
7461         
7462 2005-01-11  Dick Porter  <dick@ximian.com>
7463
7464         * image.c (mono_pe_file_open): New variant on mono_image_open()
7465         that does not set up the CLI metadata; used for FileVersionInfo so
7466         it can get the data for windows binaries too.
7467         
7468         * process.c (process_read_string_block): Don't read off the end of
7469         the StringTable block.
7470
7471         These both fix bug 70766.
7472
7473 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7474
7475         * gc.c: set some fields to NULL at GC cleanup time.
7476         * threads.c: if we quit the main thread, call exit ().
7477
7478 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7479
7480         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7481
7482 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7483
7484         * threads.h, threads.c, object.c: added accessor and settor for
7485         main_thread. Handle it specially when exiting from it: wait
7486         for other foreground threads to exit.
7487
7488 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7489
7490         * process.c, verify.c: remove some bloat.
7491
7492 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7493
7494         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7495         the calling convention to cdecl under win32.
7496
7497 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7498
7499         * object.c (mono_object_get_size): New function to get the size of
7500         an object instance.
7501
7502         * profiler.c (simple_allocation): Use above.
7503
7504 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7505
7506         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7507         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7508         get an appdomain by it's id and we can't assume the root's id is 0).
7509         * domain-internals.h: Change the function prototype to match.
7510         * icall.c: Change the icall table for AppDomain.
7511
7512 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7513
7514         * locales.c (string_invariant_compare_char): Only compute
7515         GUnicodeTypes in the case where we need them.  Test for ordinality
7516         first and return if so.
7517
7518         From the commit:
7519
7520                 /*
7521                  * FIXME: here we must use the information from c1type and c2type
7522                  * to find out the proper collation, even on the InvariantCulture, the
7523                  * sorting is not done by computing the unicode values, but their
7524                  * actual sort order.
7525                  */
7526
7527 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7528
7529         * loader.c: for P/Invoke methods, allow the "Internal" shared
7530         library name to refer to the calling process symbol namespace.
7531
7532 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7533
7534         * Makefile.am: Add the security manager to the build.
7535         * security-manager.c|h: New. Initialization of the security manager.
7536
7537 2005-01-07  Dick Porter  <dick@ximian.com>
7538
7539         * threads.c: 
7540         * monitor.c: Update thread state during Monitor and WaitHandle
7541         waits.  Fixes bug 71031.
7542
7543 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7544
7545         * reflection.c (property_encode_signature): Correctly handle when the
7546         property has no methods.
7547
7548 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7549
7550         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7551         
7552         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7553         fields from mb, not rmb. Fixes #71017.
7554
7555         * marshal.c (emit_ptr_to_str_conv): Add support for 
7556         ByValTStr -> string conversion. Fixes #71015.
7557
7558         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7559
7560         * mempool.c (mono_mempool_contains_addr): New helper function.
7561
7562 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7563
7564         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7565         HasSematics encoded fields.
7566         
7567         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7568         invalid string marshalling.
7569
7570         * metadata.c: Fix warnings.
7571         
7572 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7573
7574         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7575         profiler support.
7576
7577 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7578
7579         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7580         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7581         tests.
7582
7583 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7584
7585         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7586         so methods containing these can be AOTed.
7587
7588 2005-01-03  Martin Baulig  <martin@ximian.com>
7589
7590         * loader.c (find_method): Removed the hack for generic instances.
7591         (method_from_memberref): If our parent is a generic instance, pass
7592         its generic type definition to find_method() and then inflate the
7593         method.
7594         (mono_get_method_constrained): Pass the generic type definition to
7595         find_method() and inflate the method later.
7596
7597         * class-internals.h (MonoStats): Added `generic_class_count'.
7598
7599         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7600         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7601
7602         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7603         generic type definitions.
7604
7605 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7606
7607         * loader.c icall.c: Fix warnings.
7608
7609 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7610
7611         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7612         blittable types. Fixes #70864.
7613
7614 2004-12-29  Martin Baulig  <martin@ximian.com>
7615
7616         * icall.c
7617         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7618
7619         * reflection.c (mono_method_get_object): Create a
7620         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7621         call mono_get_inflated_method().
7622
7623         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7624
7625 2004-12-27  Martin Baulig  <martin@ximian.com>
7626
7627         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7628         (MonoMethodInflated): Added `inflated' field.
7629
7630         * class.c (mono_class_inflate_generic_method): Don't really
7631         inflate the method here; just set the `is_inflated' flag in the
7632         MonoMethod.
7633         (mono_class_get_inflated_method): Actually inflate the method here
7634         if it's not already inflated; we use the MonoMethodInflated's new
7635         `inflated' field as a cache.
7636
7637 2004-12-26  Martin Baulig  <martin@ximian.com>
7638
7639         * class.c
7640         (inflate_generic_class): Moved some code out of inflate_generic_type().
7641         (mono_class_inflate_generic_method): If we're already inflated,
7642         inflate the context and use the declaring method; ie. make sure
7643         the declaring method of an inflated method is always the generic
7644         method definition.
7645         (mono_class_create_from_typedef): Create
7646         `class->generic_container->context->gclass'.
7647
7648 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7649
7650         * metadata-internals.h, marshal.c, reflection.c: More
7651         MonoGHashTable->GHashTable.
7652
7653         * domain-internals.h, class.c: Change MonoGHashTable's into
7654         GHashTables for some cases where no gc stuff is used
7655
7656         All users: update apis
7657
7658 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7659
7660         * metadata.c (builtin_types): Make this `const'. Makes this get
7661         put into the shareable section.
7662         (mono_metadata_init): Casts to make gcc happy.
7663
7664 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7665
7666         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7667
7668 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7669
7670         * icall.c: Added an internal call to retrieve the position and length
7671         of assembly-level declarative security attributes (RequestMinimum, 
7672         RequestOptional and RequestRefuse). This is used by the Assembly class
7673         to re-create the corresponding permission sets.
7674
7675 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7676
7677         * marshal.c: fix the stelemref wrapper to be type correct
7678         (and faster).
7679
7680 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7681
7682         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7683         to do key & 0x7fffffff. Hashtable already does this. It just
7684         results in longer code.
7685
7686 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7687
7688         * appdomain.c: Bump corlib version.
7689         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7690         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7691         * reflection.c|h: Add functions to get declarative security infos
7692         (blob position and length) for assemblies, classes and methods.
7693
7694 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7695
7696         * reflection.c: sort the constant table (bug #70693).
7697
7698 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7699
7700         * object-internals.h, threads.c, domain.c: add accessors for
7701         the MonoThread and MonoDomain tls keys.
7702
7703 2004-12-18  Martin Baulig  <martin@ximian.com>
7704
7705         * class.c (inflate_generic_type): If we're inflating a generic
7706         instance, set `ngclass->context->container = context->container';
7707         ie. the container we inflated into.
7708
7709         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7710         inflate_generic_type() changes.
7711
7712 2004-12-17  Martin Baulig  <martin@ximian.com>
7713
7714         * class-internals.h
7715         (MonoGenericClass): Replaced `MonoType *generic_type' with
7716         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7717         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7718         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7719
7720 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7721
7722         * exception.c (mono_exception_from_token): New helper function.
7723
7724 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7725
7726         * assembly.c (mono_assembly_load_with_partial_name): Call 
7727         mono_assembly_loaded before invoking the preload hooks. Fixes
7728         #70564.
7729
7730         * object-internals.h (MonoThread): Change culture_info and 
7731         ui_culture_info into an array.
7732
7733         * threads.c: Cache culture info objects from more than one appdomain.
7734
7735         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7736         current UI culture.
7737
7738 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7739
7740         * threads.h threads.c appdomain.c: Clear the culture_info field of
7741         all threads during unloading if they point to an object in the dying
7742         appdomain.
7743
7744 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7745
7746         * culture-info.h (TextInfoEntry): New struct
7747         * object-internals.h: sync with managed
7748         * locales.c: fill the `text_info_data' field
7749         * culture-info-tables.h: update
7750
7751 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7752
7753         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7754         collector.
7755
7756 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7757
7758         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7759         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7760
7761 2004-12-12  Martin Baulig  <martin@ximian.com>
7762
7763         * mono-debug-debugger.c (write_type): If we're an enum and the
7764         builtin types have already been initialized, call mono_class_init().
7765
7766 2004-12-11  Martin Baulig  <martin@ximian.com>
7767
7768         * metadata.c (mono_metadata_load_generic_params): Added
7769         `MonoGenericContainer *parent_container' argument; automatically
7770         compute `container->is_method'; pass the correct owner to
7771         get_constraints().      
7772
7773         * reflection.c (compare_genericparam): Sort the GenericParam table
7774         according to increasing owners. 
7775
7776 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7777
7778         * profiler.c: allow disabling the default profiler.
7779
7780 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7781
7782         * decimal.c, icall.c: allow disabling System.Decimal support.
7783
7784 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7785
7786         * reflection.c: Add support for null attribute arguments.
7787
7788 2004-12-09  Martin Baulig  <martin@ximian.com>
7789
7790         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7791         names to get rid of compiler warnings.
7792
7793 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7794
7795         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7796         mono_marshal_load_type_info (). Fixes #69625.
7797         (mono_marshal_get_ptr_to_struct): Likewise.
7798
7799 2004-12-08  Martin Baulig  <martin@ximian.com>
7800
7801         * mono-debug.h: Bumped version number to 47.
7802
7803         * mono-debug-debugger.c
7804         (mono_debugger_event_handler, mono_debugger_event): Take two
7805         guint64 arguments insteed of a gpointer and a guint32.  
7806
7807 2004-12-08  Martin Baulig  <martin@ximian.com>
7808
7809         * debug-mono-symfile.h
7810         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7811         `address' to `native_offset'.
7812
7813 2004-12-08  Martin Baulig  <martin@ximian.com>
7814
7815         * class.c (mono_class_create_from_typespec): Only inflate if we
7816         either have `context->gclass' or `context->gmethod'.
7817
7818 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7819
7820         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7821
7822         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7823
7824         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7825
7826         * reflection.c (mono_assembly_get_object): Remove the workaround put
7827         in for the release.
7828         
7829         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7830
7831         * appdomain.c: Bump corlib version.
7832
7833         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7834         be visible in other appdomains.
7835
7836 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7837
7838         * threads.c: Interlocked inc and dec for longs were messed up,
7839         use a KISS based impl for this. Fixes 70234
7840
7841 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7842
7843         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7844
7845 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7846
7847         * icall.c: fix to follow policy not to allow struct
7848         arguments in icalls.
7849
7850 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7851
7852         * process.c: make the patch that handles spaces in file paths work
7853         on mono/windows too.
7854
7855 2004-12-06  Martin Baulig  <martin@ximian.com>
7856
7857         * class.c (mono_class_create_generic): Call
7858         mono_class_setup_supertypes() if we're dynamic.
7859         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7860
7861 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7862
7863         * object-internals.h: Add new fields to MonoThread.
7864
7865         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7866
7867         * icall.c threads-types.h threads.c: Add new icalls.
7868
7869         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7870
7871         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7872         managed side.
7873
7874         * appdomain.c: Bump corlib version.
7875
7876         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7877         internal assemblies. Fixes #69181.
7878
7879 2004-12-05  Martin Baulig  <martin@ximian.com>
7880
7881         * class.c (mono_class_inflate_generic_signature): Make this a
7882         no-op if `context' is NULL or we don't have any type parameters;
7883         also copy `sentinelpos'.        
7884
7885 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7886
7887         * image.c: Add unbox_wrapper_cache.
7888
7889         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7890
7891         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7892         function generator.
7893         
7894         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7895         Fixes #70173.
7896
7897         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7898         
7899 2004-12-04  Martin Baulig  <martin@ximian.com>
7900
7901         * loader.c (mono_method_get_signature_full): New public function;
7902         like mono_method_get_signature(), but with an additional
7903         `MonoGenericContext *' argument.
7904
7905         * class.c (mono_class_inflate_generic_signature): Formerly known
7906         as inflate_generic_signature(); make this public.
7907
7908 2004-12-04  Martin Baulig  <martin@ximian.com>
7909
7910         * metadata.c
7911         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7912         instead of a `MonoGenericContainer *'.  
7913         (mono_metadata_parse_array_full): Likewise.
7914         (mono_metadata_parse_signature_full): Likewise.
7915         (mono_metadata_parse_method_signature_full): Likewise.
7916         (mono_metadata_parse_generic_inst): Likewise.
7917         (mono_metadata_parse_generic_param): Likewise.
7918         (mono_metadata_parse_mh_full): Likewise.
7919         (mono_type_create_from_typespec_full): Likewise.
7920
7921 2004-12-03  Martin Baulig  <martin@ximian.com>
7922
7923         * class-internals.h (MonoGenericContainer): Replaced the
7924         `MonoGenericContext * pointer with a `MonoGenericContext'
7925         structure and made it the first element.
7926
7927 2004-12-03  Martin Baulig  <martin@ximian.com>
7928
7929         * class.c
7930         (inflate_generic_type): Set the `context->container' when creating
7931         a new MonoGenericContext.
7932         (mono_class_inflate_generic_method): Likewise.
7933         (mono_class_create_from_typespec): Just use `context->container'
7934         to get the container.
7935
7936         * loader.c (method_from_methodspec): Set `context->parent' from
7937         `context->container' - and if that's a method container, use its
7938         parent.  Also set the `context->container' when creating a new
7939         MonoGenericContext.
7940         (mono_get_method_from_token): Use just `context->container' to get
7941         the container.
7942
7943         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7944         `gclass->context->container'.
7945
7946         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7947         the `context->container' when creating a new MonoGenericContext.
7948
7949 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7950
7951         * reflection.c (compare_genericparam): Sort params with identical
7952         owner by their number. Fixes gen-111 on sparc.
7953
7954 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7955
7956         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7957         around the domain changes.
7958
7959         * appdomain.c (mono_domain_unload): Handle the case when the thread
7960         calling Unload is itself being aborted during unloading. Fixes #70022.
7961
7962         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7963
7964         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7965         checkpoint_func as an icall so it gets a wrapper.
7966         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7967         in the cross-appdomain wrappers too.
7968
7969         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7970
7971         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7972
7973         * reflection.c: Fix some memory leaks.
7974         
7975 2004-12-02  Martin Baulig  <martin@ximian.com>
7976
7977         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7978
7979         * metadata.c (generic_class_cache): New static hashtable.
7980         (mono_metadata_lookup_generic_class): New public method.
7981
7982 2004-12-02  Martin Baulig  <martin@ximian.com>
7983
7984         * class.c (mono_class_create_from_typedef): Call
7985         mono_class_setup_parent() and mono_class_create_mono_type() before
7986         parsing the interfaces.
7987
7988 2004-12-02  Martin Baulig  <martin@ximian.com>
7989
7990         * metadata.c (generic_inst_cache): New static hashtable.
7991         (mono_metadata_lookup_generic_inst): New public function.
7992         (mono_metadata_inflate_generic_inst): New public function.
7993         (mono_metadata_parse_generic_inst): New public function.
7994         (do_mono_metadata_parse_generic_class): Use the new
7995         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7996         since this'll also use the cache.
7997
7998         * reflection.c (mono_reflection_bind_generic_method_parameters):
7999         Use mono_metadata_lookup_generic_inst() to use the new cache.
8000
8001         * class.c (inflate_mono_type): Use
8002         mono_metadata_inflate_generic_inst() to inflate a generic
8003         instance; this'll also use the new cache.
8004
8005         * loader.c (method_from_methodspec): Use
8006         mono_metadata_parse_generic_inst() and
8007         mono_metadata_inflate_generic_inst() rather than parsing it
8008         manually, so we can use the new cache.
8009
8010 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8011
8012         * threads.c (wait_for_tids): Do not incorrectly free threads when 
8013         the wait times out.
8014
8015 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8016
8017         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8018         iter->args based on whether parameters are passed in registers (i.e.
8019         MONO_ARCH_REGPARMS is defined)
8020
8021 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
8022
8023         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8024         the exception message. Fixes #70070.
8025         (method_from_methodspec): Fix warnings.
8026
8027 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8028
8029         * process.c: (complete_path) return the path quoted
8030
8031 2004-12-01  Martin Baulig  <martin@ximian.com>
8032
8033         * class-internals.h (MonoGenericInst): New structure.
8034         (MonoGenericClass): Replaced `type_argc', `type_argv' and
8035         `is_open' with `MonoGenericInst *inst'.
8036         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8037         `is_open' with `MonoGenericInst *inst'.
8038
8039 2004-11-30  Martin Baulig  <martin@ximian.com>
8040
8041         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8042
8043         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8044         to `generic_class_cache'.
8045
8046         * metadata.c
8047         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8048         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8049         (mono_generic_inst_is_valuetype): Renamed to
8050         mono_generic_class_is_valuetype().
8051
8052         * class-internals.h
8053         (MonoGenericInst): Renamed to MonoGenericClass.
8054         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8055         (MonoClass): Renamed `generic_inst' to `generic_class'.
8056         (MonoGenericContext): Renamed `ginst' to `gclass'.
8057
8058         * object-internals.h
8059         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8060
8061         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8062         mono_reflection_generic_class_initialize().
8063
8064         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8065         now known as "System.Reflection.MonoGenericClass".
8066         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8067
8068 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8069
8070         * class-internals.h: Added a flag field to MonoClass to cache the
8071         declarative security attributes actions associated with the class.
8072         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8073         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8074         applicable to the JITted method.
8075         * reflection.c|h: Added functions to extract (as flags) which security
8076         actions are available (declaratively) for a method, class or assembly.
8077         * metadata.c|h: Added functions to search the declarative security
8078         table in the metadata.
8079         
8080 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8081
8082         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8083         EXPORTEDTYPES are already in the class name cache, so there is no
8084         need to add extra code here to look at them. Just removes a bit of
8085         cruft.
8086
8087         (ves_icall_System_Environment_get_TickCount): No need for #if
8088         WINDOWS. We already have the code in io-layer.
8089
8090 2004-11-28  Martin Baulig  <martin@ximian.com>
8091
8092         * loader.c
8093         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8094         Fixes gen-112.cs.
8095
8096 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8097
8098         * assembly.c (do_mono_assembly_open): Instead of having a
8099         conditional WITH_BUNDLE, incorporate support for bundles here, by
8100         having a global `bundles' variable holding a pointer to the actual
8101         bundles. 
8102
8103         (mono_register_bundled_assemblies): New API call used by the
8104         bundle code. 
8105
8106         See mkbundle.1 for details.
8107         
8108 2004-11-27  Martin Baulig  <martin@ximian.com>
8109
8110         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8111         the vtable for generic methods.
8112
8113 2004-11-26  Martin Baulig  <martin@ximian.com>
8114
8115         * metadata.c
8116         (mono_metadata_generic_method_hash): New public function.
8117         (mono_metadata_generic_method_equal): Likewise.
8118
8119         * class-internals.h
8120         (MonoGenericContainer): Added `GHashTable *method_hash'.
8121
8122         * reflection.c (ReflectionMethodBuilder): Added
8123         `MonoGenericContainer *generic_container'.
8124         (reflection_methodbuilder_to_mono_method): Don't create a new
8125         MonoGenericContainer each time we're called.
8126         (mono_reflection_bind_generic_method_parameters): Use
8127         `container->method_hash' to cache the results so we don't create a
8128         different method if we're called several times with the same
8129         arguments.
8130
8131         * loader.c (method_from_methodspec): Use the new
8132         `container->method_hash' here, too.
8133
8134 2004-11-26  Martin Baulig  <martin@ximian.com>
8135
8136         * class.c (inflate_generic_signature): Correctly compute
8137         `res->has_type_parameters'.
8138         (mono_class_vtable): Use the `has_type_parameters' flag to
8139         determine whether we're a generic method.
8140
8141         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8142
8143 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8144
8145         * object.c (mono_runtime_run_main): Fix a small memory leak.
8146
8147 2004-11-25  Martin Baulig  <martin@ximian.com>
8148
8149         * class.c (set_generic_param_owner): Fixed the loop.
8150
8151 2004-11-25  Martin Baulig  <martin@ximian.com>
8152
8153         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8154         generic methods.
8155
8156 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8157
8158         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8159         names. Fixes #69787.
8160
8161 2004-11-24  Martin Baulig  <martin@ximian.com>
8162
8163         * class.c (mono_class_create_generic_2): If we don't have a
8164         `ginst->parent', inflate `gklass->parent' to get our parent.
8165
8166 2004-11-24  Martin Baulig  <martin@ximian.com>
8167
8168         * reflection.c (compare_genericparam): Correctly sort the
8169         GenericParam table; fixes #69779.
8170
8171 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8172
8173         * reflection.c: When writing a PE file, don't create a huge
8174         buffer in memory. Just write the arrays we have to the file.
8175         This reduces memory usage.
8176
8177         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8178         globally.
8179
8180 2004-11-17  Martin Baulig  <martin@ximian.com>
8181
8182         * class.c (mono_class_init): Don't setup `class->parent' for
8183         dynamic instances; moved this to mono_class_generic_2().
8184         (mono_class_create_generic): Also set `klass->inited' for dynamic
8185         generic instances.
8186         (mono_class_create_generic_2): Don't do anything for dynamic
8187         generic instances.  Set `klass->parent' here and also call
8188         mono_class_setup_parent() here. 
8189
8190         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8191         `MonoType *parent' argument; set `ginst->parent' before calling
8192         mono_class_create_generic_2(), so we set the correct parent.
8193
8194 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8195
8196         * reflection.c: allow getting attributes from ModuleBuilder
8197         (used by ikvm).
8198
8199 2004-11-17  Martin Baulig  <martin@ximian.com>
8200
8201         * class.c (mono_class_create_from_typedef): If a type parameter is
8202         inherited from an outer class, set its owner to that class.
8203
8204 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8205
8206         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8207           for (int*) written size. This fixes bug #69592.
8208
8209 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8210
8211         * icall.c: Added IsAuthenticodePresnet internal call.
8212         * image.c|h: New function that check a MonoImage for an Authenticode
8213         signature in the certificate PE data directory.
8214         * security.c|h: New internal call to ask the runtime if an 
8215         Authenticode signature seems referenced in the PE header.
8216
8217 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8218
8219         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8220
8221         * reflection.c (mono_image_create_pefile): Free the assembly streams
8222         after writing out the assembly file.
8223
8224         * object.c (mono_runtime_run_main): Fix small memory leak.
8225
8226         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8227         property access modifiers. Fixes #69389.
8228
8229 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8230
8231         * domain.c, object.c, object-internals.h, domain-internals.h,
8232         object.h, marshal.c: keep dynamic code info per domain.
8233
8234 2004-11-15  Martin Baulig  <martin@ximian.com>
8235
8236         * class.c (mono_type_get_name_recurse): Put type arguments in
8237         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8238         see bug #68387.
8239
8240 2004-11-15  Martin Baulig  <martin@ximian.com>
8241
8242         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8243         (mono_class_setup_vtable): When computing `the_cname' for a
8244         generic instance, don't include the namespace since we'd otherwise
8245         add it twice.
8246
8247 2004-11-15  Martin Baulig  <martin@ximian.com>
8248
8249         * class.c (mono_class_create_generic): Changed return type to void.
8250         (mono_class_create_generic_2): New public function; setup
8251         `class->method', `class->field' and `class->interfaces' here
8252         instead of in mono_class_init().
8253
8254         * class.h (mono_class_create_generic): Moved to class-internals.h.
8255
8256 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8257
8258         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8259         rather than writing to memory, write to this file. Right now,
8260         we are just writting into a buffer, and copying that. However
8261         we can avoid the buffer later.
8262
8263         (mono_dynamic_stream_reset): new function
8264
8265         * icall.c, object-internals.h: update for the above.
8266
8267 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8268
8269         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8270         have been using gc'd memory. First it is slower, unlikely
8271         the comment in the source code said, secondly, it increases
8272         our footprint to do it in the gc.
8273
8274         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8275         the method so that it does not have to copy to managed code.
8276
8277 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8278
8279         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8280
8281 2004-11-12  Martin Baulig  <martin@localhost>
8282
8283         * reflection.c (mono_image_create_token): Allow generic method
8284         definitions here, since they may appear in an `.override'; see
8285         gen-98/gen-99 for an example.
8286
8287 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8288
8289         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8290         #69365.
8291
8292         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8293         descriptive.
8294
8295 2004-11-11  Martin Baulig  <martin@ximian.com>
8296
8297         * class.c (mono_class_setup_vtable): In an explicit interface
8298         implementation, the method name now includes the arity.
8299
8300 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8301
8302         * object.c (mono_array_full_copy): Fix warning.
8303
8304 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8305
8306         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8307         mono_class_get_method_from_name() instead.
8308         
8309         * class-internals.h: Added two new types of wrappers. 
8310         Added MonoRemotingTarget enum. Added new trampoline function type, which
8311         takes an additional MonoRemotingTarget value as parameter, so it is
8312         possible to request a trampoline for a specific target.
8313         
8314         * class.c: Added new mono_class_get_method_from_name() method.
8315         
8316         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8317         general remoting sinks and one specific for cross domain calls.
8318         
8319         * debug-helpers.c: Added new wrapper names.
8320         
8321         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8322         of a remote class.
8323         
8324         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8325         
8326         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8327         with several other methods (mono_marshal_get_xappdomain_dispatch,
8328         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8329         and others) can generate a fast remoting wrapper for cross domain calls.
8330         More information can be found in docs/remoting.
8331         Other changes: Removed mono_find_method_by_name, and used
8332         mono_class_get_method_from_name instead.
8333         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8334         is stored in the remoting invoke hashtable.
8335         
8336         * marshal.h: published the new method for getting the xdomain wrapper,
8337         and also added a method for getting the adequate wrapper for a given
8338         method and target.
8339         
8340         * object-internals.h, object.c: Added a couple of methods for capying and
8341         cloning arrays.
8342         Modified mono_install_remoting_trampoline, which takes the new remoting
8343         trampoline that has a remoting target as parameter.
8344         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8345         will return the most suitable vtable for the target.
8346         Added mono_remote_class_vtable, which returns the vtable of a remote class
8347         (which can be the normal remoting vtable or the xdomain vtable).
8348         
8349         * threads.c: the xdomain invoke and dispatch wrappers must also be
8350         protected against interruptions.
8351
8352 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8353
8354         * icall.c: use memmove in BlockCopyInternal when the source and
8355         destination arrays are the same.
8356
8357 2004-11-09  Martin Baulig  <martin@ximian.com>
8358
8359         * class-internals.h (MonoGenericContainer): Removed `method' and
8360         `signature', replaced them with `is_method' and `is_signature'
8361         flags.  Added `context'.
8362
8363         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8364         instead of a `MonoGenericContainer *'.
8365
8366         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8367         for dynamic type parameters.
8368         (mono_metadata_load_generic_params): Setup `container->context'.
8369
8370         * reflection.c (mono_reflection_setup_generic_class): Setup
8371         `tb->generic_container->context'.
8372         (do_mono_reflection_bind_generic_parameters): Use
8373         mono_class_inflate_generic_type() to correctly inflate types,
8374         rather than using our own hack just for MONO_TYPE_VAR.
8375
8376 2004-11-09  Martin Baulig  <martin@ximian.com>
8377
8378         * class.c (mono_class_inflate_generic_method): Small fix; don't
8379         crash here.
8380
8381         * icall.c
8382         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8383         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8384         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8385         (ves_icall_Type_BindGenericParameters): Likewise.
8386         (ves_icall_Type_get_IsGenericInstance): Likewise.
8387         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8388         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8389         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8390         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8391
8392 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8393
8394         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8395         assembly versions and public key tokens. Fixes #69113.
8396
8397 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8398
8399         * metadata.c: fix bug introduced with the type cache changes
8400         on 2004-11-06.
8401
8402 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8403
8404         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8405         the MonoClass pointer instead of the token in exception clauses.
8406         * reflection.c: updates for the above and make the code not depend
8407         on the structure of MonoExceptionClause.
8408
8409 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8410
8411         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8412         Add support for dynamic assemblies. Fixes #69114.
8413
8414         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8415
8416 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8417
8418         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8419         since most only those methods use it. the code member of
8420         MonoMethodPInvoke was dead, so that can be removed too. Also,
8421         remove inline_count (again, not used), and move slot so that it
8422         can share bits with some other flags. This saves 8 bytes in the
8423         structure and gives us about 50 kb back for mcs helloworld.cs
8424
8425         * *.[ch]: Do naming changes for the above.
8426
8427         * loader.c (mono_method_get_header): Lazily init the header
8428         on first access.
8429         (mono_get_method_from_token): don't init the header here
8430         (mono_free_method): the header may never be allocated
8431
8432         Overall, this saves 150 kb of unmanaged allocations
8433         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8434         memory at runtime.
8435         
8436         * loader.c, loader.h (mono_method_get_header): new accessor.
8437
8438         * *.[ch]: use the above method. Prepares us to lazily load
8439         the header.
8440
8441         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8442         three warnings, which are actual bugs (see 69206).
8443
8444         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8445         unused. Saves a cool 4 bytes / method.
8446
8447 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8448
8449         * metadata.c (builtin_types): Add types for System.Object here.
8450         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8451         for a class or valuetype from klass->this_arg or klass->byval_arg.
8452
8453         On mcs for a hello world, this gets us down from 21836 MonoType's
8454         to 14560.
8455
8456         (mono_metadata_free_type): Account for the above change.
8457
8458 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8459
8460         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8461         exception instead of asserting if name is null.
8462         (ves_icall_System_AppDomain_GetData): Ditto.
8463
8464 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8465
8466         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8467         EnumBuilder.
8468
8469         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8470         Return NULL when the domain does not have entry_assembly set.
8471
8472         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8473         Add a 'resource_modules' argument.
8474         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8475
8476         * reflection.c (mono_reflection_create_runtime_class): Move setting
8477         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8478         for enums too.
8479
8480         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8481         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8482         Throw an ArgumentNullException if 'ptr' is null.
8483
8484         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8485         assemblies here. Fixes #69020.
8486
8487 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8488
8489         * reflection.c (build_compressed_metadata): Fix the previous patch for
8490         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8491         the stack.
8492
8493 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8494
8495         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8496         the cultures is false. Fixes #69090.
8497
8498         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8499         detected by valgrind.
8500         
8501         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8502         TypeResolve multiple times for the same type. Fixes #65577.
8503
8504 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8505
8506         * marshal.c: Avoid using ldftn to call managed functions. It is
8507         much slower than just a call.
8508
8509         * reflection.c (mono_module_get_object): free the basename we
8510         allocate here from glib.
8511         
8512         * reflection.c (ensure_runtime_vtable): make sure to free
8513         overrides.  Also, we were allocating an array of MonoMethod not an
8514         array of MonoMethod*.
8515
8516         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8517
8518         * image.c (mono_image_close): free image->guid here.
8519
8520 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8521
8522         * reflection.c: Fix some spec conformance issues with the PE file
8523         structures so mcs compiled apps run on the Net 2.0 beta.
8524
8525 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8526
8527         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8528         Implement this. Fixes #67264.
8529
8530         * debug-helpers.h debug-helpers.c marshal.c: Move 
8531         mono_find_method_by_name to debug-helpers.c.
8532
8533 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8534
8535         * object.c (mono_release_type_locks): type_initialization_hash is
8536         a GHashTable.
8537
8538         * reflection.c object.c object-internals.h: Fix warnings.
8539
8540         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8541         without accessors. Fixes #61561.
8542
8543         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8544         application base from the root domain if not set. Fixes #65641.
8545         (mono_runtime_init): Fix warning.
8546
8547 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8548
8549         * appdomain.c: call mono_thread_pool_init.
8550         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8551         of worker threads based on the number of CPUs and the environment
8552         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8553         for non-windows (windows) systems.
8554
8555 2004-10-27  Chris Toshok  <toshok@ximian.com>
8556
8557         * mono-debug-debugger.c (write_class): don't call mono_class_init
8558         here, as even with the check for (!klass->init_pending), we get
8559         into a situation where we're hitting cycles in class
8560         initialization.  Fixes #68816.
8561
8562 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8563
8564         * image.c: Avoid overwriting values in the loaded_images_hash when an
8565         assembly is loaded multiple times. Fixes #61152.
8566
8567         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8568         so multiple satellite assemblies for the same name can be loaded.
8569         Fixes #68259.
8570
8571         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8572         not NULL.
8573
8574         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8575         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8576
8577         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8578         pending finalizers are not invoked after the appdomain has been 
8579         unloaded. Fixes #67862.
8580
8581 2004-10-22  Martin Baulig  <martin@ximian.com>
8582
8583         * mono-debug-debugger.c
8584         (mono_debugger_runtime_invoke): Don't box valuetypes.
8585
8586 2004-10-22  Chris Toshok  <toshok@ximian.com>
8587
8588         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8589         don't hide private methods.
8590
8591 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8592
8593         * icall.c: Allows the runtime to "share" (when known) the public key
8594         token of an assembly. This avoid the need to recalculate the token 
8595         (from the public key) in managed code.
8596
8597 2004-10-21  Chris Toshok  <toshok@ximian.com>
8598
8599         * debug-helpers.c (append_class_name): argh, revert last patch.
8600         
8601 2004-10-21  Chris Toshok  <toshok@ximian.com>
8602
8603         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8604         not '/', so that it matches what the debugger uses to look up
8605         methods.
8606
8607 2004-10-21  Martin Baulig  <martin@ximian.com>
8608
8609         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8610         public method; this is called each time an exception is thrown and
8611         allows the debugger to use exception catch points.
8612
8613 2004-10-21  Martin Baulig  <martin@ximian.com>
8614
8615         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8616         the stack pointer and the exception object in some struct and pass
8617         that to the debugger.
8618
8619 2004-10-21  Chris Toshok  <toshok@ximian.com>
8620
8621         * mono-debug-debugger.c (do_write_class): add instance/static
8622         event support.  We don't expose "raise" or "other" yet.
8623         (event_is_static): new method.
8624
8625 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8626
8627         * mono-debug-debugger.c
8628         (mono_debugger_handle_exception): Remove
8629         bogus return value for fussy compilers.
8630
8631 2004-10-20  Martin Baulig  <martin@ximian.com>
8632
8633         * mono-debug-debugger.c
8634         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8635         (mono_debugger_handled_exception): Likewise.
8636
8637 2004-10-20  Martin Baulig  <martin@ximian.com>
8638
8639         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8640         MONO_DEBUGGER_EVENT_EXCEPTION.
8641
8642         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8643         public function to send the debugger a notification for an
8644         exception and inform it about a catch/finally clause.
8645
8646 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8647
8648         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8649         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8650         fix 2.95 build. 
8651
8652         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8653
8654 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8655
8656         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8657         marshalled as [In,Out]. Fixes #58325.
8658
8659 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8660
8661         * reflection.c (mono_method_body_get_object): Implement some fields.
8662
8663 2004-10-12  Martin Baulig  <martin@ximian.com>
8664
8665         * reflection.c (mono_reflection_bind_generic_parameters): Small
8666         fix, correctly retrieve our parent from a generic instance.
8667
8668 2004-10-12  Martin Baulig  <martin@ximian.com>
8669
8670         * metadata.c (mono_metadata_generic_param_equal): We always have
8671         an owner.
8672
8673         * class.c
8674         (mono_class_from_generic_parameter): We need to have an owner.
8675         (my_mono_class_from_generic_parameter): Likewise.
8676
8677         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8678         mono_reflection_create_generic_class() and added a new
8679         mono_reflection_setup_generic_class().  
8680         (mono_reflection_initialize_generic_param): If we're a nested
8681         generic type and inherited from the containing class, set our
8682         owner to the outer class.
8683
8684 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8685
8686         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8687
8688         * reflection.c (mono_method_body_get_object): New function to create
8689         a MethodBody object.
8690
8691         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8692
8693 2004-10-11  Martin Baulig  <martin@ximian.com>
8694
8695         * metadata.c (_mono_metadata_type_equal): Renamed to
8696         do_mono_metadata_type_equal() and made static.
8697
8698 2004-10-11  Martin Baulig  <martin@ximian.com>
8699
8700         * appdomain.c: Bump corlib version number to 28.
8701
8702 2004-10-10  Martin Baulig  <martin@ximian.com>
8703
8704         * class-internals.h
8705         (MonoGenericInst): Added `MonoGenericContainer *container'.
8706         (MonoGenericMethod): Likewise.
8707         (MonoGenericContext): Likewise.
8708         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8709
8710         * metadata.c
8711         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8712         (do_mono_metadata_parse_generic_inst): Likewise.
8713         (mono_metadata_parse_type_full): New public method.  This is the actual
8714         mono_metadata_parse_type() implementation - with an additional
8715         `MonoGenericContainer *' argument.
8716         (mono_metadata_parse_array_full): Likewise.
8717         (mono_metadata_parse_signature_full): Likewise.
8718         (mono_metadata_parse_method_signature_full): Likewise.
8719         (mono_metadata_parse_mh_full): Likewise.
8720         (mono_type_create_from_typespec): Likewise.
8721         (mono_metadata_interfaces_from_typedef_full): New public method;
8722         this is similar to the other _full() methods, but we take a
8723         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8724         (mono_metadata_parse_generic_param): Take an additional
8725         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8726         from that container.
8727         (mono_metadata_generic_param_equal): New static method to compare
8728         two type parameters.
8729         (_mono_metadata_type_equal): New static method; takes an
8730         additional `gboolean signature_only' argument - if true, we don't
8731         compare the owners of generic parameters.
8732         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8733         with a TRUE argument - do a signature-only comparision.
8734
8735         * loader.c: Use the new _full() methods and pass the
8736         MonoGenericContainer to them.
8737
8738         * object-internals.h (MonoReflectionTypeBuilder): Added
8739         `MonoGenericContainer *generic_container' field.
8740         (MonoReflectionMethodBuilder): Likewise.
8741
8742 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8743
8744         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8745         case initial images of dynamic assemblies.
8746
8747         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8748
8749         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8750
8751         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8752         length of event->other array.
8753         (typebuilder_setup_events): Ditto.
8754
8755         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8756         'assembly_by_name' and add an 'assemblies' list.
8757
8758         * assembly.h assembly.c: Add a new search hook for determining whenever
8759         an assembly is already loaded. Use this instead of searching in the
8760         loaded_assemblies list.
8761
8762         * domain.c appdomain.c: Implement the new search hook so loaded 
8763         assemblies are now scoped by appdomain. Fixes #67727.
8764
8765 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8766
8767         * threads.c (mono_thread_attach): Initialize synch_lock field so
8768         mono_thread_detach works again.
8769
8770         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8771         'lib' too. Fixes #63130.
8772
8773 2004-10-06  Jackson Harper  <jackson@ximian.com>
8774
8775         * culture-info-tables.h: regenerated.
8776
8777 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8778
8779         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8780         implemented by other interfaces in the result. Fixes #65764.
8781         
8782         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8783         Handle unloadable modules without crashing.
8784
8785         * image.c (load_modules): Revert the previous patch since modules must
8786         have a fixed index inside the array.
8787         
8788         * image.c (load_modules): Don't include native modules in the modules
8789         array.
8790
8791 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8792
8793         * reflection.h: Add param_defaults field.
8794
8795         * reflection.c: Add support for parameter defaults in dynamic methods.
8796         Fixes #64595.
8797
8798         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8799         an empty string when a type has no namespace. Fixes #64230.
8800
8801 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8802
8803         * tabledefs.h: Added "internal" security actions to support non-CAS
8804         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8805         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8806
8807 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8808
8809         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8810         constructor of abstract class. Fixes #61689.
8811
8812 2004-10-04  Martin Baulig  <martin@ximian.com>
8813
8814         * class-internals.h (MonoGenericContainer): New type.
8815         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8816         `MonoGenericContainer *generic_container'.
8817         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8818         `MonoGenericContainer *generic_container'.
8819
8820         * metadata.c (mono_metadata_load_generic_params): Return a
8821         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8822         removed the `num' argument.
8823
8824 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8825
8826         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8827         for dynamic images.
8828
8829         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8830         machine fields.
8831
8832         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8833
8834         * reflection.c: Save pe_kind and machine values into the generated
8835         image file.
8836
8837         * appdomain.c: Bump corlib version number.
8838
8839         * object-internals.h: Reorganize layout of LocalBuilder.
8840
8841         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8842         New helper function.
8843
8844         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8845         created MonoType for dynamic types. Fixes #66180.
8846
8847 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8848
8849         * threadpool.c: the ares hashtable needs a critical section around it.
8850         this prevents some nasty segfaults
8851
8852 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8853
8854         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8855         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8856         bug 67324).
8857         
8858 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8859
8860         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8861         
8862 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8863
8864         * image.c: Always canonicalize image file names, to avoid loading
8865         the same assembly twice when referenced using a relative path.
8866
8867 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8868
8869         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8870
8871         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8872
8873         * marshal.c: Fix warnings.
8874
8875 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8876
8877         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8878         attempting to marshal the delegate_trampoline as the method_addr.
8879         This patch has a static hashtable of marshalled delegates so that 
8880         we can map delegate_trampoline addresses back to delegates.  This
8881         allows a delegate passed to managed code to be passed back into native
8882         code.  Fixes #67039
8883
8884 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8885
8886         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8887
8888         * reflection.c (method_encode_code): Align method headers properly.
8889         Fixes #66025.
8890
8891 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8892
8893         * marshal.c: In the runtime invoke wrapper, reset the abort
8894         exception if it is cached. This avoids the automatic rethrowal of 
8895         the exception after the catch of the wrapper. Also check for pending
8896         interruptions before calling the managed method. This is done using
8897         the new method emit_thread_force_interrupt_checkpoint, since the
8898         normal checkpoint method is ignored when running the invoke wrapper.
8899         * object.c: If the abort exception is rethrown, set the abort_exc
8900         field of the thread, so it will be rethrown aftere every catch.
8901         * threadpool.c: Only run an interruption checkpoint if what has been
8902         requested is a stop of the thread (aborts will be ignored).
8903         * threads.c: By default, a thread will now never be interrumped while
8904         running the runtime invoke wrapper (this ensures that runtime_invoke
8905         will always return to the caller if an exception pointer is provided).
8906         There is a new special method mono_thread_force_interruption_checkpoint()
8907         to force an interruption checkpoint even if running a protected
8908         wrapper, which is used by the same runtime invoke wrapper to do a check
8909         at a safe point.
8910
8911 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8912
8913         * object.c, object-internals.h: Implemented mono_release_type_locks,
8914         which releases the cctor locks held by a thread.
8915         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8916         by a thread. Added mono_thread_exit() method to be used to safely stop
8917         a thread.
8918
8919 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8920
8921         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8922         Move null check before dereference.  Avoid indexing beyond the end
8923         of the 'modules' array.
8924
8925 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8926
8927         * metadata-internals.h (MonoImage): Add module_count field.
8928         * image.c (load_modules): Set image->module_count.
8929         (mono_image_load_file_for_image): Use image->module_count.
8930         * reflection.c (mono_image_load_module): Append to image->modules array 
8931         of dynamic assembly.
8932         (mono_module_get_object): Fix loop to actually increment index.
8933         Use image->module_count.
8934         * assembly.c (mono_assembly_load_references): Use image->module_count.
8935         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8936         Likewise.
8937
8938 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8939
8940         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8941         Avoid assert on generic types.
8942
8943 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8944
8945         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8946
8947         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8948
8949         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8950         function to convert a MarshalSpec structure to its managed counterpart.
8951
8952         * reflection.c: Fix warnings.
8953         
8954         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8955         field.
8956
8957         * icall.c (mono_create_icall_signature): Fix build.
8958
8959 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8960
8961         * icall.c: Add MakePointType icall.
8962
8963         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8964         warnings.
8965
8966 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8967
8968         * threadpool.c: reuse allocated slots in the queue.
8969
8970 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8971
8972         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8973
8974         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8975
8976         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8977         previous change.
8978
8979         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8980         ThrowOnUnmappableChar.
8981
8982         * icall.c (ves_icall_Type_GetPacking): New icall.
8983
8984 2004-09-24  Martin Baulig  <martin@ximian.com>
8985
8986         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8987
8988 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8989
8990         * appdomain.c:
8991         (mono_domain_set): allow setting a domain that is being unloaded.
8992         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8993         being unloaded.
8994
8995 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8996
8997         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8998         the GetCustomAttributes icall.
8999
9000 2004-09-23  Martin Baulig  <martin@ximian.com>
9001
9002         * object-internals.h (MonoReflectionGenericParam): Replaced
9003         'has_ctor_constraint', `has_reference_type' and `has_value_type'
9004         with `guint32 attrs'.
9005
9006 2004-09-23  Martin Baulig  <martin@ximian.com>
9007
9008         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9009
9010 2004-09-23  Martin Baulig  <martin@ximian.com>
9011
9012         * object-internals.h (GenericParameterAttributes): New enum.
9013
9014 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9015
9016         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9017         
9018         * class.c (init_events): Fill out event->other field.
9019
9020         * class.c: Fix warnings.
9021
9022         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9023
9024 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9025
9026         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9027         walk which doesn't supply the IL offset.
9028
9029 2004-09-22  Martin Baulig  <martin@ximian.com>
9030
9031         * reflection.c (mono_reflection_setup_internal_class): If we're
9032         System.ValueType, System.Object or System.Enum, set
9033         `klass->instance_size' and create the vtable.
9034         (mono_reflection_create_internal_class): If we're an enum type,
9035         get the base class from our current corlib.
9036
9037 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
9038
9039         * reflection.h (MonoResolveTokenError): New type.
9040
9041         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9042         icall.
9043
9044         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9045
9046 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9047
9048         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9049         Support also calling constructors, but only for already allocated objects.
9050
9051 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9052
9053         * reflection.c (type_get_qualified_name): If the klass is null
9054         return the typename to avoid a NullRefEx.
9055         (encode_cattr_value): Get the qualified name of the boxed type,
9056         not the underlying enumtype.  Fixes #62984.
9057
9058 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9059
9060         * marshal.c: Fix problems with previous checkin.
9061
9062 2004-09-21    <vargaz@freemail.hu>
9063
9064         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9065         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9066
9067         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9068
9069 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9070
9071         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9072         should only return a type for pointers, arrays, and passbyref types.
9073         Fixes bug #63841.
9074
9075 2004-09-21  Martin Baulig  <martin@ximian.com>
9076
9077         * domain.c (mono_debugger_check_runtime_version): New public
9078         function.
9079
9080         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9081
9082 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9083
9084         * reflection.c: Added missing sort to the declarative security 
9085         attributes table. MS implementation stops seeing the attributes if the
9086         token number regress in the table (as shown by ildasm and permview).
9087
9088 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9089
9090         * object-internals.h (MonoReflectionModule): Add 'token' field.
9091         
9092         * reflection.c (mono_reflection_get_token): Add support for Module
9093         and Assembly.
9094         (mono_module_get_object): Set 'token' field.
9095         (mono_module_file_get_object): Set 'token' field.
9096
9097         * icall.c: Add new Assembly and Module icalls.
9098
9099         * appdomain.c: Bump corlib version.
9100
9101 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9102
9103         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9104         tokens of metadata objects.
9105
9106         * reflection.h reflection.c (mono_reflection_get_token): New function
9107         to obtain the token of a metadata object.
9108
9109         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9110
9111 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9112
9113         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9114         
9115         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9116
9117 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9118
9119         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9120         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9121         AssemblyBuilder to access the permissions set in the class lib.
9122         * reflection.c: Added security attributes encoding step in 
9123         mono_image_build_metadata.
9124         * tabledefs.h: Added new security actions defined in 2.0:
9125         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9126
9127 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9128
9129         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9130         macro parameter.
9131
9132 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9133  
9134         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9135           finalized. There where random SIGSEVs at program termination, when
9136           an object being finalized was trying to do a string comparison and
9137           the current culture was already finalized.
9138  
9139 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9140
9141         * threads.c: call thread_cleanup before finishing the thread if we get
9142         there.
9143
9144 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9145
9146         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9147         assemblies from the parent. Fixes #65665.
9148
9149 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9150
9151         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9152         modifiers.
9153
9154 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9155
9156         * reflection.h: add prototype for mono_get_dbnull_object
9157         * reflection.c: add prototypes for get_default_param_value_blobs 
9158         and mono_get_object_from_blob for fussier compilers
9159
9160 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9161  
9162         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9163         false deadlock checks in class initialization.
9164  
9165 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9166
9167         * image.c (mono_image_addref): Fix comment.
9168
9169         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9170         possible.
9171
9172 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9173
9174         * reflection.c (mono_param_get_objects): Modified to return
9175         ParameterInfo.DefaultValue object.
9176
9177         (get_default_param_value_blobs):
9178         (mono_get_object_from_blob):
9179         (mono_get_dbnull_object): New helper routines. 
9180
9181         * object.c (mono_get_constant_value_from_blob): New helper routine
9182         carved out from get_default_field_value ()
9183
9184         * object-internals.h (mono_get_constant_value_from_blob): Added
9185         function declaration.
9186
9187 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9188
9189         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9190         referenced assemblies. Fixes #62135.
9191
9192         * exception.h exception.c (mono_get_exception_file_not_found2): New
9193         helper function.
9194
9195 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9196
9197         * class.h class.c: Add mono_type_get_underlying_type ().
9198
9199 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9200
9201         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9202         Fix GetTypes() to support dynamically created assemblies.
9203
9204 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9205
9206         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9207         
9208         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9209         previous patch.
9210
9211         * reflection.h reflection.c loader.c: Allow dynamic construction of
9212         pinvoke methods. Fixes #65571.
9213         
9214         * reflection.c (mono_reflection_get_type): Revert previous change since
9215         it causes regressions.
9216
9217 2004-09-08  Martin Baulig  <martin@ximian.com>
9218
9219         * class.c (class_compute_field_layout): Don't call
9220         mono_class_layout_fields() for open generic instances.
9221
9222 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9223         * threads.c appdomain.c: fix typo in GC macro
9224
9225 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9226
9227         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9228         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9229
9230 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9231
9232         * image.c (mono_image_close): Applied patch from 
9233         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9234         assembly is loaded multiple times from data.
9235         
9236         * image.c (mono_image_open): Fix warning.
9237
9238 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9239
9240         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9241         once. Fixes #58334.
9242         
9243         * reflection.c (mono_reflection_create_runtime_class): Initialize
9244         klass->nested_classes. Fixes #61224.
9245
9246 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9247
9248         * threads.c: sched_yield() on exit, to allow threads to quit.
9249
9250 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9251
9252         * object.c (mono_unhandled_exception): Remove leftover debug code.
9253
9254 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9255
9256         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9257
9258 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9259
9260         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9261         
9262         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9263
9264 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9265
9266         * marshal.c (emit_marshal_array): Null terminate string arrays.
9267         
9268         * marshal.c (raise_auto_layout_exception): Fix warning.
9269
9270         * reflection.c (mono_param_get_objects): Initialize the default value
9271         with DBNull.Value, not null. Fixes #62123.
9272
9273 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9274
9275         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9276         throw an exception with a cute explanation.
9277
9278 2004-09-06  Dick Porter  <dick@ximian.com>
9279
9280         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9281         Close the new process's thread handle, as we don't use it.  The
9282         handle stays around forever otherwise.
9283
9284 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9285
9286         * object.c (arith_overflow): Fix warning.
9287
9288         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9289         calling conventions in method refs. Fixes #65352.
9290
9291         * reflection.c: Fix warnings.
9292
9293 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9294
9295         * icall.c: Add a new icall for Array.Clear
9296
9297 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9298
9299         * object.c: When allocating an array, we have to throw
9300         an overflow exception if any of the lengths are < 0.
9301
9302 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9303
9304         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9305         properly. Also move implementation of string array marshalling to 
9306         managed code. Fixes #42316.
9307
9308 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9309
9310         * assembly.c: provide more information when loading an assembly fails.
9311
9312 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9313
9314         * filewatcher.c: don't expect the development fam package to be
9315         installed.
9316
9317 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9318
9319         * marshal.c: Make a copy of the signature cookie since it will be
9320         freed by the caller.
9321         
9322         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9323
9324         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9325
9326         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9327         marshal specs.
9328
9329         * marshal.c: More refactoring.
9330         
9331         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9332         smaller functions.
9333
9334 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9335
9336         * object.c: In mono_message_invoke, fill the output parameter array after
9337           calling the managed method (it was done before the call). This fixes
9338           bug #59299.
9339
9340 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9341
9342         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9343         as well.
9344
9345 2004-09-02  Martin Baulig  <martin@ximian.com>
9346
9347         * class.c (mono_class_instance_size): Don't allow generic type
9348         definitions or open generic instances.
9349         (mono_class_array_element_size): If we're a value type, call
9350         mono_class_instance_size() on the original class.
9351
9352         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9353         handle generic instances.
9354
9355         * mono-debug-debugger.c (write_type): Handle generic instances
9356         like classes.
9357
9358 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9359
9360         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9361         the allocation request fails. Fixes #65089.
9362
9363         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9364         
9365         * object.c (mono_runtime_free_method): New function to free a dynamic
9366         method.
9367
9368         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9369         delegate trampoline.
9370
9371         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9372         with hasthis as dynamic,
9373
9374         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9375
9376         * domain.c (mono_jit_info_table_remove): New function to remove an
9377         entry from the jit info table.
9378
9379         * class-internals.h (MonoMethod): Add 'dynamic' field.
9380
9381         * loader.c: Fix warnings.
9382
9383 2004-09-01  Martin Baulig  <martin@ximian.com>
9384
9385         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9386         instead of mono_debugger_lock() because the latter one is a no-op
9387         unless running in the debugger.
9388
9389 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9390
9391         * class.c (class_compute_field_layout): Classes with auto-layout or
9392         reference fields are not blittable.
9393         
9394 2004-09-01  Dick Porter  <dick@ximian.com>
9395
9396         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9397         mono_image_get_filename() to get the assembly location.
9398
9399         * icall.c:
9400         * metadata.h: Fix compile warnings
9401
9402 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9403
9404         * class.c (class_compute_field_layout): System.Object is blittable.
9405
9406         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9407         as in/out. Fixes #59909.
9408
9409 2004-09-01  Martin Baulig  <martin@ximian.com>
9410
9411         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9412         mono_metadata_generic_inst_is_valuetype() if we're a generic
9413         instance to check whether our underlying type is a reference type.
9414
9415 2004-09-01  Martin Baulig  <martin@ximian.com>
9416
9417         * metadata.c (mono_type_size): If we're a generic instance, call
9418         mono_class_value_size() for value types.
9419
9420 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9421
9422         * marshal.c: Implement more custom marshalling functionality. Fixes
9423         #64915.
9424
9425 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9426
9427         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9428
9429 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9430
9431         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9432
9433         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9434
9435         * icall.c: Fix some warnings.
9436
9437         * threads.c (abort_appdomain_thread): Fix unref errors.
9438         (mono_thread_current): Fix THREAD_DEBUG define.
9439
9440 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9441
9442         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9443
9444         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9445
9446 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9447
9448         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9449         string arrays.
9450
9451 2004-08-28  Martin Baulig  <martin@ximian.com>
9452
9453         * metadata.c
9454         (mono_metadata_generic_inst_is_valuetype): New public function.
9455
9456         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9457         mono_metadata_generic_inst_is_valuetype() if we're a generic
9458         instance to check whether our underlying type is a valuetype.
9459
9460 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9461
9462         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9463         #63768.
9464
9465 2004-08-25  Martin Baulig  <martin@ximian.com>
9466
9467         * loader.c (mono_get_method_from_token): Abstract methods can also
9468         be generic and thus have type parameters.
9469
9470         * metadata-internals.h
9471         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9472
9473         * reflection.c (mono_image_get_generic_param_info): Don't create a
9474         metadata row, just add an entry to the `gen_params' array.
9475         (build_compressed_metadata): Sort the `gen_params' array and then
9476         actually create the metadata.
9477
9478 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9479
9480         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9481
9482 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9483
9484         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9485
9486 2004-08-24  Martin Baulig  <martin@ximian.com>
9487
9488         * class.cs (mono_class_is_subclass_of): Like an interface, a
9489         generic instance also derives from System.Object.
9490
9491 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9492
9493         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9494         custom modifiers to be in any order. Fixes #61990.
9495
9496 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9497
9498         * object.c: Register mono_object_new_fast icall.
9499         
9500         * object.c (mono_class_get_allocation_ftn): Return to calling
9501         mono_object_new_fast, since it seems faster to compute the object 
9502         size in unmanaged code than passing it as a parameter.
9503
9504         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9505
9506         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9507         this function with Boehm as the oom handler, so we don't have to check
9508         the result of GC_malloc.
9509
9510         * object.c: Remove checks for oom.
9511
9512         * object.h object.c (mono_class_get_allocation_ftn): New function to
9513         return the icall which can be used to allocate an instance of a given
9514         class. 
9515
9516         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9517
9518         * class-internals.h: Add 'enabled' field.
9519
9520 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9521
9522         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9523
9524 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9525         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9526         value 0x0010.
9527
9528 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9529
9530         * appdomain.c: use the Tls function for appdomain too,
9531         at Zoltan's request. Actually return in mono_context_get
9532
9533         * appdomain.c, profiler.c, threads.c: use __thread
9534
9535 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9536
9537         * appdomain.c threads.c: Call GC_CreateThread on windows.
9538
9539         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9540         multiple libraries since this don't work on windows.
9541
9542 2004-08-18  Martin Baulig  <martin@ximian.com>
9543
9544         * class-internals.h
9545         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9546         MonoMethodHeader.
9547
9548         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9549         MonoMethodNormal since we also need it for abstract and interface
9550         methods.
9551
9552         * reflection.c
9553         (build_compressed_metadata): Sort the GenericParam table.
9554         (mono_image_create_token): Added `gboolean create_methodspec'
9555         argument; this is false when generating a MethodImpl token.
9556         (reflection_methodbuilder_to_mono_method): Abstract and interface
9557         methods may also have generic parameters.
9558
9559 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9560
9561         * appdomain.c: thread local alloc
9562
9563 2004-08-17  Martin Baulig  <martin@ximian.com>
9564
9565         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9566
9567         * icall.c
9568         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9569         argument.
9570
9571         * class.c (mono_type_get_full_name): New public function.
9572         (mono_type_get_name): Don't include the type arguments.
9573
9574 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9575
9576         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9577         for inclusion into the mono executable.
9578
9579 2004-08-16  Martin Baulig  <martin@ximian.com>
9580
9581         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9582         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9583
9584 2004-08-14  Martin Baulig  <martin@ximian.com>
9585
9586         * class.c (dup_type): Also copy the `byref' field.
9587
9588 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9589
9590         * reflection.c (create_dynamic_mono_image): Revert the last change 
9591         since it breaks bootstrap.
9592
9593 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9594
9595         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9596
9597         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9598         not free them with g_free.
9599
9600 2004-08-11  Martin Baulig  <martin@ximian.com>
9601
9602         * reflection.c (mono_reflection_setup_internal_class): Also call
9603         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9604
9605 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9606
9607         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9608         called during default (first) AppDomain creation. Keep track of
9609         Evidence when loading assemblies.
9610
9611 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9612
9613         * opcodes.c, opcodes.h: reduce runtime relocations.
9614
9615 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9616
9617         * culture-info.h, locales.c: fixes and chages to sue the new
9618         optimized format of the locale data.
9619         * culture-info-tables.h: regenerated.
9620
9621 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9622         
9623         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9624
9625 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9626
9627         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9628         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9629         * domain-internals.h: icall declaration.
9630         * icall.c: icall registration.
9631         * object-internals.h: New fields in MonoAssembly for CAS.
9632
9633 2004-08-05  Duncan Mak  <duncan@ximian.com>
9634
9635         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9636         CEE_LDELEM_ANY.
9637
9638 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9639
9640         * reflection.c: fix to deal with object[] arrays in custom ctors
9641         (bug #62550).
9642
9643 2004-08-05  Martin Baulig  <martin@ximian.com>
9644
9645         * class.c (mono_class_array_element_size): Added support for
9646         generic instances and correctly handle "recursive" types.
9647
9648 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9649
9650         * assembly.c: Fix warnings.
9651
9652 2004-08-04  Martin Baulig  <martin@ximian.com>
9653
9654         * class.c
9655         (mono_type_get_name_recurse): Added `gboolean include_arity'
9656         argument specifying whether or not we should include the generic
9657         arity in the type name.
9658         (_mono_type_get_name): New static function.
9659         (mono_class_setup_vtable): If we're a generic instance, don't
9660         include the generic arity in the names of explicit method
9661         implementations.        
9662
9663 2004-08-03  Martin Baulig  <martin@ximian.com>
9664
9665         * class.c (mono_type_get_name_recurse): Enclose the generic type
9666         arguments in `<', '>'.
9667
9668 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9669
9670         * gc.c: make GC warning messages use the trace API, they are just
9671         noise to most of the users.
9672
9673 2004-08-03  Martin Baulig  <martin@ximian.com>
9674
9675         * debug-mono-symfile.c (read_string): Correctly read the string.
9676
9677 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9678
9679         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9680         
9681         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9682         icalls.
9683         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9684
9685 2004-07-30  Martin Baulig  <martin@ximian.com>
9686
9687         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9688         Reflect latest symbol writer changes.   
9689
9690 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9691
9692         * object.c: always create an object if null is passed
9693         to Invoke() where a valuetype is expected.
9694
9695 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9696
9697         * marshal.c (mono_marshal_init): make managed
9698         signatures match native ones better for 64bits.
9699
9700 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9701
9702         * appdomain.c: hack to build correctly the private bin path on windows.
9703         Fixes bug #61991.
9704
9705 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9706
9707         * assembly.c: Load mscorlib from the correct framework directory
9708           (mono/<version>/mscorlib.dll).
9709         * appdomain.h: Added prototypes for new functions.
9710         * internals.h: Added some prototypes.
9711         * domain.c: When initializing the runtime, get from the executable and
9712           the configuration files the runtime version that the app supports.
9713           Added support methods for reading app.exe.config. Added list of versions
9714           supported by the JIT. Added two new methods: mono_init_from_assembly,
9715           which initializes the runtime and determines the required version from
9716           the provided exe file, and mono_init_version, which initializes
9717           the runtime using the provided version.
9718         * icall.c: Get machine.config from version-specific directory.
9719         * reflection.c: When generating an image, embed the version number
9720           of the current runtime.
9721
9722 2004-07-28  Dick Porter  <dick@ximian.com>
9723
9724         * socket-io.c
9725         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9726         returned sockaddr size before creating the remote address object.
9727         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9728         61608.
9729
9730 2004-07-28  Dick Porter  <dick@ximian.com>
9731
9732         * locales.c (string_invariant_compare_char): Fix invariant char
9733         compares between upper and lower cases.  Fixes bug 61458.
9734
9735 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9736         
9737         * marshal.c: actually cache stelem.ref wrappers.
9738         
9739 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9740
9741         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9742         sections and remove the mono_cli_rva_map () function.
9743
9744 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9745
9746         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9747         by Geoff Norton (<gnorton@customerdna.com>).
9748
9749 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9750
9751         * class.c: fix class loads for pointer types (typeof(int) !=
9752         typeof(int*)).
9753
9754 2004-07-27  Martin Baulig  <martin@ximian.com>
9755
9756         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9757         reading the debugging information from an external ".mdb" file.
9758
9759 2004-07-24  Martin Baulig  <martin@ximian.com>
9760
9761         * reflection.c (mono_image_get_type_info): Only write a class
9762         layout entry if we actually have a size or a packing size.
9763
9764 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9765
9766         * reflection.c (type_get_fully_qualified_name): 
9767         insert cast to get type checking of ?: with non-gcc compilers
9768
9769 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9770
9771         * rand.c: use g_getenv for both lookups of
9772         MONO_EGD_SOCKET
9773
9774 2004-07-17  Martin Baulig  <martin@ximian.com>
9775
9776         * reflection.c (mono_reflection_bind_generic_method_parameters):
9777         Set `gmethod->reflection_info'.
9778
9779 2004-07-17  Martin Baulig  <martin@ximian.com>
9780
9781         * class.c (mono_class_create_from_typedef): Insert the newly
9782         created class into the hash table before computing the interfaces
9783         since we could be called recursively.
9784
9785 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9786
9787         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9788         function to implement stelem.ref in managed code
9789         * class-internals.h, debug-helpers.c: a new wrapper type
9790         for the above.
9791
9792 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9793
9794         * gc.c: allow GC handles to work even when no GC is compiled in.
9795         Fix part of bug #61134 (GetAddrOfPinnedObject).
9796
9797 2004-07-13  Peter Williams  <peter@newton.cx>
9798  
9799         * process.c (complete_path): Make sure we don't attempt to execute
9800         directories.
9801  
9802 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9803
9804         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9805           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9806           and will add/subtract the hour if needed
9807
9808 2004-07-12  Martin Baulig  <martin@ximian.com>
9809
9810         * reflection.c (mono_field_get_object): If we have
9811         `field->generic_info', take the attributes from
9812         `field->generic_info->generic_type'.    
9813
9814 2004-07-12  Martin Baulig  <martin@ximian.com>
9815
9816         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9817         This function must be called before initializing the runtime.
9818         (mono_debug_init_1): New function; call this after initializing
9819         the runtime, but before loading the assembly.  It tells the
9820         debugger to load corlib and the builtin types.
9821
9822         * mono-debug-debugger.c: Did some larger changes in the debugging
9823         code; support recursive class declarations, make sure we actually
9824         add all classes.
9825
9826 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9827
9828         * debug-helpers.c: undo my previous patch and fixed the real issue in
9829         ../mini/exceptions-x86.c
9830
9831 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9832
9833         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9834         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9835         called from other .cctors.
9836
9837 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9838
9839         * loader.c: Removed the mono_loader_wine_init hack now that we are
9840         doing a managed version of Windows.Forms.
9841
9842 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9843
9844         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9845         threadpool.c, threads.c: remove static data from rootset.
9846
9847 2004-07-09  Dick Porter  <dick@ximian.com>
9848
9849         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9850         Don't do any more processing if the matched length was 0.  It was
9851         increasing the size of the string before.  Fixes bug 61167.
9852
9853 2004-07-09  Dick Porter  <dick@ximian.com>
9854
9855         * socket-io.h:
9856         * socket-io.c
9857         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9858         Add support for SO_PEERCRED if its available.
9859
9860 2004-07-09  Peter Bartok <pbartok@novell.com>
9861         * loader.c: winelib.exe.so error message is now only displayed if
9862         MONO_DEBUG is set. To help us avoid questions when people are trying
9863         out the new Managed.Windows.Forms.
9864
9865 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9866
9867         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9868         for isinst and castclass wrappers.
9869
9870         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9871         to libmetadata from the JIT, so they could be used by the marshalling
9872         code and the interpreter.
9873
9874         * marshal.c: Register marshalling related JIT icalls here instead of
9875         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9876         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9877
9878         * metadata.h: Remove unneeded marshalling conversions.
9879
9880         * opcodes.c: Update for new opcodes.
9881         
9882 2004-07-08  Martin Baulig  <martin@ximian.com>
9883
9884         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9885         (mono_debug_get_domain_data): Make this function static.
9886
9887 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9888
9889         * gc.c, object.h: add nice GC handle API for embedders.
9890
9891 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9892
9893         * reflection.c: more changes for the new api
9894
9895         * object.c: When we reflect on a field w/ a constant value, it
9896         will not have a memory location, so we must access metadata. Also,
9897         allow easier reading of strings so that we can read them from
9898         the constant data.
9899
9900         * class.c (mono_class_layout_fields): no need for literal fields here.
9901
9902         * class-internals.h: api changes for const fields
9903
9904         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9905
9906 2004-07-06  Martin Baulig  <martin@ximian.com>
9907
9908         * mono-debug.h: Increment version number to 44.
9909
9910         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9911         now a gpointer, rewrote this whole method.
9912
9913         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9914         function.  Add information about the wrapper in a new "misc table".
9915
9916         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9917         for the new misc table.
9918
9919 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9920
9921         * metadata-internals.h image.c: Add a cache for helper signatures.
9922
9923         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9924
9925 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9926
9927         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9928         delegates from a delegate. Fixes #61033.
9929         
9930         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9931         marshalling of stringbuilder arrays. Fixes #59900.
9932
9933 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9934
9935         * icall.c: Add EnumBuilder:setup_enum_type icall.
9936
9937 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9938
9939         * icall.c: Added a new icall for the property version of
9940         OffsetOfStringData.
9941
9942 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9943
9944         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9945         it has a constant size across platforms.
9946
9947         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9948         stack trace.
9949
9950 2004-06-29  Martin Baulig  <martin@ximian.com>
9951
9952         * mono-debug.c (mono_debug_add_method): Protect the whole function
9953         in mono_debugger_lock(), not just parts of it.
9954
9955 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9956
9957         * reflection.c: make sure padding bytes in heaps are zeroed.
9958
9959 2004-06-24  David Waite  <mass@akuma.org>
9960
9961         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9962         image.c, loader.c, locales.c, marshal.c, metadata.c,
9963         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9964         string-icalls.c, threads.c: change to C90-style comments from C99 /
9965         C++ -style
9966
9967 2004-06-24  Dick Porter  <dick@ximian.com>
9968
9969         * threads.c
9970         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9971         return createdNew.  Fixes bug 60412.
9972
9973         * threads-types.h: 
9974         * icall.c: Add createdNew parameter to CreateMutex icall
9975
9976 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9977
9978         * reflection.c, object-internals.h: save default value in params.
9979
9980 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9981
9982         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9983         no need to build a new path combining that with the application base.
9984         Fixes bug #60442.
9985
9986 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9987
9988         * reflection.c: fixed minor standard compliance issues.
9989
9990 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9991
9992         * reflection.c: fixed issue with encoding some custom attributes
9993         (arrays in properties and fields, bug #60411).
9994
9995 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9996
9997         * reflection.c: fix start address when copying the public key token.
9998
9999 2004-06-23  Martin Baulig  <martin@ximian.com>
10000
10001         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10002         the `exc' object in a static object to put it into the GC's root set.
10003
10004 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10005
10006         * reflection.c: make mono_reflection_setup_internal_class ()
10007         callable a second time to setup a new parent class.
10008
10009 2004-06-23  Dick Porter  <dick@ximian.com>
10010
10011         * threads.c: Check for WAIT_IO_COMPLETION return values.
10012
10013 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
10014
10015         * appdomain.c: Removed the g_free on the public key token. Now copy 
10016         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10017         * assembly.c: Added public key token string value when loading 
10018         assemblies. Fix bug #60439.
10019         * icall.c: Added missing informations (like public key) in 
10020         GetReferencedAssemblies. Fix #60519.
10021         * image.h: Changed definition for public key token from const char*
10022         public_tok_value to guchar public_key_token [17];
10023         * reflection.c: Updated for changes to public key token.
10024
10025 2004-06-22  Lluis Sanchez Gual
10026
10027         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
10028         for the field in base classes.
10029
10030 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10031
10032         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10033         mark headers as not supported, they are installed only for use by the
10034         debugger.
10035
10036 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10037
10038         * *.c, *.h: avoid namespace pollution in public headers.
10039
10040 2004-06-21  Martin Baulig  <martin@ximian.com>
10041
10042         * exception.c (mono_get_exception_security): It's in
10043         "System.Security", not in "System".
10044
10045         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10046         the exception classes.
10047
10048 2004-06-21  Martin Baulig  <martin@ximian.com>
10049
10050         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10051         Protect the exception object from being finalized.
10052
10053 2004-06-21  Martin Baulig  <martin@ximian.com>
10054
10055         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10056         public function.
10057
10058 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10059
10060         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10061         if it was not loaded before. Fix parts of #60439.
10062
10063 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10064
10065         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10066         code that was broken since Ben's change: wrappers are now
10067         dependent on the method signature only again.
10068
10069 2004-06-21  Martin Baulig  <martin@ximian.com>
10070
10071         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10072         added interface support.
10073
10074 2004-06-21  Martin Baulig  <martin@ximian.com>
10075
10076         * class.c (mono_vtable_get_static_field_data): New public method.
10077
10078 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10079
10080         * filewatcher.c : Windows build fix to be compliant with API changes.
10081
10082 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10083
10084         * class.h, class.c: more accessors.
10085         * metadata.h, metadata.c: prepare for hiding MonoType and
10086         MonoMethodSignature: people should use the accessors from now on
10087         outside of the tree.
10088
10089 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10090
10091         * *.c, *.h: more API cleanups.
10092
10093 2004-06-18  Jackson Harper  <jackson@ximian.com>
10094
10095         * assembly.c: Trace loading assemblies.
10096         * loader.c: Trace loading native libraries.
10097         * mono-config.c: Trace loading config files.
10098         
10099 2004-06-18  Dick Porter  <dick@ximian.com>
10100
10101         * locales.c: Tell ICU the lengths of strings, it can cope with
10102         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10103
10104 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10105
10106         * image.c: swapped name/filename;
10107
10108 2004-06-18  Martin Baulig  <martin@ximian.com>
10109
10110         * mono-debug-debugger.c (write_class): Write the parent class at
10111         the end of the header.
10112
10113 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10114
10115         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10116
10117 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10118
10119         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10120         (bundle_obj): New conditional define.
10121         (BUILT_SOURCES): Remove.
10122         ($(bundle_srcs)): Make parallel-make safe.
10123         (libmonoruntime_la_LIBADD): Make unconditional.
10124         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10125         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10126
10127 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10128
10129         * culture-info-tables.h: It was inconsistent with the latest
10130           supp info files.
10131
10132 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10133
10134         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10135         be loaded.
10136
10137         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10138         with gcc 2.95.
10139
10140 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10141
10142         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10143         cleaned up public header threads.h.
10144
10145 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10146
10147         * Makefile.am, *.c, *.h: more API cleanups.
10148
10149 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10150
10151         * Makefile.am: removed monosn from compilation.
10152         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10153         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10154         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10155         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10156         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10157         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10158
10159 2004-06-15  Jackson Harper  <jackson@ximian.com>
10160
10161         * assembly.c: Make locales lower case when searching the GAC for
10162         assemblies. gacutil will always make locales lowercase when
10163         installing so this effectively makes them case insensitive.
10164         
10165 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10166
10167         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10168         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10169           parameter which allows to choose whether the wait can be interrupted or 
10170           not. Also added the method mono_monitor_enter(), which locks the monitor
10171           using an infinite wait and without allowing interruption.
10172           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10173           interrupted.
10174         * object.h: Added new fields in MonoThread. suspend_event holds the event
10175           used to susped/resume the thread. synch_lock is the lock object to use for
10176           modifying the thread state.
10177         * threads.c: Use the new synch_lock object for locking, instead of "this",
10178           which can generate deadlocks.
10179           Moved thread state change in Thread.Sleep and Thread.Join from managed
10180           to unmanaged code. This avoids a deadlock when the thread was suspended
10181           just after acquiring the thread lock.
10182           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10183           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10184           which is not fully implemented in the io-layer.
10185         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10186
10187 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10188
10189         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10190         threads-types.h: more API cleanups.
10191
10192 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10193
10194         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10195         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10196         threadpool.c, threads.c: first pass at the exported API cleanup.
10197
10198 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10199
10200         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10201
10202 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10203
10204         * icall.c: added internalGetHome.
10205
10206 2004-06-14  Dick Porter  <dick@ximian.com>
10207
10208         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10209         possible to return successfully when '.' or '..' were the only
10210         entries in a directory, but were skipped.  The MonoIOStat was not
10211         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10212         Fixes bug 59574.
10213
10214 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10215
10216         * reflection.c: make binaries run on .Net 1.1 by default.
10217
10218 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10219
10220         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10221
10222 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10223
10224         * marshal.c: keep track of struct size with explicit layout
10225         (bug #59979).
10226
10227 2004-06-12  Martin Baulig  <martin@ximian.com>
10228
10229         * mono-debug-debugger.c: Comment out a debugging g_message().
10230
10231 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10232
10233         * reflection.c, reflection.h: do not free custom attrs that are cached.
10234         * icall.c: use braces to make code clearer.
10235
10236 2004-06-11  Martin Baulig  <martin@ximian.com>
10237
10238         * class.h (MonoInflatedField): New type.
10239         (MonoClassField): Replaced `MonoType *generic_type' with
10240         `MonoInflatedField *generic_info'.
10241
10242         * icall.c
10243         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10244
10245 2004-06-11  Martin Baulig  <martin@ximian.com>
10246
10247         * reflection.c (mono_image_create_method_token): Correctly encode
10248         varargs methods.
10249
10250 2004-06-11  Martin Baulig  <martin@ximian.com>
10251
10252         * metadata.c (mono_metadata_parse_method_signature): When parsing
10253         a MethodDef which has VarArgs, also set sentinelpos if we don't
10254         have any parameters.
10255
10256 2004-06-11  Martin Baulig  <martin@ximian.com>
10257
10258         * verify.c (mono_method_verify): In CEE_CALL, use
10259         mono_method_get_signature() to get the method's signature, unless
10260         we're a PInvoke method.
10261
10262 2004-06-10  Jackson Harper  <jackson@ximian.com>
10263
10264         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10265         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10266         logical name as the supplied path is just a prefix to the gac not
10267         the direct path to it.
10268         
10269 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10270
10271         * reflection.c: make the token for a created method match
10272         the token of the MethodBuilder it was created from
10273         (IKVM requires this behaviour now).
10274
10275 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10276
10277         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10278         reflection.c, socket-io.c: leak fixes.
10279
10280 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10281
10282         * icall.c: handle sentinel pos in vararg methods in position different
10283         from 0.
10284
10285 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10286
10287         * culture-info-tables.h: freshly generated.
10288
10289 2004-06-09  Martin Baulig  <martin@ximian.com>
10290
10291         * loader.c (mono_get_method_constrained): Call `mono_class_init
10292         (constrained_class)'.   
10293
10294 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10295
10296         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10297         any methods. Fixes #59629.
10298
10299 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10300
10301         * culture-info-tables.h: reflecting locale-builder updates.
10302
10303 2004-06-08  Dick Porter  <dick@ximian.com>
10304
10305         * object.h:
10306         * locales.c: Fixed compile warnings, including a real bug in
10307         CompareInfo_internal_compare.
10308         
10309 2004-06-08  Dick Porter  <dick@ximian.com>
10310
10311         * locales.c
10312         (ves_icall_System_Globalization_CompareInfo_internal_index):
10313         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10314         Double-check the resuls of usearches, because ICU currently
10315         ignores most of the collator settings here.  Fixes bug 59720.
10316         
10317 2004-06-08  Dick Porter  <dick@ximian.com>
10318
10319         * locales.c
10320         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10321         Fix memory leak and segfault-causing typo.  No idea how this one
10322         lasted so long without being noticed.
10323
10324 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10325
10326         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10327         any methods. Fixes #59629.
10328
10329 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10330
10331         * assembly.c:
10332         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10333         own the critical section before). Removed dead code (that's done
10334         in the preload hook).
10335
10336         (mono_assembly_load_with_partial_name): call the preload hook.
10337
10338 2004-06-08  Martin Baulig  <martin@ximian.com>
10339
10340         * metadata.c (mono_metadata_signature_alloc): Default
10341         `sentinelpos' to -1.
10342
10343         * reflection.c (mono_image_get_array_token): Likewise.
10344
10345 2004-06-08  Martin Baulig  <martin@ximian.com>
10346
10347         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10348
10349         * metadata.c (mono_metadata_parse_method_signature): When parsing
10350         a MethodDef which has VarArgs, set sentinelpos.
10351
10352         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10353         `gint16' since we're using -1 for non-varargs methods.
10354
10355         * reflection.c
10356         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10357         (method_encode_signature): Added varargs support.
10358         (method_builder_encode_signature): Likewise.
10359         (mono_image_get_varargs_method_token): New static method.
10360         (mono_image_create_method_token): New public method; this is
10361         called via an icall instead of mono_image_create_token() when
10362         calling a varargs method.       
10363
10364 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10365
10366         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10367
10368 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10369
10370         * culture-info-tables.h : Reflecting the latest locale-builder that
10371           fixed empty array representation ({} to {0}).
10372
10373 2004-06-07  Jackson Harper  <jackson@ximian.com>
10374
10375         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10376         looking up extra gac paths. This allows MONO_GAC_PATH to act
10377         exactly like a prefix.
10378         
10379 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10380
10381         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10382         type name before modifying it. Fixes #59405.
10383
10384 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10385
10386         * culture-info.h: added fields for "all datetime patterns".
10387         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10388           _construct_datetime_format ()): fill xxx_patterns fields.
10389         * object.h: added fields for "all datetime patterns" to
10390           MonoDateTimeFormatInfo.
10391         * culture-info-tables.h: reflecting locale-builder updates.
10392
10393 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10394
10395         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10396         the event has no add and remove methods. Fixes #59629.
10397
10398 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10399
10400         * object.c: Fixed possible integer overflow when allocating large
10401         strings.
10402
10403 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10404
10405         * culture-info-tables.h: reflecting locale-builder updates.
10406
10407 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10408
10409         * culture-info-tables.h: reflecting locale-builder updates.
10410
10411 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10412
10413         * culture-info-tables.h: reflecting locale-builder updates.
10414
10415 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10416
10417         * threads.c: Made Thread.Sleep abortable.
10418
10419 2004-06-02  Martin Baulig  <martin@ximian.com>
10420
10421         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10422
10423         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10424
10425 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10426
10427         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10428
10429 2004-05-30  Jackson Harper  <jackson@ximian.com>
10430
10431         * reflection.c: Do not hardcode assembly versions or public key
10432         tokens anymore. All of this except the corlib section was dead
10433         code anyways.
10434         
10435 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10436
10437         * object.c (mono_runtime_invoke_array): Automatically create boxed
10438         objects for byref valuetypes if needed. Fixes #59300.
10439         
10440         * object.c (mono_method_return_message_restore): Handle 
10441         MONO_TYPE_OBJECT as well.
10442
10443 2004-05-28  Jackson Harper  <jackson@ximian.com>
10444
10445         * reflection.c: The modified type encoding was causing build
10446         problems. Reverted for now.
10447         
10448 2004-05-28  Jackson Harper  <jackson@ximian.com>
10449
10450         * reflection.c/h: Take an assembly ref so that we dont create
10451         fully qualified names when encoding types in the same assembly as
10452         the custom attribute being emitted.
10453         * appdomain.c: Increment version number.
10454         
10455 2004-05-26  Duncan Mak  <duncan@ximian.com>
10456
10457         * icall.c
10458         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10459         Set the full version number (major, minor, build, revision).
10460
10461 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10462
10463         * marshal.c (emit_struct_conv): increment src/dst after blit
10464         (mono_marshal_get_managed_wrapper,
10465         mono_marshal_get_native_wrapper): make sure we have marshalling
10466         info before marshalling params (info computation affects
10467         blittable)
10468
10469         * class.c (class_compute_field_layout): correctly deal with
10470         blittable
10471         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10472         value types (as per what windows dows by default)
10473         (mono_class_setup_mono_type): System.ValueType is blittable
10474         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10475         blittable
10476
10477         * marshal.c (mono_marshal_load_type_info): flag types  as
10478         non-blittable if the native layout doesn't match the managed
10479         layout
10480
10481 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10482
10483         * appdomain.c: don't add stuff in the private search path that is
10484         above the application base. If application base is not set, there's
10485         no private search path.
10486
10487 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10488
10489         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10490         byref struct arguments in native->managed marshalling.
10491
10492 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10493
10494         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10495         cache methods using signature (special case for methods
10496         that are value type or string class)
10497         
10498         * image.c (mono_image_close): clean up allocated GSList's
10499         in runtime_invoke_cache.
10500
10501 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10502
10503         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10504         there's no MONO_CFG_DIR environment variable defined.
10505
10506 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10507
10508         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10509
10510 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10511
10512         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10513           is interrumped.
10514         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10515           before waiting for it, and call CloseHandle after the wait to unref it.
10516           This will make sure that handles are not disposed too early.
10517
10518 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10519
10520         * appdomain.c:
10521         * appdomain.h:
10522         * icall.c: removed
10523         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10524         needed now.
10525
10526         * object.c: se the application_base only for the domain that runs
10527         Main. Fixes bug #59216,
10528
10529 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10530
10531         * appdomain.c:
10532         * object.c: only the domain in which Main is run have
10533         SetupInformation.ConfigurationFile set, so moved a few lines from
10534         appdomain.c to object.c.
10535
10536 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10537
10538         * appdomain.c: we tried to load [name].(dll|exe), but according
10539         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10540         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10541         There's a test case attached to bug #58922.
10542
10543 2004-05-27  Dick Porter  <dick@ximian.com>
10544
10545         * icall.c:
10546         * file-io.c: Implemented icalls for locking and unlocking regions
10547         in a file.
10548         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10549         FALSE on error (fixes both compiler warning and real bug.)
10550
10551 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10552
10553         * culture-info-tables.h: reflecting locale-builder updates.
10554
10555           (Added missing ChangeLog entry for 05/26)
10556
10557 2004-05-27  Jackson Harper  <jackson@ximian.com>
10558
10559         * locales.c: Fix some cut and paste errors.
10560         
10561 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10562
10563         * mono-config.c: set the correct path for config. directory on windows.
10564
10565 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10566
10567         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10568           on win32.
10569
10570 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10571
10572         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10573         from pinvoke functions.
10574         
10575         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10576
10577 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10578
10579         * culture-info-tables.h: reflecting locale-builder updates.
10580
10581 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10582
10583         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10584         #59086.
10585
10586 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10587
10588         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10589         * icall.c: Modified icalls for RNG.
10590         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10591         Windows (CryptoAPI).
10592
10593 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10594
10595         * locales.c: Fix build.
10596
10597 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10598
10599         * culture-info-tables.h: reflecting locale-builder updates.
10600
10601 2004-05-25  Jackson Harper  <jackson@ximian.com>
10602
10603         * locales.c: When creating the current culture use the $LANGs
10604         specific culture. So DateTimeFormat and NumberFormat entries are created.
10605         
10606 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10607
10608         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10609         a char array as parameter.
10610
10611 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10612
10613         * image.c: In mono_image_open(), always use an absolute path name to
10614           look for already loaded images.
10615
10616 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10617
10618         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10619         missing in the windows build (like older cygwin include files).
10620
10621 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10622
10623         * icall.c: Fixed check for possible integer overflow in Buffer_
10624         BlockCopy icall. Replaced comments style // by /* */.
10625
10626 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10627
10628         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10629         
10630         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10631         check after MONO_VTADDR. Fixes pinvoke2.exe.
10632
10633         * marshal.h marshal.c metadata.h: Add beginnings of support for
10634         ftnptr -> delegate marshalling.
10635
10636 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10637
10638         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10639         * threads.c: Fix warnings.
10640
10641 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10642
10643         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10644         * icall.c: Registered icalls for Suspend and Resume.
10645         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10646           Thread.Abort.
10647         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10648         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10649         * process.c: Use WaitForSingleObjectEx.
10650         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10651           checkpoints.
10652         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10653           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10654           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10655           background threads. Added basic support for Abort in Windows.
10656           Start new threads using a managed delegate invoke wrapper. This wrapper
10657           has an interruption checkpoint that is needed since an interruption
10658           can be requested before the thread leaves the unmanaged code that starts 
10659           the thread.
10660         * marshal.c: Added interruption checkpoint after every native call, and
10661           also before managed calls for wrappers called from unmanaged code to
10662           go into managed code.
10663         * object.h: Added new field in MonoThread to keep track of interruption
10664           requests.
10665
10666 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10667
10668         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10669         calls.
10670
10671 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10672
10673         * appdomain.c:
10674         * assembly.c:
10675         * gc.c:
10676         * locales.c:
10677         * mono-config.c:
10678         * rand.c: getenv -> g_getenv (windows!)
10679
10680         * process.c: complete_path is also used on non-windows platforms.
10681
10682 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10683
10684         * icall.c: new signature for Process_Start.
10685
10686         * process.[ch]: new signature for Process_Start. If we're on windows
10687         and UseShellExecute is false, we have to search for the program by
10688         ourselves if we don't get a full path.
10689
10690 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10691
10692         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10693         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10694
10695 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10696
10697         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10698         Fixes bug #58373.
10699
10700 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10701
10702         * process.c: use double quotes to quote program name and arguments on
10703         windows. Fixes bug #58575.
10704
10705 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10706
10707         * file-io.c: don't return "." and ".." when using windows Find*File.
10708
10709 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10710
10711         * marshal.c: Don't pass wrappers to message init because method 
10712         addressed used to lookup metadata. part of remoting[2|3] fix.
10713
10714 2004-05-15  Jackson Harper  <jackson@ximian.com>
10715
10716         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10717         path is essentially the same as MONO_PATH except that it points to
10718         GACs instead of lib directories.
10719         * loader.h: The user gac is gone so we dont need function to
10720         enable/disable it.
10721         * mono-config.c: user gac option is now gone.
10722         
10723 2004-05-15  Jackson Harper  <jackson@ximian.com>
10724
10725         * culture-info.h: Make defines more consistent, add calendar data
10726         to the culture info table.
10727         * culture-info-tables.h: Add basic calendar data. Basically
10728         everyone gets default gregorian until all the data is
10729         updated.
10730         * locales.c: Use the new consistent defines. Set calendar data for
10731         culture info objects.
10732         * object.h: add a field for calendar data to CultureInfo
10733         
10734 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10735
10736         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10737         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10738         a signature.
10739         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10740         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10741         an extra param that is the pointer of the method to invoke. The IL for
10742         the invoke method is no longer specific to the method, but to the
10743         signature of the method. Thus, we can share the same code for multiple
10744         methods. This reduces the number of methods that have to be compiled.
10745
10746 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10747
10748         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10749
10750         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10751
10752         * icall.c: Optimize Buffer.BlockCopy.
10753
10754 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10755
10756         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10757         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10758         quote). Changed them to "MMMM yyyy".
10759
10760 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10761
10762         * rand.c
10763         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10764
10765 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10766
10767         * reflection.h: Updated after changes to managed structures.
10768
10769         * appdomain.c: Bump corlib version.
10770
10771 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10772
10773         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10774         windows.
10775
10776 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10777
10778         * Makefile.am: link to ../os/libmonoos.la on windows.
10779
10780         * assembly.c:
10781                 -If MONO_DEBUG, warn about non-existing directories in
10782                 MONO_PATH.
10783                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10784                 compile time variable.
10785                 -Removed init_default_path and call mono_set_rootdir from
10786                 libmonoos.a instead (windows only).
10787
10788         * assembly.h: declare mono_assembly_getrootdir().
10789
10790         * domain.c:
10791         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10792
10793         * loader.c: s/getenv/g_getenv/
10794
10795 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10796
10797         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10798
10799         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10800
10801         * metadata.h: Add new marshalling conversions.
10802
10803         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10804         function.
10805
10806         * reflection.c (mono_reflection_get_type): Lookup the type in all
10807         modules of a multi-module assembly. Fixes #58291.
10808
10809 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10810
10811         * threads.c: Before aborting a background, set the StopRequested
10812         state.  This avoids throwing the Abort exception.
10813         In mono_thread_manage, don't continue with the shutdown until all
10814         aborted threads have actually stopped.
10815
10816 2004-05-10  Jackson Harper  <jackson@ximian.com>
10817
10818         * locales.c: Remove the modifier from culture names.
10819         
10820 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10821
10822         * Makefile.am: monosn is not installed any more. It has been deprecated
10823         in favor of sn.
10824
10825 2004-05-07  Jackson Harper  <jackson@ximian.com>
10826
10827         * locales.c
10828         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10829         Fix array construction, add bailout if the length is 0.
10830
10831 2004-05-07  Dick Porter  <dick@ximian.com>
10832
10833         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10834         machine doesn't have a DNS entry.  Patch by Urs Muff
10835         (umuff@quark.com), fixes bug 57928.
10836
10837 2004-05-06  Jackson Harper  <jackson@ximian.com>
10838
10839         * reflection.c: Handle null PublicTokens properly. alloc mem for
10840         assembly names culture so we dont crash when freeing it.
10841         
10842 2004-05-06  Jackson Harper  <jackson@ximian.com>
10843
10844         * assembly.c: Check the usergac when loading with partial names.
10845         
10846 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10847
10848         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10849         does nothing for now (not required for Linux/Windows) but the class
10850         library can call it (and a newer or modified runtime could need it).
10851         * icall.c: Registred icall.
10852
10853 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10854
10855         * loader.c: prints a message on module loading error we set MONO_DEBUG
10856         environment variable.
10857
10858 2004-05-05  Jackson Harper  <jackson@ximian.com>
10859
10860         * appdomain.c: Handle PublicKeyToken=null properly.
10861         
10862 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10863
10864         * environment.c|h: Added icall ves_icall_System_Environment_
10865         GetOSVersionString to get the current OS version as a string.
10866         * icall.c: Registred icall.
10867
10868 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10869
10870         * object.c: in mono_object_get_virtual_method(), take into account that
10871         non-virtual methods don't have a slot in the vtable. Check needed when
10872         the object is a proxy.
10873
10874 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10875
10876         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10877         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10878
10879         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10880
10881         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10882         passed when a valuetype is expected.
10883
10884         * object.c (mono_unhandled_exception): Only set the exit code if the
10885         exception happens in the main thread. Fixes thread5.exe.
10886
10887         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10888         invalid names. Fixes #58047.
10889
10890 2004-05-03  Jackson Harper  <jackson@ximian.com>
10891
10892         * assembly.c: This line was committed accidently and is unneeded.
10893         
10894 2004-05-03  Jackson Harper  <jackson@ximian.com>
10895
10896         * icall.c: Add new icall for Assembly::LoadWithPartialName
10897         * assembly.c/.h: new function that probes the GAC to load partial
10898         assembly names by Paolo Molaro.
10899         
10900 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10901
10902         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10903         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10904         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10905         full type name.
10906
10907 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10908
10909         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10910         * reflection.c: fix bug when parsing a full type name and Version is not
10911         the last thing in the string.
10912
10913 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10914
10915         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10916         crashes when it is freed.
10917
10918 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10919
10920         * assembly.c: print the compat warning to stderr.
10921
10922 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10923
10924         * assembly.c (mono_assembly_load_references): Add a compatibility
10925         hack to run old applications that might be still referencing the
10926         3300-based assemblies, only do this for System.xxx.
10927
10928 2004-05-01  Jackson Harper  <jackson@ximian.com>
10929
10930         * appdomain.c: If the culture is neutral we set it to "".
10931         
10932 2004-04-29  Jackson Harper  <jackson@ximian.com>
10933
10934         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10935
10936 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10937  
10938         * string-icalls.c: added low overhead function for copying chars
10939         * icall.c: added needed icall for the above function
10940  
10941 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10942
10943         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10944         Environment.GetLogicalDrives.
10945
10946 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10947
10948         * rand.c: try and talk to egd or prngd
10949         for random bytes if opening devices fail.
10950
10951 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10952
10953         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10954         alignment for the type using the native alignment of its members 
10955         instead of using klass->min_align.
10956
10957         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10958
10959 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10960
10961         * file-io.c:
10962         * socket-io.c: added check for sys/aio.h.
10963
10964 2004-04-28  Dick Porter  <dick@ximian.com>
10965
10966         * threads.c: Don't abort a thread thats already aborting, when
10967         terminating everything.
10968
10969 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10970
10971         * icall.c: added 2 new async calls for Socket.
10972
10973         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10974         IO on *nix systems.
10975
10976         * threadpool.c: removed unused variable.
10977
10978 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10979
10980         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10981
10982 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10983
10984         * locales.c: put back string_invariant_tolower () and
10985         string_invariant_toupper ().
10986
10987 2004-04-26 David Waite <mass@akuma.org>
10988
10989         * file-io.h:
10990         * socket-io.h:
10991         * threads.h:
10992         * unicode.h: remove comma from end of enumeration declarations
10993
10994 2004-04-26 David Waite <mass@akuma.org>
10995
10996         * debug-mono-symfile.h:
10997         * decimal.c:
10998         * mono_debug.h:
10999         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11000
11001
11002 2004-04-26  Jackson Harper  <jackson@ximian.com>
11003
11004         * appdomain.c: Increment version number.
11005         
11006 2004-04-26  Jackson Harper  <jackson@ximian.com>
11007
11008         * appdomain.c: Set assembly references public token value when
11009         PublicKeyToken is specified, not the hash_value. Free public token
11010         values when free assembly name data. Previously the public key
11011         token was hex decoded, however we are using hex encoded public key
11012         tokens, so this is not neccasary.
11013         * assembly.c: Lookup assemblies in the gac if their public token
11014         value is set. Add function to allow enabling user gac
11015         lookups. Specify whether or not the assembly was loaded from the
11016         GAC. Compare full assembly names when checking the cache for
11017         assemblies (Temporarily disabled see comment in code). Remove
11018         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11019         specifies trace-loader they get extra info to stdout on the
11020         loading of assemblies.
11021         * image.h: Add a field for an assembly references public token
11022         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11023         whether an assembly has been loaded from the GAC.
11024         * image.c: Remove a corlib -> mscorlib name mapping.
11025         * loader.h: Add function to enable/disable the user gac.
11026         * mono-config.c: Check if the usergac is enabled in the config
11027         file.
11028         * icall.c: New icall to determine whether or not an assembly has
11029         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11030         * tabldefs.h: Add constant for assemblyref flag that specifies a
11031         full public key is used instead of a public token.
11032         * reflection.c: Remove mscorlib -> corlib mappings. Set
11033         PublicTokenValue instead of hash value. This value is a hex
11034         string so it does not need to be expanded.
11035
11036 2004-04-26  Martin Baulig  <martin@ximian.com>
11037
11038         * mono-debug-debugger.c (mono_debugger_initialize): Set
11039         `mono_debugger_initialized' before calling mono_debug_lock().
11040
11041 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11042
11043         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11044           InternalToUpper/InternalToLower.
11045         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11046           removed invariant culture shortcut.  This is now done in managed code.
11047         * locales.c: (string_invariant_toupper/tolower) removed.
11048
11049 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11050
11051         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11052         Added Poll internal call.
11053
11054         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11055         call for Poll. Select was too heavy for polling a single socket.
11056
11057         * threadpool.[ch]: added mono_threadpool_cleanup.
11058         * threads.c: use it. Don't use Thread_Abort on windows.
11059
11060 2004-04-23  Martin Baulig  <martin@ximian.com>
11061
11062         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11063
11064 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11065
11066         * icall.c: Registred new icalls for key pair protection and added an
11067         icall for Environment.GetFolderPath on Windows.
11068         * security.c|h: Added new icalls for key pair protection.
11069
11070 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11071
11072         * socket-io.c: don't display the non-supported family warning for known
11073         families. Now this is not displayed on windows when checking support
11074         for IPv4/IPv6.
11075
11076 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11077
11078         * class.c: don't display the layout warning for static fields.
11079
11080 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11081
11082         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11083         * locales.c, locales.h: Added new icalls for culture-specific
11084         Char.ToLower and Char.ToUpper.
11085
11086 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11087
11088         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11089         by David Waite.
11090
11091 2004-04-20  Martin Baulig  <martin@ximian.com>
11092
11093         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11094         of the type name before passing it to mono_reflection_type_from_name().
11095
11096 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11097
11098         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11099         encodings here. Fixes #56965.
11100
11101 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11102
11103         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11104         fix test on strstr result not that I can see anything that
11105         relies on the result.
11106
11107 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11108
11109         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11110         Fixes #57081.
11111
11112         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11113
11114         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11115         function to determine which marshalling to use for strings. Fixes
11116         #56965.
11117
11118         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11119
11120         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11121
11122 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11123
11124         * icall.c: #include mono-config.h
11125
11126 2004-04-15  Jackson Harper  <jackson@ximian.com>
11127
11128         * culture-info-tables.h: Fix date formats for en-US culture.
11129         
11130 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11131
11132         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11133         ThreadPool.SetMinThreads.
11134         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11135         ThreadPool.SetMinThreads.
11136
11137 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11138
11139         * mono-config.c: also load the .config file in the directory
11140         where the assembly was found.
11141
11142 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11143
11144         * assembly.c: load per-assembly config files.
11145         * icall.c: decrapified code to get the config dir and moved to
11146         mono-config.c.
11147         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11148         per-assembly config files. When doing a dll map lookup give precedence
11149         to the per-assembly data.
11150
11151 2004-04-14  Martin Baulig  <martin@ximian.com>
11152
11153         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11154         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11155         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11156
11157         * mono-debugger-debugger.c: While the debugger is locked, remember
11158         whether the symbol tables have changes and send one single
11159         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11160
11161 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11162
11163         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11164
11165         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11166         function.
11167
11168         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11169         account when marshalling string arrays. Fixes #56965.
11170
11171 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11172
11173         * icall.c: Add new icalls mapping for security.
11174         * security.c|h: Add internal calls for WindowsIdentity,
11175         WindowsImpersonationContext and WindowsPrincipal.
11176
11177 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11178
11179         * class.c: Added comment to ensure the System.MonoDummy class
11180         is removed when no longer necessary
11181
11182 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11183
11184         * appdomain.c: Pass arguments to the bootstraping exceptions to
11185         minimize JITed methods at boot
11186
11187         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11188         second string to be null.
11189
11190         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11191         Change the protocol to minimize the JIT methods at startup.  Now
11192         it Returns the internal codepage, if the value of "int_code_page"
11193         is 1 at entry, and we can not compute a suitable code page
11194         number, returns the code page as a string.
11195
11196 2004-04-13  Jackson Harper  <jackson@ximian.com>
11197
11198         * culture-info-tables.h: Fix number of decimal digits for all
11199         english locales.
11200
11201 2004-04-13  Jackson Harper  <jackson@ximian.com>
11202
11203         * icall.c: Clairfy out of sync error message. It is not always
11204         your corlib that is out of sync.
11205
11206 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11207
11208         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11209         properties when only the set accessor is overriden. Fixes #55874.
11210
11211 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11212
11213         * assembly.c (mono_assembly_load_references): Make this thread safe.
11214         Fixes #56327.
11215
11216 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11217
11218         * monosn.c: Add missing initialization calls.
11219
11220 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11221
11222         * locales.c:
11223         ves_icall_System_Globalization_CultureInfo_construct_number_format
11224         Fix g_assert so it compiles on fussier compilers re int/ptr
11225         mismatch
11226
11227 2004-04-08  Dick Porter  <dick@ximian.com>
11228
11229         * socket-io.h:
11230         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11231         53992.  Also rearrange the code so that the internal calls return
11232         an error value and exceptions are thrown from managed code.
11233
11234         * icall.c: Add type info to the socket icalls.
11235
11236 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11237
11238         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11239         owes me a beer.
11240
11241 2004-04-07  Martin Baulig  <martin@ximian.com>
11242
11243         * class.c (mono_class_from_generic_parameter): Don't default
11244         `klass->parent' to `mono_defaults.object_type'.
11245
11246 2004-04-07  Martin Baulig  <martin@ximian.com>
11247
11248         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11249         `param->pklass->reflection_info'.       
11250
11251 2004-04-07  Jackson Harper  <jackson@ximian.com>
11252
11253         * culture-info-tables.h: Fix date separator symbol.
11254         
11255 2004-04-07  Martin Baulig  <martin@ximian.com>
11256
11257         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11258         from System.Type to System.MonoType.
11259
11260 2004-04-07  Martin Baulig  <martin@ximian.com>
11261
11262         * reflection.h
11263         (MonoReflectionGenericParam): Added `has_reference_type' and
11264         `has_value_type' fields.
11265
11266         * reflection.c (mono_image_get_generic_param_info): Encode the
11267         correct flags if we have the `class' or `struct' constraint.
11268
11269 2004-04-07  Martin Baulig  <martin@ximian.com>
11270
11271         * reflection.h
11272         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11273
11274 2004-04-07  Jackson Harper  <jackson@ximian.com>
11275
11276         * appdomain.c: Revert extra patches, just wanted to bump the
11277         version number.
11278         
11279 2004-04-07  Jackson Harper  <jackson@ximian.com>
11280
11281         * Makefile.am: Add culture-info private headers.
11282         * icall.c: Add new icalls for contructing locales.
11283         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11284         * locales.h: Declare new culture info construction methods.
11285         * object.h: Add new fields used to avoid the CultureMap to
11286         MonoCultureInfo.
11287         * culture-info.h: Definition of structs used in the culture info
11288         tables.
11289         * culture-info-tables.h: Autogenerated tables that contain culture
11290         info data. This file was generated with the locale-builder tool.
11291         * appdomain.c: Incement corlib version number.
11292         
11293 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11294
11295         * appdomain.c: (mono_runtime_init) move mono_thread_init
11296         to before mono_object_new calls so critical sections
11297         are initialized before use.
11298
11299 2004-04-07  Martin Baulig  <martin@ximian.com>
11300
11301         * icall.c
11302         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11303         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11304         (ves_icall_MonoGenericParam_initialize): Removed.
11305         (monogenericparam_icalls): Removed.
11306         (generictypeparambuilder_icalls): Added new table for
11307         System.Reflection.Emit.GenericTypeParameterBuilder.
11308
11309         * reflection.c
11310         (mono_reflection_define_generic_parameter): Removed.
11311         (mono_reflection_initialize_generic_parameter): This is now called
11312         from GenericTypeParameterBuilder's .ctor.
11313
11314 2004-04-06  Martin Baulig  <martin@ximian.com>
11315
11316         * class.c (mono_class_init): Don't inflate nested classes in a
11317         generic instance.
11318         (mono_type_get_name_recurse): Include the generic arguments for
11319         generic instances and generic type declarations.
11320         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11321         (_mono_class_get_instantiation_name): Removed.
11322         (mono_class_create_generic): Always use `gklass->name' as our name.
11323
11324         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11325
11326         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11327         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11328         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11329         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11330         closed generic methods here.
11331
11332         * reflection.c
11333         (mono_reflection_generic_inst_get_nested_types): Removed.
11334         (inflate_mono_method): Copy the generic parameters from the
11335         MonoMethodHeader into out MonoGenericMethod.
11336
11337 2004-04-06  Martin Baulig  <martin@ximian.com>
11338
11339         * row-indexes.h
11340         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11341
11342         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11343
11344         * reflection.c (build_compressed_metadata): If we have any entries
11345         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11346         set the header version to 1.1.
11347
11348 2004-04-06  Martin Baulig  <martin@ximian.com>
11349
11350         * class.c (mono_class_init): If we're a generic instance,
11351         initialize our nested classes, too.
11352         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11353         suffix. 
11354
11355 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11356
11357         * process.c: quote the argument passed to the shell on windows.
11358
11359 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11360
11361         * threads.c (mono_alloc_special_static_data): Allow this to be
11362         called during startup.
11363
11364 2004-04-02  Martin Baulig  <martin@ximian.com>
11365
11366         * icall.c
11367         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11368
11369 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11370
11371         * icall.c: Fix build.
11372
11373 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11374
11375         * Makefile.am: Added security.c|h.
11376         * icall.c: Added icall for get_UserName;
11377         * security.c: New file for security related icalls. Added function
11378         get_UserName for System.Environment (fix #56144).
11379         * security.h: New. Header file for security.c
11380
11381 2004-04-02  Dick Porter  <dick@ximian.com>
11382
11383         * icall.c: Deleted the icalls that were obsoleted some time ago
11384         by the ICU string code, and which were mixed into the icall
11385         rearranging.  Fixes bug 55969.
11386
11387         * string-icalls.h: 
11388         * string-icalls.c: Deleted the code that those icalls reference.
11389
11390 2004-04-01  Martin Baulig  <martin@ximian.com>
11391
11392         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11393
11394         * class.c (mono_class_from_generic_parameter): Don't set 
11395         TYPE_ATTRIBUTE_INTERFACE.
11396         (my_mono_class_from_generic_parameter): Likewise.
11397
11398 2004-04-01  Martin Baulig  <martin@ximian.com>
11399
11400         * loader.c (find_method): Added an optional `MonoClass *ic'
11401         argument to search in a specific interface.
11402         (mono_get_method_constrained): New public function.
11403
11404 2004-04-01  Martin Baulig  <martin@ximian.com>
11405
11406         * reflection.c (mono_image_get_generic_field_token): Use the
11407         `handleref' cache here.
11408
11409 2004-04-01  Martin Baulig  <martin@ximian.com>
11410
11411         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11412
11413         * reflection.c (create_generic_typespec): Use the `typespec' hash
11414         here, not the `typeref' one.    
11415
11416 2004-04-01  Martin Baulig  <martin@ximian.com>
11417
11418         * class.c (mono_class_inflate_generic_type): Moved the
11419         functionality into a new static inflate_generic_type() which
11420         returns NULL if it didn't do anything.  Only increment the
11421         `mono_stats.inflated_type_count' if we actually inflated
11422         something.
11423         (mono_class_get_full): Check the classes type to see whether we
11424         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11425
11426 2004-04-01  Jackson Harper  <jackson@ximian.com>
11427
11428         * reflection.c: Set culture for assembly references.
11429         
11430 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11431
11432         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11433
11434 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11435
11436         * assembly.c:
11437         (do_mono_assembly_open): the critical section also covers
11438         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11439
11440 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11441
11442         * threads.c:
11443         (mono_manage_threads): abort the background threads when finishing.
11444         Fixes bug #47232.
11445
11446 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11447
11448         * gc.c: only close the done_event handle if there was no timeout.
11449         C-ified comments.
11450
11451 2004-03-30  Martin Baulig  <martin@ximian.com>
11452
11453         * icall.c (icall_entries): It's called "System.Activator", not
11454         "System.Activation".    
11455
11456 2004-03-30  Martin Baulig  <martin@ximian.com>
11457
11458         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11459         (mono_class_create_from_typespec): Likewise.
11460
11461 2004-03-30  Martin Baulig  <martin@ximian.com>
11462
11463         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11464         `has_ctor_constraint' and `initialized'.
11465
11466 2004-03-30  Martin Baulig  <martin@ximian.com>
11467
11468         * reflection.c (encode_new_constraint): New static function to add
11469         the constructor constraint attribute to a type parameter.
11470         (encode_constraints): Call encode_new_constraint() if necessary.
11471
11472         * reflection.h
11473         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11474
11475         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11476         
11477 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11478
11479         * reflection.c, icall.c: add support for pinning variables. 
11480
11481 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11482
11483         * marshal.c (mono_marshal_get_managed_wrapper):
11484         init bool local with zero rather than null.
11485
11486 2004-03-29  Martin Baulig  <martin@ximian.com>
11487
11488         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11489         the "official" behavior here.
11490         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11491
11492 2004-03-29  Martin Baulig  <martin@ximian.com>
11493
11494         * icall.c: Reflect latest API changes.
11495
11496 2004-03-29  Martin Baulig  <martin@ximian.com>
11497
11498         * loader.c (mono_get_method_from_token): Also call
11499         mono_metadata_load_generic_params () for abstract and interface
11500         methods; replace the type arguments in the method signature with
11501         the ones which are loaded from the metadata.
11502
11503 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11504
11505         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11506         of the lock is not the current thread. MS.NET don't do it, in spite of
11507         what the documentation says. See bug #56157.
11508
11509 2004-03-28  Martin Baulig  <martin@ximian.com>
11510
11511         * class.c (mono_class_init): Don't call init_properties() and
11512         init_events() for generic instances; set `prop->parent' when
11513         inflating properties.
11514
11515         * reflection.c (mono_generic_inst_get_object): Call
11516         `mono_class_init (ginst->klass)'.
11517         (mono_type_get_object): Only create a MonoGenericInst if your
11518         generic type is a TypeBuilder.
11519         (do_mono_reflection_bind_generic_parameters): Only set
11520         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11521
11522 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11523
11524         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11525         Fixes #56091.
11526
11527 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11528
11529         * icall.c: added Kill_internal icall.
11530         * process.[ch]: added Kill_internal icall.
11531
11532 2004-03-25  Martin Baulig  <martin@ximian.com>
11533
11534         * class.h (MonoStats): Added `generic_instance_count',
11535         `inflated_method_count', `inflated_type_count' and
11536         `generics_metadata_size'.       
11537
11538 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11539
11540         * reflection.c: no warnings now.
11541
11542 2004-03-25  Martin Baulig  <martin@ximian.com>
11543
11544         * class.c (mono_class_get_full): New public function; does a
11545         mono_class_get(), but also takes a `MonoGenericContext *'.
11546
11547         * loader.c (mono_field_from_memberref): Renamed to
11548         `field_from_memberref', made static and added `MonoGenericContext *'
11549         argument.
11550         (mono_field_from_token): Added `MonoGenericInst *' argument.
11551         (method_from_memberef): Likewise.
11552         (mono_get_method_from_token): Likewise.
11553         (mono_get_method_full): New public function; does a
11554         mono_get_method(), but also takes a `MonoGenericContext *'.
11555
11556         * verify.c (mono_method_verify): Get the method's generic context
11557         and pass it to mono_field_from_token(), mono_get_method_full() and
11558         mono_class_get_full().
11559
11560 2004-03-25  Martin Baulig  <martin@ximian.com>
11561
11562         * class.c (mono_class_inflate_generic_type): Take a
11563         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11564         `MonoGenericMethod *'.
11565
11566 2004-03-25  Martin Baulig  <martin@ximian.com>
11567
11568         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11569         instead of the MonoGenericMethod here.
11570
11571 2004-03-25  Martin Baulig  <martin@ximian.com>
11572
11573         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11574         each time we create a new MonoGenericInst, we also create a new
11575         context which points back to us.
11576
11577         * class.c (inflate_method): Use `ginst->context' instead of
11578         creating a new context.
11579
11580         * loader.c (method_from_memberref): Use
11581         `klass->generic_inst->context' instead of creating a new context.
11582
11583 2004-03-25  Martin Baulig  <martin@ximian.com>
11584
11585         * class.h (MonoGenericContext): New struct.
11586         (MonoGenericMethod): Removed `generic_inst'.
11587
11588         * class.c (mono_class_inflate_generic_method): Take a
11589         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11590
11591 2004-03-25  Martin Baulig  <martin@ximian.com>
11592
11593         * loader.h (MonoMethodInflated): New typedef.
11594
11595         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11596         `generic_param_count' consume just 30 bits, added `is_inflated'
11597         and `has_type_parameters' flags (one bit each).
11598
11599         * class.c (mono_class_inflate_generic_method): Create a
11600         MonoMethodInflated instead of a MonoMethodNormal and set
11601         `is_inflated' in the method signature.
11602
11603         * class.h (MonoGenericMethod): Removed `generic_method'.
11604
11605 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11606
11607         * image.c: Make sure the name of a MonoImage is always an absolute path.
11608           This fixes bug #54415.
11609
11610 2004-03-24  Martin Baulig  <martin@ximian.com>
11611
11612         * class.c (mono_class_setup_vtable): If we're a generic instance,
11613         use our generic type's vtable size.
11614
11615 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11616
11617         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11618         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11619         problems.
11620
11621 2004-03-23  Martin Baulig  <martin@ximian.com>
11622
11623         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11624         `MonoEvent *events'.
11625
11626         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11627         (typebuilder_icalls): Added "get_event_info"; calls
11628         mono_reflection_event_builder_get_event_info(). 
11629
11630         * reflection.c (mono_reflection_generic_inst_initialize): Added
11631         `MonoArray *events'.
11632         (mono_reflection_event_builder_get_event_info): New function.
11633
11634 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11635
11636         * object.h: add mono_type_initialization_init
11637
11638         * object.c (mono_runtime_class_init): 
11639         implement class constructor synchronization rules
11640         to cope with threading issues.  
11641         add mono_type_initialization_init
11642
11643         * appdomain.c (mono_runtime_init): call 
11644         mono_type_initialization_init
11645
11646         * class.h: removing initializing field from MonoVTable
11647
11648 2004-03-23  Martin Baulig  <martin@ximian.com>
11649
11650         * class.c (my_mono_class_from_generic_parameter): Use
11651         `param->name' if it's not NULL. 
11652
11653 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11654
11655         * class.c: do not insert non-virtual methods in the vtable.
11656         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11657         that means the method is non-virtual. This never would have
11658         happened before.
11659
11660 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11661
11662         * profiler.c: Added lock for accessing coverage_hash.
11663
11664 2004-03-22  Martin Baulig  <martin@ximian.com>
11665
11666         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11667         `method->method->signature->generic_param_count != 0' to make it
11668         work for interface methods.
11669
11670 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11671
11672         * process.c: quote the string passed to the shell using g_shell_quote.
11673
11674 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11675
11676         * threads.c:
11677         (mono_threads_manage): don't remove the finalizer thread and self
11678         from the threads hash table so that mono_thread_manage can be called
11679         more than once.
11680
11681 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11682
11683         * process.c: quote the arguments when UseShellExecute is true. Fixes
11684         bug #55790.
11685
11686 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11687
11688         * threads.c: set mono_thread_detach as a cleanup routine for every
11689         thread. This way it's always executed upon thread termination, either
11690         aborted or finished normally. No more xsp hangs!
11691
11692 2004-03-17  Martin Baulig  <martin@ximian.com>
11693
11694         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11695         `int count_nested' and a `MonoType **nested'.
11696
11697         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11698         most of the functionality into a new static
11699         do_mono_reflection_bind_generic_parameters() and don't take a
11700         `MonoType *nested_in' argument any more.  Don't compute nested
11701         types here.
11702         (mono_reflection_generic_inst_get_nested_types): New public method
11703         to get nested types.
11704
11705         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11706         we're a nested class.
11707
11708         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11709         mono_reflection_generic_inst_get_nested_types() to compute the
11710         nested types.
11711
11712 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11713
11714         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11715         descriptive error message under windows.
11716         
11717 2004-03-17  Martin Baulig  <martin@ximian.com>
11718
11719         * class.c (dup_type): Added `const MonoType *original' argument;
11720         copy the attrs from the original type.
11721
11722 2004-03-17  Martin Baulig  <martin@ximian.com>
11723
11724         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11725         `m->generic_inst_cache' here.
11726
11727 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11728
11729         * exception.h exception.c: Add stack_overflow_exception.
11730
11731 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11732
11733         * threadpool.c:
11734         (overlapped_callback): call SetEvent *after* invoking the callback.
11735         No need to call CloseHandle.
11736
11737 2004-03-16  Martin Baulig  <martin@ximian.com>
11738
11739         * reflection.c (mono_image_get_fieldref_token): Take a
11740         `MonoReflectionField *' instead of a `MonoClassField *' and a
11741         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11742
11743 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11744
11745         * appdomain.c: don't add the culture to the filename we're looking for
11746         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11747
11748 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11749
11750         * locales.c: don't ignore symbols when doing case insensitive compares.
11751         Thanks Dick! Fixes bug #54046.
11752
11753         * threads.c: surround 'threads' usage with enter/leave in
11754         mono_thread_manage.
11755
11756 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11757
11758         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11759         implicitly marshalled as [Out]. Fixes #55450.
11760
11761         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11762         an exception.
11763
11764 2004-03-16  Martin Baulig  <martin@ximian.com>
11765
11766         * class.c (mono_class_from_generic_parameter): Use the actual
11767         parameter name. 
11768
11769 2004-03-16  Martin Baulig  <martin@ximian.com>
11770
11771         * reflection.c (type_get_signature_size): New static function.
11772         Compues the size of the type in a method signature.
11773         (method_get_signature_size): New static function; calls
11774         type_get_signature_size() to compute the actual size of the
11775         method's signature.
11776         (method_encode_signature): Use method_get_signature_size() to get
11777         the signature's size rather than using `nparams * 10'.
11778
11779 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11780
11781         * file-io.h: define here WapiOverlapped on windows. I don't want the
11782         regular OVERLAPPED one.
11783
11784         * file-io.c:
11785         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11786         Disabling AIO on windows.
11787
11788 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11789
11790         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11791         bug #55385.
11792
11793 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11794
11795         * appdomain.c: upgraded corlib version.
11796
11797         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11798         and BeginWrite. Allow opening files for asynchrnous operations.
11799
11800         * file-io.h: new struct that maps FileStreamAsyncResult.
11801         * icall.c: added new icalls.
11802         * process.[ch]: support setting child process environment variables
11803         and use the SHELL or COMSPEC when UseShellExecute is true.
11804
11805         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11806         callback for async. IO is here and also BindHandle.
11807
11808         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11809         from here.
11810
11811 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11812
11813         * reflection.c (create_custom_attr): Allow len == 0.
11814
11815         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11816         computation on big-endian machines.
11817
11818 2004-03-13  Martin Baulig  <martin@ximian.com>
11819
11820         * class.h (MonoGenericInst): Added `int count_ifaces'.
11821
11822         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11823         `ginst->count_ifaces' instead `klass->interface_count' since we
11824         may get called before the vtable is created.
11825
11826         * loader.c (mono_method_get_param_names): If we're a generic
11827         instance, return and don't initialize the class.
11828
11829         * reflection.c (mono_reflection_setup_generic_class): Don't call
11830         ensure_runtime_vtable().
11831         (mono_reflection_bind_generic_parameters): Set
11832         `ginst->count_ifaces'.
11833
11834 2004-03-11  Jackson Harper <jackson@ximian.com>
11835
11836         * icall.c:
11837         * unicode.c:
11838         * unicode.h: Remove unused System.Char icalls.
11839         
11840 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11841
11842         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11843         code when we P/Invoke the first library in Windows.Forms, instead
11844         of when we first open the assembly.
11845
11846         * assembly.c: Drop the lookup from here.
11847
11848 2004-03-10  Martin Baulig  <martin@ximian.com>
11849
11850         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11851         class for properties, fields and events.  Finally fixes #54945.
11852
11853 2004-03-10  Martin Baulig  <martin@ximian.com>
11854
11855         * metadata.c (mono_metadata_class_equal): New static function;
11856         checks whether two generic instances or two generic parameters are
11857         equal.
11858         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11859         compare classes.        
11860
11861 2004-03-10  Martin Baulig  <martin@ximian.com>
11862
11863         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11864
11865         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11866         argument and write it into the `reflection_info' field.
11867
11868         * icall.c
11869         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11870         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11871
11872 2004-03-09  Jackson Harper  <jackson@ximian.com>
11873
11874         * char-conversions.h: use 8 bits for numeric data its all we need
11875         * icall.c: numeric data is only 8 bits now.
11876
11877 2004-03-09  Martin Baulig  <martin@ximian.com>
11878
11879         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11880
11881         * class.c (init_properties, init_events): Initialize the new
11882         `parent' field.
11883
11884         * reflection.c (typebuilder_setup_properties): Likewise.
11885         (typebuilder_setup_events): Likewise.
11886
11887         * reflection.h (MonoEventInfo): Replaced `parent with
11888         `declaring_type' and `reflected_type'.
11889
11890         * icall.c (ves_icall_get_property_info): Distinguish between
11891         declaring and reflected type.
11892         (ves_icall_get_event_info): Likewise.
11893
11894 2004-03-09  Martin Baulig  <martin@ximian.com>
11895
11896         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11897         (ves_icall_Type_GetField): Correctly set field->klass.
11898
11899 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11900
11901         * loader.h: Fix warning.
11902
11903 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11904
11905         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11906         library routine if present.  Notice that it will still continue
11907         executing even if its missing, for those working on the Gtk#
11908         edition of Windows.Forms.
11909
11910         * assembly.c (do_mono_assembly_open): If loading the
11911         System.Windows.Forms call mono_loader_wini_init.
11912
11913 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11914
11915         * class.h: Added MonoRemoteClass struct.
11916         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11917         function for MonoStrings.
11918         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11919         Added internal call for getting the proxy type.
11920         * marshal.c: Get the type of transparent proxies from its remote_class.
11921         Added methods that generate the IL for type checks and casts:
11922         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11923         mono_marshal_get_proxy_cancast.
11924         * marshal.h: Declaration of the previous new methods.
11925         * object.c: Added new moethods for creating and updating MonoRemoteClass
11926         instances: mono_remote_class, mono_upgrade_remote_class, 
11927         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11928         * verify.c: FIx transparent_proxy_fields layout.
11929         * appdomain.c: Bump corlib version.
11930
11931 2004-03-04  Jackson Harper  <jackson@ximian.com>
11932
11933         * icall.c: Add icall to access char conversion tables.
11934         * char-conversions.h: Character conversion tables.
11935         * Makefile.am: Add char-conversions.h private header file.
11936         
11937 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11938
11939         * appdomain.c (unload_thread_main): Increase unloading timeout to
11940         10 sec as a temporary workaround for Nant problems.
11941
11942 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11943
11944         * gc.c: Add checks for GC_enable and GC_disable.
11945
11946         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11947         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11948         (bug #54988).
11949         
11950 2004-02-27  Martin Baulig  <martin@ximian.com>
11951
11952         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11953         `MonoReflectionType *' instead of a `MonoType *'.
11954
11955 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11956
11957         * gc.c (run_finalize): Avoid finalizing the object representing the
11958         finalizer thread.
11959         (finalizer_thread): Fix warning.
11960
11961 2004-02-25  Martin Baulig  <martin@ximian.com>
11962
11963         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11964         argument for nested types.
11965         (mono_class_create_generic): Added support for nested generictypes.
11966
11967         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11968         `GList *nested'.
11969
11970         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11971
11972         * reflection.c (method_encode_signature): Increase the minimum
11973         value of `size' from 10 to 11.
11974         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11975         and `MonoType **types' arguments instead of the `MonoArray
11976         *types'; added `MonoType *nested_in'.  Recursively instantiate
11977         nested classes. 
11978
11979 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11980
11981         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11982         stack_overflow_ex members which are used by exception handling.
11983
11984         * appdomain.c (mono_runtime_init): Initialize the new members.
11985
11986         * gc.c (mono_gc_enable): New helper function.
11987         * gc.c (mono_gc_disable): New helper function.
11988
11989 2004-02-23  Martin Baulig  <martin@ximian.com>
11990
11991         * icall.c: I must have been really stupid - make it actually work
11992         this time ;-)
11993
11994 2004-02-23  Martin Baulig  <martin@ximian.com>
11995
11996         * loader.c (method_from_memberref): Only inflate the method if
11997         it's in another klass.
11998
11999 2004-02-23  Martin Baulig  <martin@ximian.com>
12000
12001         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12002         (mono_class_init): If we're a generic instance and an interface,
12003         compute `class->interface_id'; also create `class->interfaces'
12004         here and inflate them.
12005
12006         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12007         `ginst->is_open'.
12008         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12009
12010         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12011
12012 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
12013
12014         * reflection.c (method_encode_code): Improved the error message
12015         generated by the exception.
12016
12017 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12018
12019         * icall.c: Martin did not do what he said in the ChangeLog for
12020         2004-02-18, but put back the changes for properties and events.
12021         Commenting those changes out again and adding comment to bug #54518.
12022         
12023         * process.c: removed warning.
12024
12025 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
12026
12027         * marshal.c (emit_struct_conv): Print an error message instead of
12028         asserting when a type does not have the StructLayout attribute.
12029
12030 2004-02-20  Martin Baulig  <martin@ximian.com>
12031
12032         * reflection.c (mono_type_get_object): Also use the cache for
12033         generic instances.
12034         (mono_reflection_bind_generic_parameters): Always compute
12035         `ginst->ifaces'.        
12036
12037 2004-02-20  Martin Baulig  <martin@ximian.com>
12038
12039         * class.h (MonoGenericMethod): Removed `klass'.
12040
12041         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12042         *klass' argument.
12043
12044 2004-02-20  Martin Baulig  <martin@ximian.com>
12045
12046         * reflection.c (method_encode_methodspec): Actually use the
12047         uninflated signature for the memberref.
12048
12049 2004-02-20  Martin Baulig  <martin@ximian.com>
12050
12051         * class.h (MonoGenericMethod): Removed `declaring'.
12052
12053         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12054         is NULL, compute it here.
12055
12056 2004-02-20  Martin Baulig  <martin@ximian.com>
12057
12058         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12059
12060         * metadata.c (mono_metadata_generic_inst_hash): New method.
12061         (mono_metadata_generic_inst_equal): New method.
12062
12063         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12064         `klass->image->generic_inst_cache' cache to avoid creating
12065         duplicate MonoGenericInst's.
12066
12067         * class.c (mono_class_inflate_generic_type): Use the cache.
12068
12069 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12070
12071         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12072
12073 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12074
12075         * icall.c: added Socket.WSAIoctl icall.
12076
12077         * socket-io.[ch]: implemented
12078         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12079
12080 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12081
12082         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12083
12084 2004-02-18  Urs C Muff  <umuff@quark.com>
12085
12086         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12087         this work on PPC and other big-endian architectures.
12088
12089         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12090         fields with an underscore to make sure they're only accessed by
12091         the read32() macro.
12092
12093 2004-02-18  Martin Baulig  <martin@ximian.com>
12094
12095         * icall.c: Put the klass->refclass changes back for methods and
12096         fields, but not for properties and events.  We're currently not
12097         distinguishing between DeclaringType and ReflectedType for
12098         properties and events, that's what caused the regressions.
12099
12100 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12101
12102         * object.c:
12103         (mono_async_result_new): the handle can be NULL.
12104
12105         * threadpool.c: Use an event instead of a semaphore, don't initialize
12106         it until needed. This saves quite a few semaphores from being created
12107         when using the threadpool.
12108
12109 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12110
12111         * object.c (mono_string_is_interned_lookup): Fix interning of long
12112         strings. Fixes #54473.
12113
12114         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12115
12116         * icall.c: Revert the klass->refclass changes since they introduce
12117         regressions (bug #54518).
12118
12119 2004-02-18  Martin Baulig  <martin@ximian.com>
12120
12121         * class.c (mono_class_init): If we're a generic instance and don't
12122         come from a TypeBuilder, inflate our members here.
12123         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12124         (mono_class_create_generic): New public method.
12125         (mono_class_initialize_generic): Removed.
12126         (get_instantiation_name): Renamed to
12127         _mono_class_get_instantiation_name() and made it public.
12128
12129 2004-02-18  Martin Baulig  <martin@ximian.com>
12130
12131         * class.c (mono_class_inflate_generic_type): Clear the new
12132         instance's `nginst->klass' when inflating a generic instance.
12133         (mono_class_is_subclass_of): Added (basic) support for generic
12134         instances.
12135
12136 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12137
12138         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12139         MonoMempool to hold compiled native code.
12140
12141 2004-02-17  Martin Baulig  <martin@ximian.com>
12142
12143         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12144         `properties'.
12145
12146         * reflection.c (mono_reflection_generic_inst_initialize): Added
12147         `MonoArray *properties' argument.
12148
12149         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12150
12151 2004-02-17  Martin Baulig  <martin@ximian.com>
12152
12153         * icall.c (ves_icall_Type_GetFields): Renamed to
12154         ves_icall_Type_GetFields_internal() and added a
12155         `MonoReflectionType *rtype' argument; pass it to
12156         mono_field_get_object() to set the field's "reflected" type.
12157         (ves_icall_Type_GetConstructors): Likewise.
12158         (ves_icall_Type_GetEvents): Likewise.
12159         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12160         argument; pass it to mono_method_get_object() to set the method's
12161         "reflected" type.       
12162
12163 2004-02-17  Martin Baulig  <martin@ximian.com>
12164
12165         * class.h (MonoDynamicGenericInst): New type.
12166         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12167
12168         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12169         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12170         (ves_icall_MonoGenericInst_GetFields): New interncall.
12171
12172         * class.c (mono_class_from_generic): Don't call
12173         mono_class_initialize_generic() if this is a dynamic instance;
12174         ie. it's being created from a TypeBuilder.
12175         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12176         `class->byval_arg.type'.
12177
12178         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12179         to `inflate_method' and made static.
12180         (mono_reflection_inflate_field): Removed.
12181         (mono_reflection_generic_inst_initialize): New public method.
12182
12183         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12184         `ctors' and `fields'; added `initialized'.
12185
12186 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12187
12188         * debug-helpers.c (mono_method_full_name): Fix output for empty
12189         namespaces.
12190
12191 2004-02-12  Martin Baulig  <martin@ximian.com>
12192
12193         * class.h (MonoClassField): Added `MonoType *generic_type'.
12194
12195         * reflection.c (mono_image_get_fieldref_token): Added support for
12196         instantiated generic types.
12197         (field_encode_inflated_field): Removed.
12198         (mono_image_get_inflated_field_token): Removed.
12199         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12200
12201         * reflection.h (MonoReflectionInflatedField): Removed.
12202
12203 2004-02-12  Martin Baulig  <martin@ximian.com>
12204
12205         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12206         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12207
12208         * reflection.c (mono_image_get_methodspec_token): Take a
12209         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12210         (mono_image_create_token): Check whether we have a
12211         `method->signature->gen_method' and call
12212         mono_image_get_methodspec_token() if appropriate.
12213         (inflated_method_get_object): Removed.
12214         (mono_reflection_bind_generic_method_parameters): Return a
12215         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12216         (mono_reflection_inflate_method_or_ctor): Likewise.
12217
12218         * reflection.h (MonoReflectionInflatedMethod): Removed.
12219
12220 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12221
12222         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12223         for custom valuetype marshalling.
12224
12225         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12226
12227 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12228
12229         * icall.c: fixed WSAGetLastError_internal name.
12230
12231 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12232
12233         * threads.c (mono_thread_attach): Allow this to be called multiple
12234         times for a thread.
12235         
12236         * threads.c (build_wait_tids): Do not wait for ourselves.
12237
12238         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12239         appdomain list is empty.
12240
12241         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12242         memory returned by mono_string_builder_to_utf16, since it points into
12243         managed memory. Thanks to Bernie Solomon for noticing this.
12244
12245         * icall.c: Add AppDomainSetup icalls.
12246
12247         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12248
12249         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12250         types.
12251
12252         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12253         custom attributes to the method_aux struct. Also fix array indexes etc.
12254
12255         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12256         
12257 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12258
12259         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12260         (both static and runtime) and reduce startup time.
12261
12262 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12263
12264         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12265         AsAny marshalling conversion instead of crashing.
12266
12267         * marshal.c: Fix warnings.
12268
12269 2004-02-09  Martin Baulig  <martin@ximian.com>
12270
12271         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12272
12273         * reflection.h (MonoReflectionInflatedMethod): Removed the
12274         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12275
12276         * reflection.c (method_encode_methodspec): Removed the `method'
12277         argument; we get it from `gmethod->declaring'.
12278         (inflated_method_get_object): Removed the `declaring' argument.
12279
12280 2004-02-09  Martin Baulig  <martin@ximian.com>
12281
12282         * class.h (MonoGenericMethod): New type.
12283         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12284         `generic_method'.
12285
12286         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12287         a `MonoGenericMethod *gen_method' one.
12288
12289         * class.c (mono_class_inflate_generic_type): Take an additional
12290         `MonoGenericMethod * argument.  This is only non-NULL if we're
12291         inflating types for a generic method.   
12292         (mono_class_inflate_generic_signature): Renamed to
12293         inflate_generic_signature() and made static; take a
12294         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12295         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12296         instead of a `MonoGenericInst *' one.
12297         (mono_class_inflate_generic_method): Likewise.
12298
12299         * reflection.c (encode_generic_method_sig): Take a
12300         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12301         (method_encode_methodspec): Likewise.
12302         (inflated_method_get_object): Likewise. 
12303
12304         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12305         field with a `MonoGenericMethod *gmethod' one.  
12306
12307 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12308
12309         * class.h (mono_class_has_parent): add parens to expansion
12310         so you can ! this.
12311
12312 2004-02-08  Martin Baulig  <martin@ximian.com>
12313
12314         * image.h (MonoImage): Removed `generics_cache'.
12315
12316         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12317         instead of a `MonoType *' argument; removed the `inflate_methods'
12318         argument.  Don't inflate methods here.
12319
12320         * loader.c (find_method): If it's a generic instance, call
12321         mono_class_init() on the `sclass->generic_inst->generic_type'.
12322
12323         * metadata.c (mono_type_size): Make this work on uninitialized
12324         generic instances; call it on the `ginst->generic_type's class.
12325
12326         * reflection.c (mono_reflection_bind_generic_parameters): Call
12327         mono_class_from_generic() to create the `ginst->klass'.
12328
12329 2004-02-08  Martin Baulig  <martin@ximian.com>
12330
12331         * class.h (MonoClass): Changed type of `generic_inst' from
12332         `MonoType *' to `MonoGenericInst *'.
12333
12334 2004-02-08  Martin Baulig  <martin@ximian.com>
12335
12336         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12337         mono_type_get_object(), this is now creating a `MonoGenericInst'
12338         for MONO_TYPE_GENERICINST.
12339         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12340         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12341
12342         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12343         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12344         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12345         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12346         and reflected type.
12347
12348         * reflection.h (MonoReflectionInflatedMethod): Removed
12349         `declaring_type' and `reflected_type'.
12350
12351 2004-02-08  Martin Baulig  <martin@ximian.com>
12352
12353         * class.h (MonoGenericInst): Added `MonoType *parent' and
12354         `MonoType **ifaces'.
12355
12356         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12357         `parent' and `interfaces'.
12358
12359         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12360         `MonoType *' argument and return a `MonoType *'.
12361
12362         * icall.c
12363         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12364         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12365
12366 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12367
12368         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12369         valuetype marshalling.
12370
12371 2004-02-06  Martin Baulig  <martin@ximian.com>
12372
12373         * class.c
12374         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12375         (my_mono_class_from_generic_parameter): Likewise.
12376
12377 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12378
12379         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12380         contents of the symbol files lazily.
12381
12382         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12383
12384         * threads.h threads.c icall.c: New icalls for getting and setting the
12385         threads name.
12386
12387 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12388
12389         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12390         Raise an exception when the domain is not found.
12391
12392 2004-02-03  Martin Baulig  <martin@ximian.com>
12393
12394         * reflection.c (mono_image_get_methodspec_token): Use the
12395         uninflated signature; fixes gen-33.
12396
12397 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12398
12399         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12400         the finalizer code can use thread functionality.
12401
12402         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12403         the finalizer thread.
12404
12405         * threads.c: Make some functions more robust.
12406
12407         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12408
12409         * metadata.h: Add new marshalling conventions.
12410
12411         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12412         stringbuilder marshalling. Fixes #53700.
12413
12414         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12415
12416         * reflection.c (mono_image_get_type_info): Save declarative security
12417         info.
12418
12419         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12420         unmanaged fields as well.
12421
12422         * appdomain.c: Bump corlib version.
12423
12424 2004-02-01  Martin Baulig  <martin@ximian.com>
12425
12426         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12427         method type arguments.  
12428
12429 2004-01-30  Duncan Mak  <duncan@ximian.com>
12430
12431         * marshal.h: Add prototype for
12432         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12433         and
12434         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12435         fix the build.
12436
12437 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12438
12439         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12440         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12441
12442 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12443
12444         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12445         custom marshalling of valuetypes.
12446
12447         * marshal.c: Fix some warnings.
12448
12449 2004-01-29  Martin Baulig  <martin@ximian.com>
12450
12451         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12452         for generic method parameters.
12453
12454         * reflection.c (method_encode_methodspec): Write the uninflated
12455         signature into the methodspec table.
12456         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12457         is always the uninflated method.
12458         (reflection_methodbuilder_to_mono_method): Copy the generic
12459         parameters from the MethodBuilder into `header->gen_params'.
12460
12461 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12462
12463         * class.c (mono_class_from_generic_parameter): Fix warning.
12464
12465 2004-01-27  Martin Baulig  <martin@ximian.com>
12466
12467         * class.c (mono_class_from_generic_parameter): Don't create
12468         `klass->methods' here.  
12469
12470 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12471
12472         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12473         extension since it does not work with libraries named lib<FOO>.dll.so.
12474
12475 2004-01-25  Martin Baulig  <martin@ximian.com>
12476
12477         * class.c (mono_class_inflate_generic_type): Added support for
12478         MONO_TYPE_GENERICINST.
12479
12480         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12481         inflate methods on open constructed types.      
12482
12483 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12484
12485         * object.c: fire ProcessExit event in the root AppDomain after running
12486         Main. Fixes bug #53299.
12487
12488 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12489
12490         * socket-io.c: include the new socket-wrappers.h header.
12491         Use the wrappers instead of the unix socket functions to make the code
12492         more clear.
12493
12494 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12495
12496         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12497
12498         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12499         Fixes #22532.
12500
12501 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12502
12503         * reflection.c (mono_image_create_pefile): Handle the case when the
12504         entry point is not a MethodBuilder.
12505
12506         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12507         field to ReflectionMethod since it is not allways a builder.
12508
12509         * reflection.c (type_get_fully_qualified_name): New helper function to
12510         return the fully qualified name of a type.
12511
12512         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12513         type name for custom marshallers.
12514
12515         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12516
12517         * class.c (mono_class_setup_vtable): If a parent class already 
12518         implements an interface, use the implementing methods from that class.
12519         Fixes #53148.
12520
12521 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12522
12523         * threadpool.c: just return instead of ExitThread to allow for thread
12524         clean up earlier.
12525
12526 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12527
12528         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12529         when closing resource modules.
12530
12531         * reflection.c (mono_image_create_pefile): Handle the case when the
12532         entry point is not a MethodBuilder.
12533
12534         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12535         field to ReflectionMethod since it is not allways a builder.
12536
12537 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12538
12539         * marshal.c (mono_marshal_get_managed_wrapper): 
12540         mono_marshal_alloc takes native int so CONV_I
12541         the arg for 64bits.
12542
12543 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12544
12545         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12546         tokens in the cattr table. Fixes #53108.
12547
12548 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12549
12550         * loader.c: don't trim ".dll" before looking up in the config file.
12551         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12552
12553 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12554
12555         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12556         Return the module which contains the resource as well.
12557         (ves_icall_System_Reflection_Module_Close): New icall.
12558
12559         * appdomain.c: Bump corlib version number.
12560
12561         * image.c (mono_image_addref): New public function.
12562
12563         * assembly.c: Call mono_image_addref.
12564
12565         * reflection.c (mono_module_get_object): Increase reference count of 
12566         the image.
12567
12568         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12569         Fixes #22532.
12570
12571         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12572         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12573         proper exceptions on DllImport problems.
12574
12575 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12576
12577         * class.c, metadata.c: eliminate CSIZE macro.
12578
12579 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12580
12581         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12582         * object.h: Added async_callback field in MonoAsyncResult.
12583         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12584         * verify.c: Added async_callback in MonoAsyncResult layout.
12585
12586 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12587
12588         * reflection.c (mono_reflection_get_custom_attrs): Add support
12589         for Modules.
12590
12591 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12592
12593         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12594         marshalling.
12595         (mono_marshal_method_from_wrapper): Add null pointer check.
12596
12597 2004-01-16  Martin Baulig  <martin@ximian.com>
12598
12599         * debug-mono-symfile.h: Set version number to 36 and reflect
12600         latest symbol writer changes.
12601
12602 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12603
12604         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12605         multi-dimensional arrays.
12606         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12607         (mono_class_from_mono_type): Use bounded_array_class_get.
12608         
12609         * class.c (mono_bounded_array_class_get): New function which takes
12610         a 'bounded' bool argument to distinguish vectors from one dimensional
12611         arrays.
12612
12613         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12614         bounded_array_class_get if the array has bounds.
12615
12616         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12617         Search modules loaded using AssemblyBuilder:AddModule as well.
12618
12619 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12620
12621         * appdomain.c: increased corlib version.
12622         * filewatcher.c: removed g_print.
12623         * icall.c:
12624         (get_property_info): only allocate what is actually requested.
12625         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12626
12627 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12628
12629         * Makefile.am: added filewatcher.[ch]
12630         * filewatcher.[ch]: FileSystemWatcher runtime support.
12631         * icall.c: added new FSW icalls.
12632
12633 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12634
12635         * string-icalls.c: fix stringbuilder regression as suggested by
12636         Iain McCoy <iain@mccoy.id.au>.
12637
12638 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12639
12640         * process.c (process_read_stringtable_block): Recognize '007f' as
12641         a language neutral stringtable block.
12642
12643 2004-01-12  Patrik Torstensson
12644
12645         * object.h (MonoStringBuilder) : Changed layout to support our
12646         new stringbuilder class.
12647         * marshal.c: Change marshalling to support the new layout of 
12648         string builder.
12649         * appdomain.c: increased version number because new layout of
12650         string builder.
12651
12652 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12653
12654         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12655         assembly name as an string instead of an AssemblyName, since it is
12656         easier to extract info from it.
12657
12658         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12659         the culture subdirectories too. Fixes #52231.
12660
12661 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12662
12663         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12664         It takes 2 new parameters with an optional name for the method to look
12665         for and case ignoring info.
12666
12667         * threadpool.c: removed unused variable.
12668
12669 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12670
12671         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12672         It takes 2 new parameters with an optional name for the property to look
12673         for and case ignoring info.
12674         Fixes bug #52753.
12675
12676 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12677
12678         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12679         Fix #52451.
12680
12681 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12682
12683         * appdomain.c:
12684         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12685         Fixes bug #52630.
12686
12687 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12688
12689         * reflection.c: Add support for more than one unmanaged resource.
12690
12691         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12692         in field->def_value, as done in all other cases.
12693
12694         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12695         TypeBuilders.
12696
12697         * reflection.c (mono_reflection_create_runtime_class): Remove 
12698         errorneous assignment to klass->element_class, since it is already
12699         done in mono_reflection_setup_internal_class.
12700
12701 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12702
12703         * gc.c: added missing LeaveCriticalSection.
12704         * icall.c: indented a couple of lines.
12705         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12706         if we call EndInvoke inside a callback. Fixes bug #52601.
12707
12708 2004-01-07  Martin Baulig  <martin@ximian.com>
12709
12710         * mono-debug-debugger.h
12711         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12712
12713 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12714
12715         * appdomain.c: Use messages in NotImplementedException.
12716
12717         * exception.c (mono_get_exception_not_implemented): Now this takes
12718         a message argument.
12719
12720         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12721         exception instead of g_asserting an aborting when something is not
12722         implemented.
12723
12724         Add some inline docs.
12725
12726 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12727
12728         * reflection.h: Update after changes to object layout.
12729
12730         * reflection.c: Implement saving of unmanaged aka win32 resources.
12731
12732         * appdomain.c: Bump version number.
12733
12734         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12735         Handle missing domains gracefully.
12736
12737 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12738
12739         * file-io.c : On Windows, there are much more invalid_path_chars.
12740
12741 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12742
12743         * class.h, object.c: prepare for GetType () speedup.
12744
12745 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12746
12747         * profiler.c: workaround for --profile null reference exception on
12748           cygwin. Patch by Patrik Torstensson.
12749
12750 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12751
12752         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12753         make work for unaligned access.
12754
12755 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12756
12757         * class.c: small cleanup (class->fields [i] -> field).
12758         * image.c: check address of metadata is valid.
12759
12760 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12761
12762         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12763         search the list of loaded assemblies.
12764
12765         * reflection.c (mono_reflection_type_from_name): Use 
12766         mono_assembly_loaded instead of mono_image_loaded.
12767
12768         * reflection.c: Fix warnings.
12769
12770 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12771
12772         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12773         is dynamic. This is needed since an assembly can contain both dynamic and
12774         non-dynamic images.
12775
12776         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12777         assembly->dynamic.
12778
12779         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12780
12781         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12782         to store modules loaded using AddModule.
12783
12784         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12785         on Modules.
12786
12787         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12788
12789         * reflection.c (mono_image_fill_export_table_from_module): New function to
12790         fill out the EXPORTEDTYPES table from a module.
12791
12792         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12793         into a separate function. Also handle loaded non-dynamic modules.
12794
12795         * reflection.c (mono_image_basic_init): Fix memory allocation.
12796
12797         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12798
12799         * assembly.c (mono_assembly_load_references): Make this public.
12800
12801 2003-12-19  Martin Baulig  <martin@ximian.com>
12802
12803         * class.c (mono_class_initialize_generic): Made this static, take
12804         a `MonoGenericInst *' instead of a `MonoClass *'.
12805         (mono_class_from_generic): Call mono_class_initialize_generic()
12806         unless we're already initialized or being called from
12807         do_mono_metadata_parse_generic_inst().
12808
12809         * class.h (MonoGenericInst): Added `initialized' and
12810         `init_pending' flags.
12811
12812         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12813         `mono_class_init (gklass)' or mono_class_initialize_generic()
12814         here; set `generic_inst->init_pending' while parsing the
12815         `type_argv'.
12816
12817 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12818
12819         * locales.c: include string.h for memxxx prototypes
12820
12821 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12822
12823         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12824         constructor when accessing literal fields.
12825
12826 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12827
12828         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12829
12830         * reflection.c (assembly_add_resource_manifest): New function to fill
12831         the MANIFESTRESOURCE table.
12832
12833         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12834
12835         * reflection.h: Update to changes in class layout.
12836
12837         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12838         Reenable call to mono_runtime_is_shutting_down ().
12839
12840         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12841         determine if the runtime is shutting down.
12842
12843 2003-12-16  Jackson Harper <jackson@ximian.com>
12844
12845         * icall.c: comment out call to mono_runtime_is_shutting_down to
12846         fix build.
12847         
12848 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12849
12850         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12851         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12852
12853 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12854
12855         * reflection.c: move definition of swap_with_size
12856         to before its first call
12857
12858 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12859
12860         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12861
12862         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12863         icall.
12864
12865         * object.c: Fix warnings.
12866
12867         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12868         members if FlattenHierarchy is set.
12869
12870         * reflection.c (mono_image_add_decl_security): New function to emit
12871         declarative security.
12872
12873         * reflection.h reflection.c: Add support for declarative security.
12874
12875         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12876         
12877 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12878
12879         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12880         
12881         * appdomain.c verify.c: Moved corlib version checking into its own
12882         function in appdomain.c since it needs to create vtables etc.
12883
12884 2003-12-13  Patrik Torstensson <p@rxc.se>
12885
12886         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12887         instead of unwrapped server.
12888
12889 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12890
12891         * verify.c (check_corlib): Fix field index.
12892
12893 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12894
12895         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12896         GetGacPath icall.
12897
12898 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12899
12900         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12901         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12902         cope with sizeof(size_t) != sizeof(guint32).
12903
12904 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12905
12906         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12907         in case of failure.
12908
12909 2003-12-10  Mark Crichton <crichton@gimp.org>
12910
12911         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12912         in managed code.
12913
12914         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12915
12916 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12917
12918         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12919         marked as deleted.
12920
12921 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12922
12923         * verify.c (check_corlib): Handle the case when the version field is 
12924         initialized by a static constructor.
12925
12926 2003-12-08  Patrik Torstensson  <p@rxc.se>
12927
12928     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12929
12930 2003-12-08  Martin Baulig  <martin@ximian.com>
12931
12932         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12933         a MonoReflectionGenericParameter, also take the parameter index
12934         and name as arguments.
12935         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12936         (ves_icall_MonoGenericParam_initialize): New interncall.
12937         (ves_icall_Type_make_byref_type): New interncall.
12938
12939         * reflection.h (MonoReflectionGenericParam): Derive from
12940         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12941         `index' fields.
12942
12943         * reflection.c (mono_reflection_define_generic_parameter): Create
12944         and return a new MonoReflectionGenericParam; don't initialize the
12945         constraints here.
12946         (mono_reflection_initialize_generic_parameter): New public method;
12947         initializes the constraints and creates the `param->pklass'.
12948
12949 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12950
12951         * reflection.h reflection.c: Use the new fields 'num_types', 
12952         'num_fields' and 'num_methods' to track the number of types etc.
12953
12954         * verify.c (check_corlib): Check corlib version number.
12955
12956 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12957
12958         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12959         function works on all methods.
12960
12961 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12962
12963         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12964         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12965         the custom_type_info flag of the transparent proxy.
12966         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12967         objects that supports IRemotingTypeInfo.
12968         * object.h: Added custom_type_info field in transparent proxy.
12969
12970 2003-12-06  Martin Baulig  <martin@ximian.com>
12971
12972         * class.c (mono_class_create_from_generic): Removed.
12973         (mono_class_from_generic): Check `ginst->klass' before doing
12974         anything else.  This is important to fully support "recursive"
12975         generic types.
12976
12977         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12978         empty `generic_inst->klass' before doing anything else.
12979
12980 2003-12-06  Dick Porter  <dick@ximian.com>
12981
12982         * verify.c: 
12983         * object.h:
12984         * icall.c:
12985         * locales.c: Use C structs to access class fields.  Don't do a
12986         conversion between MonoString and UChar because both are
12987         platform-endian UTF-16.  Compare now takes startindex and count
12988         parameters.  Add a char overload for IndexOf.  Speed up the
12989         invariant string IndexOf.
12990
12991 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12992
12993         * Makefile.am (monosn_LDADD): Fix parallel build.
12994
12995 2003-12-04  Martin Baulig  <martin@ximian.com>
12996
12997         * icall.c
12998         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12999         (ves_icall_Type_make_array_type): New interncall.       
13000
13001 2003-12-04  Martin Baulig  <martin@ximian.com>
13002
13003         * locales.c: also change it in the !HAVE_ICU case.
13004
13005 2003-12-04  Dick Porter  <dick@ximian.com>
13006
13007         * icall.c:
13008         * locales.c: construct_compareinfo is now in CompareInfo, not
13009         CultureInfo.
13010
13011 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
13012
13013         * image.c (mono_image_load_file_for_image): Cache loaded images in the
13014         image->files array.
13015
13016         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13017         table as well.
13018
13019         * assembly.c (mono_assembly_load_references): Only load references
13020         once.
13021
13022         * class.c (mono_class_from_name): Avoid linear search of the 
13023         EXPORTEDTYPE table.
13024
13025         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13026
13027 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
13028
13029         * image.h (MonoImage): Add 'field_cache' field.
13030
13031         * loader.c (mono_field_from_token): Cache field lookups.
13032         
13033         * reflection.c (mono_module_get_object): Fix name property.
13034
13035         * icall.c (ves_icall_get_enum_info): Update after changes to 
13036         mono_metadata_get_constant_index ().
13037
13038         * icall.c: Get rid of get_type_info icall, use a separate icall for
13039         each type property to avoid needless memory allocations. Fixes #51514.
13040
13041         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13042         to avoid needless binary searches.
13043
13044         * class.c (class_compute_field_layout): Move the initialization of
13045         field->def_value to mono_class_vtable ().
13046
13047         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13048         non-corlib types.
13049
13050         * object.c (mono_object_allocate): Make it inline.
13051
13052         * object.c (mono_object_allocate_spec): Make it inline.
13053         
13054 2003-12-02  Dick Porter  <dick@ximian.com>
13055
13056         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13057         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13058
13059 2003-12-01  Dick Porter  <dick@ximian.com>
13060
13061         * threads.c: Fix signature and call in CreateMutex and
13062         CreateEvent.
13063
13064 2003-12-01  Dick Porter  <dick@ximian.com>
13065
13066         * icall.c: 
13067         * locales.c: Implement string compares and searching
13068
13069         * object.h: Add extra Thread field
13070
13071 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13072
13073         * reflection.c (fixup_method): Add support for MonoCMethod.
13074
13075 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13076
13077         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13078
13079         * reflection.c (assembly_name_to_aname): Allow extra characters in
13080         assembly names. Fixes #51468.
13081
13082 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13083
13084         * exception.c (mono_exception_from_name_domain): New helper function.
13085
13086         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13087         exception object in the correct domain.
13088
13089         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13090         formatting + make a copy a the input data.
13091
13092         * loader.c (mono_get_method_from_token): Methods which contain
13093         native code do not have entries in the ImplMap.
13094
13095         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13096         Thanks to Gonzalo for spotting this.
13097         
13098         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13099         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13100
13101         * assembly.h (mono_assembly_load_from): Split the second part of 
13102         assembly loading into a new public function.
13103
13104         * exception.h (mono_get_exception_bad_image_format): New function.
13105
13106 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13107
13108         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13109         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13110         
13111         * icall.c: Add new icall for creating dynamic methods.
13112
13113         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13114
13115         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13116
13117         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13118         create a dynamic method.
13119
13120         * reflection.c (resolve_object): New helper function.
13121
13122         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13123         which manipulate it so they can also work on dynamic methods.
13124
13125         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13126         creating the MonoReflectionMethodAux structure if it is not needed.
13127         
13128         * reflection.h verify.c: Update after changes to object layout.
13129
13130         * reflection.c (method_builder_encode_signature): Fix compilation on
13131         gcc 2.95.x.
13132
13133 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13134
13135         * appdomain.h: Added support for context static fields. Added static_data
13136           field to MonoAppContext and renamed thread_static_fields to a more
13137           generic special_static_fields in MonoAppDomain, since it can now contain
13138           context static fields.
13139         * domain.c: Updated hashtable name.
13140         * object.c: Replaced field_is_thread_static() for a more generic
13141           field_is_special_static() which also checks for context static attribute.
13142           In mono_class_vtable(), added support for static context fields.
13143         * threads.c: Changed methods that manage thread static fields to more
13144           generic methods so they can be reused both for thread and context static
13145           data.
13146         * threads.h: Declared some new methods.
13147
13148 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13149
13150         * reflection.h: Update after changes to the managed types.
13151
13152         * reflection.c (encode_custom_modifiers): New helper function.
13153
13154         * reflection.c (method_encode_signature): Emit custom modifiers.
13155
13156         * reflection.c (field_encode_signature): Emit custom modifiers.
13157
13158 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13159
13160         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13161
13162         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13163         implementation.
13164
13165         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13166         icall.
13167
13168         * object.c (mono_field_get_value_object): New function.
13169
13170         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13171         specific.
13172
13173 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13174
13175         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13176         return a preallocated out-of-memory exception instance.
13177
13178         * object.c (out_of_memory): Use the new function.
13179
13180         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13181         flag is before the custom modifiers. Fixes #49802.
13182
13183 2003-11-16  Martin Baulig  <martin@ximian.com>
13184
13185         * class.c (mono_class_is_open_constructed_type): Implemented the
13186         MONO_TYPE_GENERICINST case.
13187
13188 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13189
13190         * assembly.c (mono_assembly_fill_assembly_name): New function to
13191         fill out the MonoAssemblyName structure.
13192         (mono_assembly_open): Use the new function.
13193
13194         * icall.c (fill_reflection_assembly_name): New helper function.
13195
13196         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13197         new function.
13198
13199         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13200
13201 2003-11-15  Martin Baulig  <martin@ximian.com>
13202
13203         * class.c (mono_class_is_open_constructed_type): New public
13204         function; checks whether a type is an open constructed type,
13205         ie. whether it still contains type parameters.
13206         (mono_class_inflate_generic_type): If we're a type parameter and
13207         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13208         type.
13209
13210         * class.h (MonoGenericInst): Added `guint32 is_open'.
13211
13212         * loader.c (method_from_methodspec): Check whether we're an open
13213         or closed constructed type and set `ginst->is_open'.
13214
13215         * reflection.c (mono_reflection_bind_generic_parameters): Check
13216         whether we're an open or closed constructed type and set
13217         `ginst->is_open'.
13218         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13219         from open constructed types.
13220
13221 2003-11-15  Martin Baulig  <martin@ximian.com>
13222
13223         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13224         a generic instance (instead of a generic type declaration) with
13225         unbound generic parameters, bind them to our actual types.
13226
13227 2003-11-14  Martin Baulig  <martin@ximian.com>
13228
13229         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13230
13231         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13232         an interface type, populate `res->interfaces' with instantiated
13233         versions of all the interfaces we inherit.
13234
13235 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13236
13237         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13238         when MONO_PATH is set but doesn't contain the install dir.
13239
13240 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13241
13242         * icall.c:
13243         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13244         it's also implemented in base classes. Fixes bug #50927.
13245
13246 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13247
13248         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13249         if this method is called from a finalizer. Fixes #50913.
13250
13251 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13252
13253         * threads.c: Implement VolatileRead/VolatileWrite
13254
13255         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13256
13257 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13258
13259         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13260         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13261         2.95.3.
13262
13263         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13264         from Peter Ross (pro@missioncriticalit.com).
13265         
13266 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13267
13268         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13269
13270 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13271
13272         * assembly.c (mono_assembly_load_references): Disable check because it
13273         triggers on older corlibs which lots of people have.
13274
13275 2003-11-12  Jackson Harper  <jackson@ximian.com>
13276
13277         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13278         load corlib.dll if mscorlib.dll is not found.
13279         * assembly.h: Remove corlib name define.
13280         * class.c:
13281         * domain.c:
13282         * image.c: Change corlib name to mscorlib.
13283         
13284 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13285
13286         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13287
13288 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13289
13290         * appdomain.h: Added loader_optimization here to sync with the C#
13291         code, and add disallow_binding_redirects field.
13292
13293 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13294
13295         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13296
13297         * reflection.c (mono_image_build_metadata): Fix crash on modules
13298         with no types.
13299
13300         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13301
13302         * icall.c (ves_icall_get_method_info): Return callingConvention as
13303         well.
13304
13305         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13306         namespaces from the EXPORTEDTYPE table as well.
13307
13308         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13309         from all modules inside the assembly.
13310         
13311 2003-11-11  Martin Baulig  <martin@ximian.com>
13312
13313         * reflection.c (mono_reflection_bind_generic_parameters): Make
13314         this work for interfaces.
13315
13316 2003-11-11  Martin Baulig  <martin@ximian.com>
13317
13318         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13319
13320 2003-11-11  Martin Baulig  <martin@ximian.com>
13321
13322         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13323         "MonoInflatedMethod" and "MonoInflatedCtor".
13324
13325 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13326
13327         * reflection.c (resolution_scope_from_image): Use the assembly table
13328         from the manifest module, since other modules don't have it.
13329
13330         * debug-helpers.c (mono_type_full_name): New helper function.
13331
13332         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13333
13334         * image.c (mono_image_load_file_for_image): New public function which
13335         is a replacement for the load_file_for_image in class.c.
13336
13337         * assembly.c (mono_assembly_load_module): A wrapper for the function
13338         above which does assembly association and reference loading too.
13339
13340         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13341
13342 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13343
13344         * appdomain.c: not all of the attributes for the full assembly name
13345         are required and the order doesn't matter. Fixes bug #50787.
13346
13347 2003-11-10  Dick Porter  <dick@ximian.com>
13348
13349         * locales.c: Use platform-endian UTF16
13350
13351 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13352
13353         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13354         
13355 2003-11-10  Martin Baulig  <martin@ximian.com>
13356
13357         * metadata.c
13358         (mono_metadata_load_generic_params): Make this actually work.
13359
13360         * reflection.c (mono_reflection_bind_generic_parameters): If our
13361         parent is a generic instance, pass all the `types' to it, no
13362         matter whether it has the same number of type parameters or not.
13363
13364 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13365
13366         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13367
13368         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13369         assignment code to this function so it gets called recursively for all
13370         modules.
13371
13372         * image.c (load_modules): Remove the assembly assignment since it is
13373         now done by mono_assembly_load_references.
13374         
13375         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13376         Add 'module' argument.
13377         (mono_module_get_types): New helper function.
13378         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13379
13380 2003-11-08  Martin Baulig  <martin@ximian.com>
13381
13382         * class.c (mono_class_inflate_generic_method): Interface method
13383         don't have a header.
13384
13385         * reflection.c (mono_image_get_methodspec_token): Take an
13386         additional `MonoGenericInst *' argument instead of reading it from
13387         the header; this is necessary to support interfaces.
13388         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13389         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13390         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13391         argument.
13392
13393         * reflection.h (MonoReflectionInflatedMethod): Added
13394         `MonoGenericInst *ginst'.
13395
13396 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13397
13398         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13399
13400 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13401
13402         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13403
13404 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13405
13406         * reflection.c 
13407         (reflection_methodbuilder_from_method_builder):
13408         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13409         initialize a ReflectionMethodBuilder structure.
13410         (mono_image_get_methodbuilder_token):
13411         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13412         tokens which point to types in another module inside the same assembly.
13413
13414         * reflection.c: Use the new helper functions.
13415         
13416         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13417
13418         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13419         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13420
13421         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13422         neccesary.
13423
13424         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13425         current module. Emit the manifest only for the main module.
13426
13427         * reflection.c (mono_image_create_token): Add assertion when a 
13428         memberref needs to be created.
13429
13430         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13431
13432         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13433         larger buffer for the custom attribute blob. Fixes #50637.
13434         
13435 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13436
13437         * threadpool.c: notify listener on async processing handles after
13438         invoking the async callback. Thanks to Zoltan.
13439
13440 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13441
13442         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13443         avoid code duplication.
13444
13445         * reflection.h (MonoDynamicImage): New type which is currently unused,
13446         but will be used through the ref.emit code in place of 
13447         MonoDynamicAssembly.
13448
13449         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13450         object layout.
13451
13452         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13453         a MonoDynamicImage instead of just a MonoImage.
13454         
13455         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13456         icalls to ModuleBuilder but keep their semantics, so they will work
13457         with moduleb->assemblyb. This will change later.
13458         
13459 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13460
13461         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13462         object layout.
13463
13464         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13465         main module, since it is now done by the managed code.
13466
13467 2003-11-03  Martin Baulig  <martin@ximian.com>
13468
13469         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13470         `ginst->klass' here.
13471         (method_encode_methodspec): Don't use the `ginst->generic_method's
13472         klass if it's a generic instance, use `ginst->klass' in this case.
13473
13474 2003-11-03  Martin Baulig  <martin@ximian.com>
13475
13476         * reflection.c (mono_image_get_generic_method_param_info):
13477         Removed, use mono_image_get_generic_param_info() instead.
13478         (mono_image_get_type_info): Write the GenericParam table before
13479         the Method table.  This is neccessary because in the GenericParam
13480         table, type parameters of the class (ie. '!0' etc.) must come
13481         before the ones from its generic methods (ie. '!!0' etc).
13482
13483 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13484
13485         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13486
13487 2003-11-02  Martin Baulig  <martin@ximian.com>
13488
13489         * reflection.c (create_generic_typespec): Take a
13490         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13491         the generic parameters from it.
13492
13493 2003-11-02  Martin Baulig  <martin@ximian.com>
13494
13495         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13496         instead of a `MonoClassField *' since we just need the type.
13497         (create_generic_typespec): New static function.  Creates a
13498         TypeSpec token for a generic type declaration.
13499         (mono_image_get_generic_field_token): New static function.
13500         (mono_image_create_token): If we're a FieldBuilder in a generic
13501         type declaration, call mono_image_get_generic_field_token() to get
13502         the token.
13503
13504 2003-11-02  Martin Baulig  <martin@ximian.com>
13505
13506         * reflection.h
13507         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13508         `MonoReflectionGenericInst *declaring_type' and
13509         `MonoReflectionGenericInst *reflected_type' fields.
13510
13511         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13512         `MonoReflectionGenericInst *declaring_type' and a
13513         `MonoReflectionGenericInst *reflected_type' argument instead of a
13514         single `MonoReflectionGenericInst *type' one.  Set
13515         `res->declaring_type' and `res->reflected_type' from them.
13516         (mono_reflection_inflate_field): Likewise.      
13517
13518 2003-11-02  Martin Baulig  <martin@ximian.com>
13519
13520         * class.c (mono_class_setup_vtable): Don't store generic methods
13521         in the vtable.  
13522
13523 2003-11-02  Martin Baulig  <martin@ximian.com>
13524
13525         * reflection.h (MonoReflectionGenericInst): Added
13526         `MonoReflectionType *declaring_type'.
13527
13528         * reflection.c (mono_reflection_bind_generic_parameters): Use
13529         `if (tb->parent)' instead of `klass->parent'.
13530
13531 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13532
13533         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13534         with an empty ASSEMBLY table.
13535
13536         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13537         variable in the inner and outer loops.
13538
13539 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13540
13541         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13542         argument.
13543
13544         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13545         
13546         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13547         icalls. Instead, do everything in managed code. This is needed since
13548         it is hard to restore the original domain etc. in unmanaged code in the
13549         presence of undeniable exceptions.
13550
13551         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13552         New icalls to push and pop appdomain refs.
13553
13554 2003-10-31  Martin Baulig  <martin@ximian.com>
13555
13556         * class.c (inflate_generic_type): Renamed to
13557         mono_class_inflate_generic_type() and made it public.
13558
13559         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13560         New interncall.
13561
13562         * loader.c (mono_field_from_memberref): Also set the retklass for
13563         typespecs.
13564
13565         * fielder.c (mono_image_get_inflated_field_token): New static
13566         method; creates a metadata token for an inflated field.
13567         (mono_image_create_token, fixup_method): Added support for
13568         "MonoInflatedField".
13569         (fieldbuilder_to_mono_class_field): New static function.
13570         (mono_reflection_inflate_field): New public function.
13571
13572         * reflection.h
13573         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13574         (MonoReflectionInflatedField): New typedef.     
13575
13576 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13577
13578         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13579         for Solaris and other platforms without s6_addr16
13580
13581 2003-10-30  Martin Baulig  <martin@ximian.com>
13582
13583         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13584         argument instead of two.
13585         (mono_class_inflate_generic_signature): Likewise.
13586         (inflate_generic_header): Likewise.
13587         (mono_class_inflate_generic_method): Likewise.  In addition, if
13588         `ginst->klass' is set, it becomes the new `method->klass'.
13589
13590         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13591         field.
13592
13593         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13594         first byte. [FIXME]
13595         (method_encode_methodspec): If we have generic parameters, create
13596         a MethodSpec instead of a MethodRef.
13597         (fixup_method): Added support for "MonoInflatedMethod" and
13598         "MonoInflatedCtor".
13599         (mono_image_create_token): Added support for "MonoInflatedMethod"
13600         and "MonoInflatedCtor".
13601         (inflated_method_get_object): New static function; returns a
13602         managed "System.Reflection.MonoInflatedMethod" object.
13603         (mono_reflection_bind_generic_method_parameters): Return a
13604         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13605         (mono_reflection_inflate_method_or_ctor): Likewise.
13606         (mono_image_get_generic_method_param_info): Initialize unused
13607         fields to zero.
13608         (mono_image_get_generic_param_info): Likewise.
13609
13610         * reflection.h (MonoReflectionInflatedMethod): New public
13611         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13612         "S.R.MonoInflatedCtor" classes.
13613
13614         * loader.c (method_from_memberref): If we're a TypeSpec and it
13615         resolves to a generic instance, inflate the method.
13616
13617 2003-10-28  Dick Porter  <dick@ximian.com>
13618
13619         * object.c (mono_runtime_run_main): Convert command-line arguments
13620         into utf8, falling back to the user's locale encoding to do so.
13621
13622 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13623
13624         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13625         at this time.
13626
13627         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13628
13629         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13630         up icalls at method definition time. Partially fixes #33569.
13631
13632 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13633
13634         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13635         marshalling of arrays. Fixes #50116.
13636
13637         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13638
13639         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13640         points to a vtable in the dying appdomain.
13641
13642         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13643         listeners into unmanaged code inside the lock.
13644
13645         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13646         domains and add some comments.
13647
13648 2003-10-25  Martin Baulig  <martin@ximian.com>
13649
13650         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13651
13652         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13653
13654         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13655         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13656         currently parsing.  Create the generic class and store it in
13657         `generic_inst->klass' before parsing the type arguments.  This is
13658         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13659         for an example.
13660         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13661         to support recursive typespec entries.
13662
13663         * class.c (mono_class_setup_parent): If our parent is a generic
13664         instance, we may get called before it has its name set.
13665         (mono_class_from_generic): Splitted into
13666         mono_class_create_from_generic() and mono_class_initialize_generic().
13667
13668 2003-10-25  Martin Baulig  <martin@ximian.com>
13669
13670         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13671         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13672         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13673         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13674
13675         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13676         (create_typespec): Likewise.
13677         (mono_reflection_bind_generic_parameters): Return a
13678         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13679         (mono_reflection_inflate_method_or_ctor): New public function.
13680
13681         * reflection.h (MonoReflectionGenericInst): New typedef.        
13682
13683 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13684
13685         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13686         inside the domain lock. Fixes #49993.
13687         
13688         * object.c (mono_class_vtable): When typed allocation is used, 
13689         allocate vtables in the GC heap instead of in the mempool, since the
13690         vtables contain GC descriptors which are used by the collector even
13691         after the domain owning the mempool is unloaded.
13692
13693         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13694
13695         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13696         reflect what it does. Also invalidate mempools instead of freeing
13697         them if a define is set.
13698
13699         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13700         of the appdomain.
13701         
13702         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13703         hold the finalizable objects in this domain.
13704
13705         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13706         appdomain.
13707
13708         * appdomain.c (mono_domain_set): New function to set the current
13709         appdomain, but only if it is not being unloaded.
13710
13711         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13712         appdomain which is being unloaded.
13713         
13714         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13715         unloading of the root appdomain.
13716
13717         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13718         icall to execute a method in another appdomain. Intended as a 
13719         replacement for InternalSetDomain, which can confuse the code 
13720         generation in the JIT.
13721
13722         * appdomain.c (mono_domain_is_unloading): New function to determine
13723         whenever an appdomain is unloading.
13724
13725         * appdomain.c (mono_domain_unload): New function to correctly unload
13726         an appdomain.
13727
13728         * assembly.c (mono_assembly_load_references): Check that an assembly
13729         does not references itself.
13730
13731         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13732         domain manually, it asks the finalizer thread to do it, then waits for
13733         the result. Also added a timeout.
13734
13735         * icall.c: Register the new icalls.
13736
13737         * threads.h threads.c: Export the mono_gc_stop_world and 
13738         mono_gc_start_world functions.
13739         
13740         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13741         function to fill out the mempool with 0x2a.
13742
13743 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13744
13745         * reflection.h (MonoReflectionMethodAux): New structure to store
13746         information which is rarely used, thus is not in the MonoMethod
13747         structure.
13748
13749         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13750         store the aux info.
13751
13752         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13753         and marshalling info into the aux structure.
13754
13755         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13756         from the aux structure.
13757
13758         * loader.c (mono_method_get_param_names): Retrieve the param names from
13759         the aux structure.
13760         
13761 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13762
13763         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13764         warning.
13765
13766 2003-10-21  Dick Porter  <dick@ximian.com>
13767
13768         * socket-io.c
13769         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13770         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13771
13772 2003-10-21  Martin Baulig  <martin@ximian.com>
13773
13774         * reflection.c (mono_reflection_bind_generic_parameters):
13775         `klass->parent' is NULL for interfaces.
13776
13777 2003-10-21  Martin Baulig  <martin@ximian.com>
13778
13779         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13780
13781 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13782
13783         * exception.c (mono_exception_from_name_msg): New helper function for
13784         creating exceptions and initializing their message field.
13785
13786         * exception.c: Simplify functions using the new helper.
13787
13788         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13789         New function.
13790
13791         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13792         mono_raise_exception, since otherwise gcc doesn't generate the function
13793         epilog for raise_exception, confusing the stack unwinding in the JIT.
13794         Fixes #45043.
13795
13796         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13797         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13798         Fixes #49499.
13799
13800 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13801
13802         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13803         utf8.
13804
13805 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13806
13807         * icall.c: Removed GetUninitializedObject method because
13808           AllocateUninitializedClassInstance does the same.
13809
13810 2003-10-18  Martin Baulig  <martin@ximian.com>
13811
13812         * class.c (inflate_generic_signature): Renamed to
13813         mono_class_inflate_generic_signature() and made it public.
13814         (my_mono_class_from_generic_parameter): New static function; if we
13815         don't already have the generic parameter's MonoClass, create a
13816         very simple one which is just used internally in the runtime and
13817         not passed back to managed code.
13818
13819         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13820
13821         * metadata.h (MonoMethodSignature): Moved the
13822         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13823         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13824
13825         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13826         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13827         interncall on the MonoMethod class, not on MethodInfo.
13828         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13829         calling mono_reflection_bind_generic_method_parameters() directly.
13830
13831         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13832         return the already computed `method->signature'.
13833         (method_from_methodspec): New static function to load a method
13834         from a MethodSpec entry.
13835         (mono_get_method_from_token): Call the new method_from_methodspec()
13836         for MethodSpec tokens.  
13837         (mono_get_method_from_token): If we're a generic method, load the
13838         type parameters.
13839
13840         * reflection.c (mono_image_get_memberref_token): Allow
13841         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13842         table.
13843         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13844         (mono_image_create_token): First check whether it's a generic
13845         method (so we'd need to create a MethodSpec), then do the other
13846         two alternatives.
13847         (mono_reflection_bind_generic_method_parameters): Return a
13848         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13849         called directly from the interncall.
13850
13851 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13852
13853         * reflection.c (load_public_key): Move loading of the public key
13854         into managed code.
13855
13856         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13857
13858         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13859         fields.
13860
13861         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13862         culture, hash_alg and public_key. Fixes #49555.
13863
13864 2003-10-17  Martin Baulig  <martin@ximian.com>
13865
13866         * class.h (MonoGenericInst): Moved this declaration here and added
13867         `MonoMethod *generic_method'.
13868
13869         * icall.c
13870         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13871         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13872
13873         * metadata.c (mono_metadata_type_equal): Two types of
13874         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13875         index; ie. don't compare the address of the `MonoGenericParam'
13876         structure.
13877         (mono_metadata_load_generic_params): Removed the `MonoMethod
13878         *method' argument.
13879
13880         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13881         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13882
13883         * reflection.c (method_encode_signature): Encode the number of
13884         generic parameters.
13885         (encode_generic_method_sig): New static function.
13886         (method_encode_methodspec): New static function; creates an entry
13887         in the MethodSpec table for a generic method.
13888         (mono_image_get_methodspec_token): New static function.
13889         (mono_image_create_token): Call mono_image_get_methodspec_token()
13890         for generic methods.
13891         (mono_reflection_bind_generic_method_parameters): New public
13892         function.  Instantiates a generic method.
13893
13894 2003-10-16  Martin Baulig  <martin@ximian.com>
13895
13896         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13897         *gen_params' here from MonoMethodHeader.
13898
13899         * metadata.c (mono_metadata_parse_method_signature): If we have
13900         generic parameters, initialize `method->gen_params' and then set
13901         the correct `type->data.generic_param' in all the parameters.
13902
13903 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13904
13905         * threads.c (mono_threads_get_default_stacksize): New function to 
13906         return the default stacksize.
13907
13908         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13909         termination of the finalizer thread, since the previous method had
13910         race conditions. Fixes #49628.
13911
13912         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13913         as for the other managed threads.
13914
13915 2003-10-16  Martin Baulig  <martin@ximian.com>
13916
13917         * class.c (inflate_generic_signature): Copy `generic_param_count'
13918         and `gen_params'.
13919
13920         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13921         New interncall.
13922
13923         * metadata.c (mono_metadata_parse_method_signature): Actually set
13924         the `method->generic_param_count' here.
13925         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13926
13927 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13928
13929         * object.h: Add a new field to TypedRef to simplify the implementation
13930         of the REFANY opcodes in the JIT.
13931
13932         * icall.c: Make use of the new field.
13933
13934         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13935         dynamically.
13936
13937 2003-10-15  Martin Baulig  <martin@ximian.com>
13938
13939         * class.c (mono_class_from_gen_param): Renamed to
13940         mono_class_from_generic_parameter() and moved most of the
13941         functionality from mono_reflection_define_generic_parameter()
13942         here; ie. we create a "real" class here.
13943         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13944         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13945         previously been called.
13946
13947         * class.h (MonoGenericParam): Moved the declaration of this struct
13948         here from metadata.h and added `MonoMethod *method'.
13949
13950         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13951         interncall.
13952
13953         * loader.c (mono_get_method_from_token): If we have any generic
13954         parameters, call mono_metadata_load_generic_params() to read them
13955         from the MONO_TABLE_GENERICPAR.
13956
13957         * metadata.c (mono_metadata_load_generic_params): Added
13958         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13959
13960         * metadata.h (MonoMethodSignature): Replaced
13961         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13962         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13963
13964         * reflection.c (mono_reflection_define_generic_parameter): Moved
13965         most of the functionality into the new
13966         mono_class_from_generic_parameter(); set the `method' field if
13967         we're a method parameter.       
13968
13969 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13970
13971         * marshal.c (emit_struct_conv): if native size is 0
13972         emit no code.
13973
13974 2003-10-14  Martin Baulig  <martin@ximian.com>
13975
13976         * icall.c: The generics API has changed in the spec since it was
13977         added to System.Type; these modifications make it match the spec
13978         again.
13979         (ves_icall_Type_GetGenericParameters): Renamed to
13980         `ves_icall_Type_GetGenericArguments'.
13981         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13982         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13983         `ves_icall_MonoType_get_HasGenericArguments'.
13984         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13985         `ves_icall_MonoType_get_IsGenericParameter'.
13986         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13987         this is no interncall anymore.
13988         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13989         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13990
13991 2003-10-14  Martin Baulig  <martin@ximian.com>
13992
13993         * reflection.c (mono_reflection_bind_generic_parameters): Also
13994         inflate generic methods if we're reading the class from IL.
13995
13996 2003-10-13  Martin Baulig  <martin@ximian.com>
13997
13998         * reflection.c (mono_reflection_define_generic_parameter): This
13999         method isn't called directly from the icall anymore; take a
14000         `MonoReflectionAssemblyBuilder *' so we can use this for type and
14001         method generic parameters.
14002         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14003         (method_builder_encode_signature): Encode generic parameters.
14004         (mono_image_get_method_info): Write generic params to the
14005         MONO_TABLE_GENERICPARAM table.
14006
14007         * reflection.h (MonoReflectionMethodBuilder): Added
14008         `MonoArray *generic_params'.
14009
14010         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14011
14012         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14013         wrapper for mono_reflection_define_generic_parameter().
14014         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
14015
14016 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
14017
14018         * marshal.h: Add missing function to fix build.
14019
14020         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
14021         the SetLastError pinvoke attribute.
14022
14023         * marshal.c (mono_marshal_set_last_error): New helper function called
14024         by the generated code.
14025         
14026         * marshal.c (mono_mb_emit_branch): New helper function.
14027
14028         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14029
14030         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14031         classes as parameters and return values of delegates. Fixes #29256. 
14032
14033 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
14034
14035         * locales.c: use gint32 in non HAVE_ICU case
14036
14037 2003-10-11  Martin Baulig  <martin@ximian.com>
14038
14039         * mono-debug.c (mono_debug_add_method): Added a workaround for
14040         bug #48591.
14041
14042 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14043
14044         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14045         delegates passed to native code must use the STDCALL calling 
14046         convention. Fixes #35987.
14047
14048 2003-10-10  Martin Baulig  <martin@ximian.com>
14049
14050         * class.c (inflate_generic_type): If we're inflating for a generic
14051         type instance (and not for a generic method), return
14052         MONO_TYPE_MVAR unchanged.
14053
14054 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14055
14056         * string-icalls.c: Join ignores null strings in the source array.
14057         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14058         * threads.c: GetAvailableTheads is slightly more accurate.
14059
14060 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14061
14062         * threads.h threads.c : add mono_threads_set_default_stacksize
14063         and pass default to CreateThread calls.
14064
14065 2003-10-09  Dick Porter  <dick@ximian.com>
14066
14067         * icall.c:
14068         * locales.h:
14069         * locales.c: Internal calls for constructing CultureInfo and
14070         related objects from libicu (if its available.)
14071
14072 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14073
14074         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14075
14076 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14077
14078         * threadpool.c: added an argument to async_invoke_thread that is the
14079         item to process, pass the MonoAsyncResult to the thread start function
14080         when creating a new thread. This way we don't need to acquire any lock
14081         when we're creating a new thread. Readded a semaphore for faster
14082         response times (instead of that Sleep i added).
14083
14084 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14085
14086         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14087         get daylight change dates better on Windows, fix handling
14088         of platforms without tm_gmtoff.
14089
14090 2003-10-06  Martin Baulig  <martin@ximian.com>
14091
14092         * class.c (inflate_generic_method): Renamed to
14093         mono_class_inflate_generic_method() and made public.
14094         (mono_class_init): Don't inflate the generic methods here.
14095         (mono_class_from_generic): Added `gboolean inflate_methods'
14096         argument.  Inflate the methods here.
14097
14098         * loader.c (mono_method_get_param_names): Ignore instances of
14099         generic types for the moment.
14100
14101         * reflection.c (fixup_method): Added support for inflated methods.
14102         (mono_image_create_token): Use mono_image_get_methodref_token()
14103         for inflated methods.
14104         (mono_custom_attrs_from_param): Ignore instances of generic types
14105         for the moment.
14106         (mono_reflection_bind_generic_parameters): New public function.
14107         Moved all the functionality from
14108         ves_icall_Type_BindGenericParameters() here and added support for
14109         dynamic types.
14110         (mono_reflection_define_generic_parameter): Initialize
14111         `klass->methods' here.
14112
14113         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14114         functionality into mono_reflection_define_generic_parameter().
14115         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14116         TypeBuilder, return that TypeBuilder.
14117
14118 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14119
14120         * appdomain.c: removed mono_delegate_semaphore.
14121
14122         * threadpool.c:
14123         (mono_thread_pool_add): moved hash table creation inside and the thread 
14124         creation outside of the critical region.
14125         (mono_thread_pool_finish): removed obsolete code.
14126         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14127         continue or exit the thread depending on the queue.
14128
14129 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14130
14131         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14132         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14133         handle more bool marshalling options
14134
14135 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14136
14137         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14138         arrays of structs. Also add a more descriptive error message when
14139         a structure member is marshalled as LPArray.
14140
14141 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14142
14143         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14144         marshalling arrays of complex types. Fixes #29098. Also remove an
14145         usused and incomplete function.
14146
14147 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14148
14149         * gc.c: report heap_size - free_bytes as total memory allocated
14150         (bug#49362).
14151
14152 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14153
14154         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14155         fix timezone handling problems on Windows.
14156         
14157         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14158         asserts when the year is outside the range handled by ms the functions.
14159
14160         * class.c (setup_interface_offsets): If the class is an interface,
14161         fill out its interface_offsets slot.
14162
14163 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14164
14165         * threadpool.c: mark threadpool threads as background.
14166
14167 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14168
14169         * decimal.c - define DECINLINE to nothing if not using GCC
14170
14171 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14172
14173         * assembly.c: More refcount fixes.
14174
14175 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14176
14177         * string-icalls.c: if we're not trimming, return the same string.
14178         When not splitting, don't create a new string.
14179
14180 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14181
14182         * image.c:
14183         (mono_image_open): increment the ref_count inside the critical section.
14184
14185 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14186
14187         * image.c (mono_image_open): Fix reference counting bug.
14188
14189 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14190
14191         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14192         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14193         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14194         mono_lookup_pinvoke_call throws.        
14195
14196 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14197
14198         * reflection.c (mono_reflection_parse_type): Fix #49114.
14199
14200         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14201         temporary workaround for cygwin header problem.
14202
14203         * object.c (mono_object_isinst): Synchronize this with the code
14204         generated by the JIT for casts.
14205
14206 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14207
14208         * reflection.c (encode_type): Fix #38332.
14209
14210 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14211
14212         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14213         the original method from the wrapper method.
14214
14215 2003-09-25  Martin Baulig  <martin@ximian.com>
14216
14217         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14218         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14219         (ves_icall_Type_get_IsGenericInstance): New interncall.
14220
14221 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14222
14223         * object.c: fix cast warning in big endian code.
14224
14225 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14226
14227         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14228         
14229 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14230
14231         * assembly.c: don't call check_env from mono_assembly_load. It's
14232         already done once in mono_assemblies_init and may cause headaches when
14233         multiple threads are loading assemblies.
14234
14235 2003-09-19  Martin Baulig  <martin@ximian.com>
14236
14237         * reflection.c (mono_reflection_define_generic_parameter): Don't
14238         allocate `klass->methods', set `klass->flags' to
14239         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14240
14241 2003-09-18  Martin Baulig  <martin@ximian.com>
14242
14243         * class.c (mono_class_init): Don't create `class->methods' if it's
14244         already initialized.
14245
14246         * metadata.c (mono_metadata_load_generic_params): Make this
14247         actually work.
14248
14249         * reflection.c (mono_reflection_define_generic_parameter): Set
14250         parent class and interfaces from the constraints.
14251
14252         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14253         to keep this struct in sync with the declaration in TypeBuilder.cs.
14254
14255 2003-09-17  Martin Baulig  <martin@ximian.com>
14256
14257         * metadata.h (MonoType): Replaced the data's `int type_param'
14258         field with `MonoGenericParam *generic_param'.
14259         (MonoGenericParam): Added `MonoClass *klass'.
14260
14261         * class.c (mono_class_from_gen_param): Removed the
14262         `MonoImage *image' and `int type_num' arguments.
14263
14264         * metadata.c (mono_metadata_parse_generic_param): New static
14265         method; creates a MonoGenericParam which just contains the index.
14266         (do_mono_metadata_parse_type): Call
14267         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14268         MONO_TYPE_MVAR.
14269
14270         * reflection.c (mono_image_typedef_or_ref): Generic type
14271         parameters may be in the same assembly, but never use a typedef
14272         for them.
14273         (mono_reflection_define_generic_parameter): We're now creating a
14274         "real" class for the type parameter; it's now safe to call
14275         mono_class_from_mono_type() on the class'es type, it'll do the
14276         right thing.
14277
14278 2003-09-16  Martin Baulig  <martin@ximian.com>
14279
14280         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14281         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14282         the `symfile' data structure must be fully initialized before it
14283         gets added to the table.
14284
14285 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14286
14287         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14288
14289         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14290         class init trampolines.
14291
14292 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14293
14294         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14295         to the built-in profiler to turn off time and allocation profiling
14296         respectively.
14297
14298 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14299
14300         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14301         g_direct_equal.
14302
14303         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14304         in human readable form.
14305
14306 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14307
14308         * reflection.c icall.c: Fixed warnings.
14309
14310         * image.c (load_class_names): Use a temporary hash table to hold the
14311         namespaces in order to avoid doing many string comparisons.
14312
14313         * image.h: Fix typo.
14314
14315         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14316         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14317         since the NULL case is short-circuited inside g_hash_table_lookup, 
14318         leading to better performance.  
14319
14320         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14321         obtain the first custom attribute for a given index. Depends on the
14322         CustomAttribute table being sorted by the parent field.
14323
14324         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14325         for better performance.
14326
14327 2003-09-07  Martin Baulig  <martin@ximian.com>
14328
14329         * class.c (mono_class_init): If we're a generic instance, inflate
14330         all our methods instead of loading them from the image.
14331         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14332
14333 2003-09-07  Martin Baulig  <martin@ximian.com>
14334
14335         * mono-debug-debugger.c: Added support for constructors.
14336
14337 2003-09-06  Martin Baulig  <martin@ximian.com>
14338
14339         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14340         New interncall.
14341
14342         * reflection.c (mono_reflection_setup_generic_class): Call
14343         ensure_runtime_vtable() to create the vtable.
14344
14345 2003-09-05  Martin Baulig  <martin@ximian.com>
14346
14347         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14348         MONO_TYPE_MVAR.
14349
14350 2003-09-04  Martin Baulig  <martin@ximian.com>
14351
14352         * reflection.c (mono_reflection_define_generic_parameter): Generic
14353         parameters start with zero.
14354
14355 2003-09-04  Martin Baulig  <martin@ximian.com>
14356
14357         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14358
14359         * reflection.h (MonoReflectionGenericParam): New typedef.
14360         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14361         the generic parameters from the managed TypeBuilder.
14362
14363         * reflection.c (mono_reflection_define_generic_parameter): New function.
14364         (mono_reflection_create_runtime_class): Encode generic parameters.
14365         (mono_reflection_setup_generic_class): New function; this is
14366         called after adding adding all generic params to the TypeBuilder.
14367         (encode_type): Added MONO_TYPE_VAR.
14368
14369 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14370
14371         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14372         here from the JIT.
14373
14374         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14375         load hook.
14376
14377 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14378
14379         * reflection.h reflection.c class.h class.c: Delete duplicate 
14380         definition of mono_type_get_name () from reflection.c and export the
14381         one in class.c.
14382
14383         * class.c: Class loading fixes from Bernie Solomon 
14384         (bernard@ugsolutions.com).
14385
14386         * reflection.c: Endianness fixes from Bernie Solomon 
14387         (bernard@ugsolutions.com).
14388         
14389 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14390
14391         * assembly.h assembly.c: Define a file format version for AOT
14392         libraries.
14393         
14394         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14395
14396         * appdomain.h (MonoJitInfo): New field to determine whenever the
14397         code is domain neutral.
14398         
14399 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14400
14401         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14402
14403 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14404
14405         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14406         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14407         Avoid caching the result since strings must be domain specific. Fixes
14408         #48050.
14409
14410 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14411
14412         * marshal.c (mono_marshal_init): Make this callable multiple times
14413         since it is hard to find a correct place to call it.
14414
14415         * object.c (mono_runtime_class_init): Execute static constructors in
14416         the correct appdomain.
14417
14418         * image.c (build_guid_table): Handle the case when multiple images have
14419         the same GUID.
14420
14421 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14422
14423         * icall.c: added a couple of icalls for System.Web.
14424
14425 2003-08-28  Martin Baulig  <martin@ximian.com>
14426
14427         * icall.c (ves_icall_Type_BindGenericParameters): Use
14428         `klass->generic_inst' instead of `&klass->byval_arg' in the
14429         mono_type_get_object() call.  The returned type must be
14430         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14431
14432 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14433
14434         * NOTES: New file.
14435
14436         * object.c (mono_class_proxy_vtable): Make it thread safe.
14437
14438         * pedump.c: Fix warning.
14439
14440         * object.c appdomain.h: Get rid of metadata_section. 
14441         It is no longer needed and it was causing deadlocks with domain->lock.
14442
14443         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14444
14445 2003-08-26  Martin Baulig  <martin@ximian.com>
14446
14447         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14448
14449 2003-08-26  Martin Baulig  <martin@ximian.com>
14450
14451         * pedump.c (main): Call mono_metadata_init(),
14452         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14453         and mono_loader_init().
14454
14455 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14456
14457         * loader.h: Add missing include to fix build.
14458
14459         * image.h: mono_image_load_references is no more.
14460
14461         * assembly.c: Reworked assembly loading to make it really thread safe.
14462         After these changes, the assembly returned by mono_assembly_open is
14463         fully initialized, i.e. all its references assemblies are loaded.
14464
14465         * assembly.c (mono_image_load_references): Renamed to 
14466         mono_assembly_load_references, and made private, since clients no
14467         longer need to call it.
14468
14469         * class.c: Removed calls to mono_assembly_load_references, since it was
14470         a source of deadlocks.
14471
14472         * loader.h loader.c class.h class.c: Protect data structures using a 
14473         new lock, the loader lock.
14474
14475         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14476         GPtrArrays only when needed.
14477
14478         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14479         into empty structures by mcs. Fixes pinvoke7.cs.
14480         
14481         * domain.c (mono_init): Call a new initialization function.
14482
14483         * appdomain.c (mono_runtime_init): Call the new initializer function
14484         of the marshal module.
14485
14486         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14487         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14488
14489         * marshal.h marshal.c: Added locks around the wrapper caches to make
14490         this module thread safe.
14491
14492         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14493         this argument. Fixes pinvoke1.exe.
14494
14495 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14496
14497         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14498         enumeration of values. Removed fields to store remote call output values in
14499         MonoAsyncResult. Not needed any more.
14500         * object.c: Initialize call_type and async_result fields in mono_message_init.
14501         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14502         dispatching the message.
14503         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14504         async call to finish. To do it use a message with EndInvoke call type.
14505
14506 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14507
14508         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14509         determines whenever a method has marshalling info.
14510
14511 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14512
14513         * assembly.c: fix the build on windows.
14514
14515 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14516
14517         * object.cs: Fixed bug #47785.
14518
14519 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14520
14521         * string-icalls.c (StringReplace): If their are no occurances of
14522         the old string found return a reference to the supplied
14523         string. This saves some memory and matches MS behavoir.
14524         
14525 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14526
14527         * socket-io.c: fixed compilation for systems that define AF_INET6
14528         and don't define SOL_IP/SOL_IPV6.
14529
14530 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14531
14532         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14533         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14534
14535         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14536
14537         * domain.c: Make this module thread safe.
14538
14539         * domain.c (mono_init): Call new initialization function.
14540
14541         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14542         reference types too. Fixes #38812.
14543
14544         * image.c (mono_image_init): Fixed warnings.
14545
14546         * class.c (mono_class_from_typeref): Handle assembly load failure
14547         correctly.
14548
14549         * appdomain.c (add_assemblies_to_domain): Handle the case when
14550         the references of an assembly are not yet loaded.
14551
14552         * metadata.c image.c assembly.c: Moved initialization of global
14553         variables to a separate function called at startup since lazy 
14554         initialization of these variables is not thread safe.
14555         
14556         * image.c assembly.c: Made this module thread safe by adding locks in 
14557         the appropriate places.
14558
14559         * domain.c (mono_init): Call the new initialization functions of the
14560         three modules.
14561
14562 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14563
14564         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14565           make a direct call. It is proxy's work to make the call asynchronous.
14566           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14567           the return values.
14568         * object.cs: mono_method_call_message_new(): read AsyncResult and
14569           state object from parameters list, if this info is requested.
14570         * object.h: Added fields to store remote call output values in
14571           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14572
14573 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14574
14575         * object.h: add needed fields to MonoThread.
14576         * threads.c, threads.h: allow registering a function to cleanup data
14577         allocated per thread by the JIT.
14578
14579 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14580
14581         * loader.h: portability fix by Bernie Solomon
14582         * <bernard@ugsolutions.com>.
14583
14584 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14585
14586         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14587         return a MonoArray. This simplifies the code and also ensures that
14588         the cache allways contains an object reference as a value.
14589
14590         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14591         function.
14592
14593 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14594
14595         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14596         fixes a problem with byte ordering when getting the address family for
14597         a socket.
14598
14599 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14600
14601         * .cvsignore: Added monosn.
14602
14603         * reflection.h reflection.c loader.c: Added support for parameter
14604         marshalling to dynamically created types. Fixes #47295.
14605
14606 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14607
14608         * rand.c: remove useless warnings.
14609
14610 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14611
14612         * class.c: implemented ldtoken for methods and fieldrefs.
14613
14614 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14615
14616         * threadpool.c: when mono_async_invoke was called, no one took care of
14617         monitoring the queue. So if the method invoked took some time and we
14618         got new async invoke requests after 500 ms (the thread created waited
14619         that long in WaitForSingleObject), the new async invoke was not called
14620         until the previous one finished.
14621
14622         This is fixed now. Thanks to Totte for helping with it.
14623
14624 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14625
14626         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14627
14628 2003-08-11  Martin Baulig  <martin@ximian.com>
14629
14630         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14631
14632 2003-08-06  Martin Baulig  <martin@ximian.com>
14633
14634         * mono-debug-debugger.c: Added support for static fields,
14635         properties and methods.
14636
14637 2003-08-06  Martin Baulig  <martin@ximian.com>
14638
14639         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14640         make this work for applications with multiple application domains.
14641
14642 2003-08-04  Martin Baulig  <martin@ximian.com>
14643
14644         * mono-debug-debugger.c: Completely reworked the type support; the
14645         most important thing is that we're now just using one single
14646         `MonoType' instance per type.
14647
14648 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14649
14650         * mono-endian.h, mono-endian.c, icall.c: Added icall
14651         ves_icall_System_Double_AssertEndianity to assert double word endianity
14652         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14653
14654 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14655
14656         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14657         support, icalls and fixes.
14658
14659 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14660
14661         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14662         classes that are a punctuation character in .NET is not the same a
14663         g_unichar_ispunct.
14664
14665 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14666
14667         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14668
14669 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14670
14671         * icall.c: Add new MemCopy internalcall.
14672         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14673         Simplified code; It is not necessary to handle all the cases here,
14674         as the C# code takes care of it.  Only handle the case of the name
14675         resource embedded into the assembly.
14676
14677         Changed signature to return the data pointer and the size of the
14678         data. 
14679
14680 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14681
14682         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14683         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14684
14685 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14686
14687         * socket-io.c: ignore EINTR error in select.
14688
14689 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14690
14691         * class.h, class.c: removed unused subclasses field in MonoClass.
14692
14693 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14694
14695         * icall.c: improve fix of get_base_definition(). If the parent class
14696           doesn't have the mehod, look at the parent of the parent.
14697         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14698           to check if a parameter is an in or out parameter
14699           (PARAM_ATTRIBUTE_IN is not set by default).
14700           mono_method_return_message_restore(): Use mono_class_value_size to
14701           get the size of a value type. mono_type_stack_size (parameterType)
14702           does not return the correct value if parameterType is byRef.
14703           mono_load_remote_field(), mono_load_remote_field_new(),
14704           mono_store_remote_field(), mono_store_remote_field_new():
14705           raise exception if the remote call returns an exception.
14706
14707 2003-07-28  Martin Baulig  <martin@ximian.com>
14708
14709         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14710         method.  This is a wrapper around mono_runtime_invoke() which
14711         boxes the instance object if neccessary.
14712
14713 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14714
14715         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14716         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14717
14718 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14719
14720         * icall.c: disable mcs bug workaround.
14721
14722 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14723
14724         * object.c (mono_runtime_class_init): Take the metadata_section
14725         mutex before obtaining the domain mutex.
14726
14727         * appdomain.h: Added definition of metadata_section mutex here. 
14728
14729         * object.c: define metadata_mutex here.
14730
14731 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14732
14733         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14734         fixed.
14735
14736 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14737
14738         * reflection.c: Fix bug #46669
14739
14740 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14741
14742         * exception.c:
14743         * exception.h:
14744         * icall.c:
14745         * object.h: fill in the type name for TypeLoadException.
14746
14747 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14748
14749         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14750         relationship between TypeBuilders while compiling corlib) and bug
14751         45993 (Array types returned from the runtime while compiling
14752         corlib were from the loaded corlib).
14753
14754 2003-07-22  Martin Baulig  <martin@ximian.com>
14755
14756         * mono-debug-debugger.c: Reworked the type support a bit more;
14757         distinguish between types and classes.
14758
14759 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14760
14761         * icall.c: add IsArrayImpl icall.
14762
14763 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14764
14765         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14766         initializing real_size only once. Also fix bug #46602.
14767
14768 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14769
14770         * object.c: Renamed mono_metadata_section to metadata_section.
14771
14772 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14773
14774         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14775           empty array if the type is an array. Fixed.
14776           ves_icall_MonoMethod_get_base_definition: if the base method
14777           is abstract, get the MethodInfo from the list of methods of
14778           the class.
14779         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14780           and it was 1-based. Fixed in mono_param_get_objects.
14781
14782 2003-07-20  Martin Baulig  <martin@ximian.com>
14783
14784         * mono-debug.h: Set version number to 31.
14785         (mono_debug_init): Added `MonoDomain *' argument.
14786
14787         * mono-debug-debugger.c: Reworked the type support; explicitly
14788         tell the debugger about builtin types; pass the `klass' address to
14789         the debugger.
14790
14791 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14792
14793         * image.c: Allow new metadata tables to be loaded without a
14794         warning. Also update the warning message to give the new constant value.
14795                 
14796 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14797
14798         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14799         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14800         array type representation changes.
14801
14802 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14803
14804         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14805         on Environment.Exit () call.
14806
14807 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14808
14809         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14810         requires a matching corlib.
14811
14812 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14813
14814         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14815           Committed again without the CRs.
14816         
14817 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14818
14819         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14820           getting it from the "this" socket instance. Did not work
14821           if the socket is a subclass of Socket.
14822           Also fixed bug #35371.
14823
14824 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14825
14826         * metadata.c: fixed size for TypedByRef.
14827         * loader.c: when searching for a method, consider the vararg amrker.
14828         * unicode.c, decimal.c: constify some arrays.
14829
14830 2003-07-15  Dick Porter  <dick@ximian.com>
14831
14832         * socket-io.c: Fixed compilation for gcc < 3.2.
14833
14834         Fixed compilation for machines that don't have AF_INET6 (thanks to
14835         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14836
14837         Fixed compile warnings.
14838         
14839         Fixed formatting and line endings.
14840
14841 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14842
14843         * socket-io.h:
14844         * socket-io.c: Added IPv6 support.
14845
14846 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14847
14848         * class.c (mono_class_is_assignable_from): New function to implement
14849         the is_assignable_from logic. Used by mono_object_isinst, 
14850         Type::IsAssignableFrom () and the interpreter.
14851
14852         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14853         Object, even interfaces.
14854         
14855         * object.c (mono_object_isinst): Implement in terms of 
14856         is_assignable_from.
14857
14858         * icall.c (ves_icall_type_is_assignable_from): New icall.
14859
14860 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14861
14862         * domain.c (foreach_domain): fix compiler warning.
14863
14864 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14865
14866         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14867         not available on all plattforms
14868
14869 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14870
14871         * image.h image.c: Store the metadata version string in MonoImage.
14872         * icall.c: New icall to retrieve the image version.
14873         * reflection.c (create_dynamic_image): Fill in the image version field
14874         * reflection.c (build_compressed_metadata): Use the image version
14875         from the image structure.
14876
14877 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14878
14879         * appdomain.c: modified comment.
14880         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14881         That will be its last iteration when mono_gc_cleanup is called from
14882         mono_runtime_cleanup and before the domain is unloaded.
14883
14884         Fixes bug #45962.
14885
14886 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14887
14888         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14889         attributes.
14890
14891 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14892
14893         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14894         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14895         Bernie Solomon <bernard@ugsolutions.com>.
14896
14897 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14898
14899         * object.c, object.h: provide mono_object_new_fast() for faster
14900         allocation in some special cases.
14901
14902 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14903
14904         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14905         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14906
14907 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14908
14909         * threadpool.c: fix leaks.
14910
14911 2003-07-01  Dick Porter  <dick@ximian.com>
14912
14913         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14914         using MonoGHashTables.  Fixes threadpool bug posted to list.
14915
14916 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14917
14918         * image.h, image.c: added support to load an assembly from a byte array.
14919         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14920         assembly bundle support.
14921
14922 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14923
14924         * threadpool.c (mono_thread_pool_add): keep a reference to the
14925         AsyncResult to prevent GC
14926
14927 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14928
14929         * class.c: leak fix.
14930
14931 2003-06-25  Dick Porter  <dick@ximian.com>
14932
14933         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14934         for the async object, the WaitHandle object will close the handle.
14935         Fixes bug 45321.
14936
14937 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14938
14939         * class.c: in mono_array_class_get (), lookup from the hash with the
14940         same type we insert: this works around a bug in
14941         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14942         lluis. The real fix will have to wait for after the release.
14943
14944 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14945
14946         * icall.c: fix memory leak when getting type members.
14947
14948 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14949
14950         * reflection.c: added more pubtoken special cases.
14951
14952 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14953
14954         * class.c: handle field offset correctly when class size
14955         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14956
14957 2003-06-20  Martin Baulig  <martin@ximian.com>
14958
14959         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14960         *image' field.
14961
14962 2003-06-20  Martin Baulig  <martin@ximian.com>
14963
14964         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14965
14966 2003-06-20  Martin Baulig  <martin@ximian.com>
14967
14968         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14969         just distinguish between variables in registers and variables at
14970         an offset relative to a register.
14971
14972 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14973
14974         * icall.c: #ifdef out latest changes until mcs is fixed.
14975
14976 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14977
14978         * icall.c: return members in metadata order.
14979
14980 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14981
14982         * icall.c: avoid infinite loop in GetTimeZoneData.
14983
14984 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14985
14986         * icall.c: added Marshal.Prelink/All icalls.
14987
14988 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14989
14990         * object.c, object.h: fix warnings and do some overflow checking
14991         when creating arrays.
14992
14993 2003-06-17  Dick Porter  <dick@ximian.com>
14994
14995         * file-io.h:
14996         * file-io.c: File attributes need to be tweaked slightly when
14997         passed from the managed to the w32 world.
14998
14999 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15000         * profiler.h profiler-private.h profiler.c: Rework last patch
15001         based on suggestion by Paolo.
15002         
15003 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15004
15005         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
15006         instruction level coverage data collection.
15007         * profiler.h profiler.c (: Added new callback function which can be
15008         used by the profiler to limit which functions should have coverage
15009         instrumentation.
15010         * profiler.c (mono_profiler_load): Call g_module_build_path to
15011         generate the file name of the profiler library.
15012
15013 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15014
15015         * profiler.c, profiler.h, profiler-private.h: added basic block 
15016         coverage profiling API.
15017
15018 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
15019
15020         * reflection.c (mono_reflection_create_runtime_class): Add support
15021         for events in dynamically generated code.
15022
15023         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15024         not allocated.
15025
15026 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15027
15028         * icall.c: when getting timezone info, return reasonable values if we
15029         can't get the actual data.
15030
15031 2003-06-14  Dick Porter  <dick@ximian.com>
15032
15033         * threads.c (start_wrapper): Remove the reference to the thread
15034         object in the TLS data, so the thread object can be finalized.
15035         This won't be reached if the thread threw an uncaught exception,
15036         so those thread handles will stay referenced :-( (This is due to
15037         missing support for scanning thread-specific data in the Boehm GC
15038         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15039
15040 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15041
15042         * reflection.c: ensure streams and tables are first allocated with
15043         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15044
15045 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15046
15047         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15048
15049 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15050
15051         * reflection.c (mono_reflection_create_runtime_class): Add support for
15052         properties to dynamically created classes.
15053         * reflection.c: Fix a few places where non-MonoObjects were inserted
15054         into the tokens hashtable.
15055
15056 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15057
15058         * object.c: some support to handle out of memory exceptions.
15059
15060 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15061
15062         * marshal.c (mono_marshal_get_native_wrapper): support reference
15063         return types
15064
15065 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15066
15067         * object.h, object.c: more portability stuff from Bernie Solomon.
15068         Unexport mono_object_allocate(). Added mono_object_unbox ().
15069         Set exitcode when an unhandled exception is thrown.
15070
15071 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15072
15073         * marshal.c (mono_marshal_get_native_wrapper): use custom
15074         marshaler for return types.
15075
15076 2003-06-10  Dick Porter  <dick@ximian.com>
15077
15078         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15079         ip_mreq is available
15080
15081 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15082
15083         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15084         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15085         by Bernie Solomon <bernard@ugsolutions.com>.
15086
15087 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15088
15089         * gc.c (mono_gc_init): Avoid error message on shutdown when
15090         GC_DONT_GC=1 is used.
15091
15092         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15093         New icall to return the GUID of a module.
15094
15095 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15096
15097         * class.c: ensure instance size always includes the parent's size
15098         even whem class size is set explicitly (fixes bug#44294).
15099
15100 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15101
15102         * profiler.h, profiler.c: made the simple profiler thread-safe,
15103         get more accurate timing info. Allow the loading of an
15104         externally-developed profiler module.
15105
15106 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15107
15108         * marshal.c (mono_marshal_get_native_wrapper): improved
15109         class/byref arguments.
15110         (mono_marshal_get_native_wrapper): better string marshaling support.
15111
15112 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15113
15114         * class.c: ensure .pack and .size are handled correctly and
15115         simplified layout of static fields.
15116
15117 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15118
15119         * appdomain.c
15120         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15121
15122         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15123         current directory (fix bug 44008)
15124
15125 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15126
15127         * marshal.c (mono_marshal_get_native_wrapper): started support for
15128         custom marshalers.
15129         (mono_delegate_to_ftnptr): consider marshalling specifications
15130
15131 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15132
15133         * reflection.c, reflection.h: emit custom marshal info.
15134
15135 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15136
15137         * object.c: free the GError.
15138         * icall.c: added CloseEvent_internal.
15139         * threads.[ch]:
15140         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15141         call.
15142
15143 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15144
15145         * loader.c (mono_method_get_signature): Add support for dynamic
15146         assemblies.
15147
15148 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15149
15150         * reflection.c: fixed bug #43905.
15151
15152 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15153
15154         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15155         handling TypedReference and ArgIterator.
15156         * loader.c, loader.h: added function to get signature at call site.
15157
15158 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15159
15160         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15161         data readonly. Buglets and warning fixes. Some MethodSpec support.
15162
15163 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15164
15165         * class.h, class.c, object.c: remove relative numbering support.
15166
15167 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15168
15169         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15170         free the string, until we get a chance to fix Gtk#
15171
15172 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15173
15174         * marshal.c: revert last patch.
15175
15176 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15177
15178         * icall.c: updates for new mono_class_vtable() not calling
15179         the type constructor anymore.
15180
15181 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15182
15183         * object.h, object.c: separate vtable creation from type
15184         initialization. Make running the .cctor thread safe.
15185
15186 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15187
15188         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15189
15190 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15191
15192         * loader.c (mono_get_method): consider calling convention
15193
15194 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15195
15196         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15197         to return the invisible global type for a module.
15198
15199         * reflection.c (mono_image_build_metadata): Emit global fields too.
15200
15201 2003-05-20  Peter Williams  <peterw@ximian.com>
15202
15203         * loader.c (mono_lookup_internal_call): Add a few newlines.
15204
15205 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15206
15207         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15208         literal strings.
15209
15210         * appdomain.c (set_domain_search_path): Recalculate search path when
15211         AppDomainSetup.PrivateBinPath changes.
15212
15213         * object.c (mono_class_compute_gc_descriptor): It turns out some
15214         parts of the class libs (like System.Thread) holds pointers to
15215         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15216         to treat native int a pointer type here.
15217         
15218 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15219
15220         * appdomain.h, domain.c: add hashtable for jump target resolution.
15221
15222 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15223
15224         * reflection.h reflection.c icall.c: Added new icalls 
15225         GetManifestResourceInfoInternal, GetModulesInternal and support
15226         infrastructure.
15227
15228 2003-05-16  Dick Porter  <dick@ximian.com>
15229
15230         * icall.c:
15231         * file-io.h:
15232         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15233
15234 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15235
15236         * object.c: mono_store_remote_field: little fix to previous patch.
15237
15238 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15239
15240         * class.c: add constructors to array classes.
15241         * icall.c: special case array construction for InternalInvoke (),
15242
15243 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15244
15245         * class.h class.c reflection.c object.c: Added support for field
15246         defaults in dynamically generated classes.
15247
15248 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15249
15250         * reflection.c: properly encode charset for ddlimport.
15251
15252 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15253
15254         * threads.c: allow compiling without GC.
15255
15256 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15257
15258         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15259         handling of thread static data.
15260
15261 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15262
15263         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15264
15265 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15266
15267         * class.c (mono_array_class_get): always set the serializable flags
15268         (mono_array_class_get): always set the SEALED attribute for array types
15269
15270 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15271
15272         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15273         attributes (fix for bug 42021).
15274
15275 2003-05-12  Dick Porter  <dick@ximian.com>
15276
15277         * gc.c: Don't run finalizers when the finalizer thread is
15278         finishing up, because the default domain has already been
15279         destroyed.
15280
15281 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15282
15283         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15284         value is null, we should throw an exception.   This is slightly
15285         different than the other conventions used for the constructor.
15286
15287 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15288
15289         * socket-io.c: fixed windows build.
15290
15291 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15292
15293         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15294
15295 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15296
15297         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15298         compilers.
15299
15300 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15301
15302         * class.c (mono_class_layout_fields): Add experimental GC aware
15303         auto layout facility. Requires class library changes to work correctly.
15304
15305         (mono_class_setup_vtable): Avoid overriding explicit interface
15306         method implementations. Fixes iface3.exe test.
15307
15308         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15309         object reference.
15310         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15311         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15312
15313         * metadata.h: Add new type classification macro which determines
15314         whenever the type holds an object reference.
15315
15316 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15317
15318         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15319
15320 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15321
15322         * gc.c (finalizer_thread): Work around a GC bug.
15323
15324 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15325
15326         * marshal.c (emit_struct_conv): allow unions
15327
15328         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15329
15330 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15331
15332         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15333
15334 2003-05-06  Martin Baulig  <martin@ximian.com>
15335
15336         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15337
15338 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15339
15340         * socket-io.c:
15341         (Select_internal): allow NULLs, don't create arrays if not needed.
15342         Coupled with Socket.cs changes.
15343
15344         * threadpool.c:
15345         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15346         register a finalizer for it that will close the semaphore handle. This
15347         fixes the leak and make Lupus' test run with > 4080 loops.
15348
15349 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15350
15351         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15352         Jerome Laban (bug #42287)
15353
15354 2003-05-02  Martin Baulig  <martin@ximian.com>
15355
15356         * debug-mono-symfile.h
15357         (MonoSymbolFile): Moved declaration into mono-debug.h.
15358         (MonoDebugMethodJitInfo): Likewise.
15359         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15360         argument.
15361         (_mono_debug_address_from_il_offset): Take a
15362         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15363
15364         * mono-debug.h
15365         (MonoDebugDomainData): New struct.
15366         (mono_debug_get_domain_data): New function.
15367         (mono_debug_add_method): Take an additional `MonoDomain *'
15368         argument.
15369         (mono_debug_source_location_from_address): Likewise.
15370         (mono_debug_il_offset_from_address): Likewise.
15371         (mono_debug_address_from_il_offset): Likewise.
15372
15373 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15374
15375         * reflection.c: one more check for null type in custom attrs.
15376
15377 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15378
15379         * reflection.c: avoid warning (comparison is always false due to limited
15380         range of data type).
15381
15382 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15383
15384         * icall.c: throw an exception in Type.GetField if the argument 'name'
15385         is NULL.
15386
15387 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15388
15389         * reflection.c: fixed handling of enums in named arguments to custom
15390         attributes (bug #42123).
15391
15392 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15393
15394         * reflection.c: use the right array element type and handle
15395         a null for a Type argument, too.
15396
15397 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15398
15399         * reflection.c: handle arrays as arguments to custom attributes.
15400
15401 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15402
15403         * reflection.c: handle a string value in a custom attr
15404         ctor that takes an object.
15405
15406 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15407
15408         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15409         (fix bug #42063)
15410
15411 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15412
15413         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15414
15415 2003-04-27  Martin Baulig  <martin@ximian.com>
15416
15417         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15418         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15419         MONO_DEBUGGER_EVENT_BREAKPOINT.
15420         (mono_breakpoint_trampoline_code): Removed.
15421         (mono_debugger_event_handler): The last argument is now a
15422         `guint32'.
15423         (mono_debugger_insert_breakpoint_full): Removed the
15424         `use_trampoline' argument.
15425         (mono_debugger_method_has_breakpoint): Likewise.
15426         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15427         mono_debugger_breakpoint_callback(); take the method and
15428         breakpoint number as arguments.
15429
15430 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15431
15432         * metadata.c: fix off by one when loading parameters attributes.
15433
15434 2003-04-24  Martin Baulig  <martin@ximian.com>
15435
15436         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15437
15438 2003-04-24  Martin Baulig  <martin@ximian.com>
15439
15440         * mono-debug-debugger.c: Moved all code which interacts with the
15441         Mono Debugger here.
15442
15443         * debug-mono-symfile.c: This code now just deals with the symbol
15444         file itself, the debugger code is now in mono-debug-debugger.c.
15445
15446 2003-04-23  Martin Baulig  <martin@ximian.com>
15447
15448         * mono-debug.c (mono_debug_source_location_from_il_offset):
15449         New method; like mono_debug_source_location_from_address(), but
15450         takes an IL offset instead of a machine address.
15451
15452 2003-04-23  Martin Baulig  <martin@ximian.com>
15453
15454         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15455         `line' field; this is now computed by the debugger.
15456
15457 2003-04-23  Martin Baulig  <martin@ximian.com>
15458
15459         * mono-debug.[ch]: New files.  This is the new debugging interface.
15460
15461         * mono-debug-debugger.[ch]: New files.  Moved all code which
15462         interacts with the Mono Debugger here.
15463
15464 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15465
15466         * domain.c (mono_init): initialize mono_defaults.monitor_class
15467
15468 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15469
15470         * reflection.c (method_encode_code): Add a spicy exception to help
15471         future compiler authors.
15472
15473 2003-04-21  Martin Baulig  <martin@ximian.com>
15474
15475         * icall.c
15476         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15477         Make this work with relative pathnames; g_filename_to_uri() needs
15478         an absolute filename.
15479
15480 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15481
15482         * icall.c: Track name changes in Object and ValueType.
15483
15484 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15485
15486         * metadata.c (mono_type_stack_size): size should be a multiple of
15487         sizeof (gpointer)
15488
15489 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15490
15491         * gc.c:
15492         (internal_domain_finalize): moved into mono_domain_finalize. No need
15493         to create another thread because the finalizers will be run in the
15494         finalizer thread.
15495         
15496         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15497         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15498         to be run (MS does this too).
15499
15500 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15501
15502         * object.c (mono_class_compute_gc_descriptor): Update comment.
15503
15504         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15505
15506         * image.h: Add synchronized wrapper cache.
15507
15508         * image.c (do_mono_image_open): Initialize cache.
15509
15510         * reflection.c (create_dynamic_mono_image): Initialize cache.
15511
15512 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15513
15514         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15515         ves_icall_System_Buffer_ByteLengthInternal.
15516
15517 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15518
15519         * reflection.c: setup klass->nested_in earlier. Allow
15520         a dash in the assembly name.
15521
15522 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15523
15524         * metadata.c (mono_type_to_unmanaged): dont access
15525         type->data.klass for MONO_TYPE_OBJECT
15526         (mono_type_to_unmanaged): consider System.Delegate class
15527
15528 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15529
15530         * class.c: just setup supertypes in the proper place instead of
15531         initializing the full element class for arrays.
15532
15533 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15534
15535         * class.c: ensure the element class of arrays is initialized.
15536         Setup the supertype info for array classes, too.
15537
15538 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15539
15540         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15541
15542 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15543
15544         * Makefile.am: re-added -m option when running cygpath. This way,
15545         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15546         separator.
15547         * mono-config.c: same codepath for locating mono config file for WIN32
15548         and the rest.
15549         * assembly.c: if mono_assembly_setrootdir is called, don't override
15550         the value set.
15551
15552 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15553
15554         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15555         MONO_ASSEMBLIES variable.
15556
15557 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15558
15559         * icall.c: added Assembly::GetNamespaces() icall.
15560
15561 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15562
15563         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15564
15565 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15566
15567         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15568         * object.c: fixed bug in the construction of vtable for proxies
15569
15570 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15571
15572         * object.c (mono_array_new): Mark mono_array_new as an icall.
15573
15574 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15575
15576         * class.c: fixed test for public method when overriding interfaces.
15577         Closes bug #40970.
15578
15579 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15580
15581         * appdomain.h, domain.c: added mono_domain_foreach() to
15582         be able to access the currently loaded appdomains.
15583         * object.c: make string interning work across sppdomains.
15584         Mark some functions for use as icalls.
15585
15586 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15587
15588         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15589
15590         * reflection.h reflection.c: Allocate long living data using 
15591         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15592
15593         * reflection.c: Double the allocation size in streams instead of
15594         increasing it, to prevent unneccesary copying on large assemblies.
15595         
15596         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15597         creation if the assembly does not have the Run flag set.
15598
15599 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15600
15601         * class.h: avoid the C++ keywords in header files (Jerome Laban
15602         spotted and fixed this).
15603
15604 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15605
15606         * object.c:
15607         (mono_unhandled_exception): fill in the arguments for the
15608         UnhandledException event. Only trigger that event for the default
15609         domain (as MS does).
15610
15611 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15612
15613         * object.c: Improve typed allocation stuff based on suggestions from
15614         Paolo. Also turn it on if the GC library supports it.
15615
15616 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15617
15618         * object.c object.h class.h: Added experimental typed allocation
15619         facility using the interfaces in gc_gcj.h.
15620
15621         * os/gc_wrapper.h: Added new include files.
15622         
15623 2003-04-03  Martin Baulig  <martin@ximian.com>
15624
15625         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15626         which is not yet enabled by default.
15627
15628         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15629         functions.
15630         (mono_gc_lock, mono_gc_unlock): New static functions.
15631
15632         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15633         functions; stop/start the world for the garbage collector.  This
15634         is using the windows API; we need to complete the SuspendThread()/
15635         ResumeThread() implementation in the io-layer to make this work on Unix.
15636         (mono_gc_push_all_stacks): New public function; tells the garbage
15637         collector about the stack pointers from all managed threads.
15638
15639 2003-04-03  Martin Baulig  <martin@ximian.com>
15640
15641         * object.h (MonoThread): Added `gpointer stack_ptr'.
15642
15643         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15644
15645 2003-04-03  Martin Baulig  <martin@ximian.com>
15646
15647         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15648
15649 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15650
15651         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15652         field.last.
15653
15654 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15655
15656         * loader.c (mono_lookup_internal_call): Report the corlib that is
15657         out of sync.
15658
15659 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15660
15661         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15662         System.DBNull (it's class not valuetype).
15663
15664 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15665
15666         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15667         if the array method was already assigned a token (fixes bug#40646).
15668
15669 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15670
15671         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15672         if no assembly is given.
15673
15674 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15675
15676         * metadata.h: Added the new tables.
15677
15678         * row-indexes.h: Added definitions for new tables.
15679
15680         * metadata.c: Add schemas for new tables, and add support for
15681         computing the sizes of them.
15682
15683         * class.c: Update for handling the new type cases.
15684
15685 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15686
15687         * metadata.h (MONO_TYPE_IS_VOID): new macro
15688
15689 2003-03-31  Martin Baulig  <martin@ximian.com>
15690
15691         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15692
15693         * threads.c (mono_thread_new_init): Call `thread_created' in the
15694         mono_thread_callbacks.
15695
15696 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15697
15698         * loader.h: added marshalbyrefobject_class to mono_defaults
15699         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15700         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15701           generation of output parameters.
15702           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15703         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15704           contextbound and the target object belongs to the context of the caller.
15705         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15706         * object.c: Implemented support for interfaces and abstract classes
15707           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15708           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15709
15710 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15711
15712         * class.h class.c (mono_class_is_subclass_of): New function.
15713         
15714         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15715         routines for most common case (calls from ArrayList::ToArray).
15716
15717         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15718         routine so programs which call Environment::Exit() can be profiled.
15719
15720         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15721         Added MONO_ARCH_SAVE_REGS.
15722
15723         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15724
15725 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15726
15727         * blob.h: Add a couple of new MonoType types definitions.
15728
15729         * tabledefs.h: Add a couple of new call convs.
15730
15731 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15732
15733         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15734         the layout of the class.
15735
15736         * reflection.c (alloc_table): double the size on overflow to avoid
15737         unnecessary copying.
15738
15739         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15740         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15741         null so it can be garbage collected.
15742         
15743 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15744
15745         * reflection.c (mono_reflection_get_type): Return the resolved type
15746         only if it is in the assembly we searched.
15747
15748         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15749
15750         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15751         method.
15752
15753 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15754
15755         * appdomain.c:
15756         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15757         the right one is 'file:///blah', but MS allows it.
15758         * assembly.c:
15759         (mono_assembly_open): allow 'file://blah'
15760
15761         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15762
15763 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15764
15765         * socket-io.c: fixes bug #40310.
15766
15767 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15768
15769         * reflection.c (mono_reflection_parse_type): handle deeply nested
15770         types correctly.
15771
15772         * reflection.c (mono_image_create_token): Use unique token values
15773         since they will be put into a hash table.
15774
15775         * class.c (mono_class_setup_vtable): If a method occurs in more than
15776         one place in the vtable, and it gets overriden, then change the
15777         other occurances too.
15778
15779         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15780         object as return type.
15781
15782 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15783
15784         * icall.c: Deleted "ToString" implementation for double and float
15785         because they are full implemented in managed code.
15786
15787 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15788
15789         * reflection.c, reflection.h: implemented and exported functions
15790         to retrieve info about custom attributes.
15791
15792 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15793
15794         * appdomain.c: moved Uri handling to assembly.c
15795         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15796         work when using a file Uri in *nix and windows.
15797
15798         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15799         GetReferencedAssemblies.
15800
15801 2003-03-18  Dick Porter  <dick@ximian.com>
15802
15803         * icall.c: Rename a couple of internal calls
15804
15805         * threads.c: Set the thread state to Stopped when a thread exits.
15806         Fixes bug 39377.
15807
15808 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15809
15810         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15811         New icall.
15812
15813         * object.c (mono_class_vtable): fix warning.
15814
15815 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15816
15817         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15818
15819         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15820         memory.
15821         (method_encode_clauses): Create exception info structures in the right
15822         order.
15823         (mono_reflection_setup_internal_class): Initialize supertypes field.
15824
15825         * class.c object.c: Handle interfaces which implement other interfaces 
15826         correctly.
15827
15828         * class.h class.c: Move the supertypes array initialization code into 
15829         a separate function so it can be used for dynamic types too. Also call
15830         it earlier, in mono_class_init(), since it can be used before the
15831         type is initialized.
15832
15833 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15834
15835         * Makefile.am:
15836         * assembly.c:
15837         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15838
15839         * appdomain.c:
15840         * appdomain.h:
15841         * marshal.c:
15842         * object.c: remove warnings.
15843
15844 2003-03-13  Martin Baulig  <martin@ximian.com>
15845
15846         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15847         (MonoDebugLexicalBlockEntry): New types.
15848
15849         * debug-mono-symfile.c
15850         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15851
15852 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15853
15854         * process.c: ret can be any non-zero value accroding to MS doc.
15855
15856 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15857
15858         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15859         fixing a warning for a miss-used prototype, would have cause
15860         random memory corruption.
15861
15862 2003-03-07  Martin Baulig  <martin@ximian.com>
15863
15864         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15865         getting really annoying ....
15866
15867 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15868
15869         * reflection.c (fixup_method): added support for array methods.
15870
15871 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15872
15873         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15874         (pointed out by Michael Adams).
15875
15876 2003-03-04  Dick Porter  <dick@ximian.com>
15877
15878         * icall.c: Temporarily reverted the Double and Single ToString()
15879         change, because it broke nunit.
15880
15881 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15882
15883         * object.h, threads.h: make include files compatible with C++
15884         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15885
15886 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15887
15888         * icall.c: Erased ToString helper functions for Double and Single.
15889         Now, that implementations ar all in managed code (Double and Single
15890         Formatters).
15891
15892 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15893
15894         * appdomain.c: Added method for initializing the default context of
15895         a domain. Added internal call for getting the default context.
15896         * appdomain.h: Added context variable in MonoDomain struct.
15897         * domain.c: mono_domain_set also sets the default context of the domain
15898         * icall.c: Mapped internal method InternalGetDefaultContext.
15899         * object.c: mono_object_get_virtual_method returns always a remoting
15900         wrapper if the object is a transparent proxy.
15901         mono_runtime_invoke_array: when creating an object by calling the
15902         constructor, if the created object is a proxy, then the constructor should
15903         be called using the a remoting wrapper.
15904
15905 2003-03-03  Dick Porter  <dick@ximian.com>
15906
15907         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15908         variable so it compiles on solaris.  Problem spotted by
15909         Christopher Taylor <ct@cs.clemson.edu>
15910
15911 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15912
15913         * appdomain.c:
15914         (get_info_from_assembly_name): don't leak value.
15915
15916         * icall.c:
15917         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15918         result.
15919
15920 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15921
15922         * assembly.c: export mono_image_load_references ().
15923         * class.c: handle function pointers. mono_class_from_name() now
15924         supports nested type names directly.
15925
15926 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15927
15928         * reflection.h reflection.c: Encode already created dynamic methods 
15929         and fields correctly as a DEF instead of a REF.
15930
15931         * reflection.c: Get rid of the force_ref argument to 
15932         mono_image_typedef_or_ref since it was wrong in the first place.
15933
15934         * string-icalls.c: add error checking to string constructors according
15935         to the MSDN docs.
15936
15937         * reflection.c: Emit types in the order their TypeBuilders were 
15938         created. Previously, a new table index was assigned to each type before
15939         the tables were emitted. This was wrong because the signature blob
15940         might already refer to a type by its original table index.
15941
15942 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15943
15944         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15945         change.
15946         
15947 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15948
15949         * Makefile.am: make assemblies dir have \ instead of / on windows.
15950
15951 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15952
15953         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15954         iterate over the NESTEDCLASS table using a linear search since the
15955         table is not guaranteed to be sorted by the secondary key.
15956
15957         * class.c (mono_class_create_from_typedef): fixed up call to
15958         mono_metadata_nesting_typedef.
15959         
15960 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15961
15962         * marshal.c (mono_string_to_byvalstr): clear the memory as
15963         suggested by Jerome Laban <jlaban@wanadoo.fr>
15964
15965 2003-02-26  Dick Porter  <dick@ximian.com>
15966
15967         * process.c: Cope with padding in .rsrc blocks
15968
15969 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15970
15971         * metadata.h: reverted the filter_len change, it breaks reflection
15972         
15973 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15974
15975         * metadata.h: added a new field to store the filter_len
15976         
15977
15978 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15979
15980         * reflection.c: handle custom attributes for types and members
15981         created with Reflection.Emit (bug#38422).
15982
15983 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15984
15985         * reflection.c: define RTSpecialName automatically for constructors for
15986         compatibility with MS.NET.
15987
15988         * reflection.c (mono_reflection_create_runtime_class): initialize
15989         nested_in field of dynamically created classes.
15990
15991 2003-02-22  Martin Baulig  <martin@ximian.com>
15992
15993         * debug-mono-symfile.h: Incremented version number.
15994
15995 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15996
15997         * object.h icall.c process.c: fix warnings.
15998
15999 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16000
16001         * appdomain.h appdomain.c:
16002         (mono_domain_try_type_resolve): split the 
16003         name_or_tb argument into a name and a tb argument.
16004         (mono_domain_has_type_resolve): new function to check whenever the
16005         application has registered a TypeResolve event handler.
16006         
16007         * icall.c reflection.h reflection.c: move the type resolve logic into
16008         mono_reflection_get_type () so it will be invoked when 
16009         Assembly::GetType () is called.
16010
16011         * reflection.c:
16012         (mono_reflection_get_type): renamed to get_type_internal.
16013         (mono_reflection_get_type): fixed type name generation so it works 
16014         for nested types too.
16015         (mono_reflection_get_type): call has_type_resolve () to avoid the 
16016         costly type name generation if there is no resolve event handler.
16017
16018 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16019
16020         * class.c, image.c: load exported types from file references.
16021
16022 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
16023
16024         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16025           used to cache the managed methods used to create proxies and make 
16026           remote invocation of methods.
16027         * class.h: Added in MonoVTable a flag to indicate that a class needs 
16028           to be remotely created.
16029         * object.c: Modified the method mono_class_vtable(). It now initializes 
16030           the remote flag of the vtable. Modified mono_object_new_specific(), 
16031           so now it checks the remote flag.
16032         * icall.c: Added a couple of internal methods, one for enabling instance 
16033           creation interception for a type, and one for creating objects bypassing
16034           the remote check.
16035
16036 2003-02-18  Martin Baulig  <martin@ximian.com>
16037
16038         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16039         New interncall to get a method's metadata token.
16040
16041         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16042         New interncall for the debugger.
16043
16044 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16045
16046         * class.c (mono_class_setup_vtable): allocate supertype array
16047
16048 2003-02-18  Martin Baulig  <martin@ximian.com>
16049
16050         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16051
16052 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16053
16054         * reflection.c:
16055         (assembly_name_to_aname): jump over unknown properties (i've found
16056         something like: 'type, assembly, version=xxx, custom=null, public...',
16057         so now will ignore custom=null and still get the rest of the values).
16058
16059 2003-02-17  Dick Porter  <dick@ximian.com>
16060
16061         * threads.c: Have Thread.Start() wait for a semaphore to signal
16062         that the thread has set up all its local data.  This fixes bug
16063         34323, where Abort() raced the new thread's TLS data.
16064
16065         Also removes the handle_store() call from start_wrapper, because
16066         threads are now always created suspended and there is no longer a
16067         race between the parent and child threads to store the info.
16068
16069 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16070
16071         * image.c: explain the #- heap issue in a message, hopefully
16072         avoiding FAQs on mono-list.
16073
16074 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16075
16076         * icall.c:
16077         (GetEntryAssembly): if the domain has not invoked
16078         AppDomain.ExecuteAssembly yet, return the assembly of the default
16079         AppDomain.
16080
16081 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16082
16083         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16084
16085 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16086
16087         * metadata.c, reflection.c: simple speedup to type hash
16088         and equals code.
16089
16090 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16091
16092         * image.c, image.h, class.c, assembly.c: move module loading
16093         to MonoImage. When loading metadata, consider alignemnet from
16094         the start of metadata, not from the metadata address in memory.
16095
16096 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16097
16098         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16099         AssemblyBuilder objects. Factored out custom attribute creation into
16100         a separate function.
16101         (create_custom_attr): new function to create custom attributes.
16102
16103 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16104
16105         * Makefile.am: Got tired of typing the full pathname to pedump.
16106         Until there is another option, am installing this.
16107
16108 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16109
16110         * class.c (class_compute_field_layout): always set field->parent 
16111         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16112
16113 2003-02-11  Dick Porter  <dick@ximian.com>
16114
16115         * threads-types.h:
16116         * monitor.c: Rewrote Monitor, making lock much faster and
16117         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16118         creates them as needed.
16119
16120         * exception.c: Added SynchronizationLockException
16121
16122         * threads.c: Deleted old Monitor implementation.  The new one is
16123         in a new file.
16124
16125 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16126
16127         * class.c: handled TypedReference type code. Set the correct size for
16128         class data. Setup interface_offsets for interface classes, too.
16129
16130 2003-02-09  Martin Baulig  <martin@ximian.com>
16131
16132         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16133
16134 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16135
16136         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16137         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16138         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16139         * verify.c: check for code that runs after the end of the method.
16140
16141 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16142
16143         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16144         "System.Math::Round2".
16145         * sysmath.h: Added Floor, Round and Round2 definitions.
16146         * sysmath.c: Modified certain functions that were not 100% compliant
16147         with MS.NET (math precision) and added the implementation of Floor,
16148         Round and Round2.
16149
16150 2003-02-07  Martin Baulig  <martin@ximian.com>
16151
16152         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16153
16154 2003-02-07  Martin Baulig  <martin@ximian.com>
16155
16156         * debug-mono-symfile.c: Reflected latest symwriter changes.
16157         (mono_debug_create_mono_symbol_file): Removed.
16158         (mono_debug_open_mono_symbol_file): Take an argument which
16159         specifies whether to create a dynamic symbol file.
16160
16161 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16162
16163         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16164
16165 2003-02-05  Martin Baulig  <martin@ximian.com>
16166
16167         * reflection.c (mono_image_build_metadata): Make this public,
16168         protect it against being called multiple times, don't create
16169         resources and don't build the compressed metadata here.
16170         (mono_image_create_pefile): Do this here.
16171
16172         * icall.c
16173         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16174
16175 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16176
16177         * socket-io.c: fixed bug #36322.
16178
16179 2003-02-06  Piers Haken <piersh@friskit.com>
16180
16181         * appdomain.[ch]:
16182         * class.h:
16183         * debug-mono-symfile.c:
16184         * icall.c:
16185         * loader.c:
16186         * mono-config.c:
16187         * monosn.c:
16188         * reflection.c:
16189         * socket-io.c: warning cleanups
16190
16191 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16192
16193         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16194         function. works like remoting invoke, but does a check for the Proxy first.
16195
16196 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16197
16198         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16199
16200 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16201
16202         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16203         array of pointers.
16204         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16205         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16206
16207         * object.c (mono_store_remote_field_new): used by the new jit
16208         instead of mono_store_remote_field
16209         (mono_load_remote_field_new): used by the new jit
16210         instead of mono_load_remote_field
16211
16212 2003-02-05  Patrik Torstensson
16213
16214         * appdomain.c: changed unload to take the domain id instead
16215         of domain
16216         
16217         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16218
16219
16220 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16221
16222         * appdomain.c: don't look for assemblies in ApplicationBase if
16223         PrivateBinPathProbe is set.
16224
16225 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16226
16227         * object.c: make the first argument in main_args contain the absolute
16228         path to the assembly. Fixes bug #37511.
16229
16230 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16231
16232         * icall.c: get correct UTC offset for countries not using daylight
16233         time saving. Fixes bug #30030.
16234
16235 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16236
16237         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16238         and 1 are the family).
16239
16240 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16241
16242         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16243
16244         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16245
16246 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16247
16248         * reflection.c: added support for SignatureHelper tokens, which is
16249         needed by the Calli opcode.
16250
16251         * reflection.h: track changes to SignatureHelper class.
16252
16253         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16254
16255 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16256
16257         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16258
16259 2003-02-03  Patrik Torstensson
16260         * appdomain.[c|h], domain.c : 
16261          - Added support for getting a domain via domain id
16262          - Support for setting and getting domain from System.AppDomain 
16263            (used in cross appdomain channel)
16264          - Added support for get/set for a MonoAppContext on a thread 
16265            (Context class in System.Runtime.Remoting.Contexts),
16266          - Removed hack in Get/SetData and ExecuteAssembly.
16267         
16268         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16269         the managed world to get control when a proxy is created.
16270
16271         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16272         
16273 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16274
16275         * icall.c
16276         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16277         Populate the codebase field as well.
16278
16279 2003-02-02  Martin Baulig  <martin@ximian.com>
16280
16281         * debug-mono-symfile.c
16282         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16283         (mono_debug_symfile_add_method): Allow interncalls.
16284
16285 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16286
16287         * icall.c: throw parse exception if strtod fails or the string is empty.
16288
16289 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16290
16291         * marshal.c: handle object type separately from defined
16292         class types.
16293
16294 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16295
16296         * marshal.c: handle NATIVE_LPSTR for strings when it's
16297         explicitly specified.
16298
16299 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16300
16301         * reflection.c, reflection.h, icall.c: setup the reflection
16302         handle cache for ModuleBuilders and AssemblyBuilders.
16303
16304 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16305
16306         * reflection.c (reflection_methodbuilder_to_mono_method): set
16307         pinvoke flag
16308
16309 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16310
16311         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16312
16313 2003-01-29  Dick Porter  <dick@ximian.com>
16314
16315         * threads.c: No need for the fake_thread kludge now that Thread
16316         doesn't run a class constructor
16317         
16318 2003-01-29  Dick Porter  <dick@ximian.com>
16319
16320         * threads.c: Use g_direct_hash instead of the rather bogus
16321         g_int_hash
16322
16323 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16324
16325         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16326         (fix pinvoke12.exe)
16327         (mono_marshal_get_struct_to_ptr): generate valid IL code
16328         (mono_marshal_get_ptr_to_struct): generate valid IL code
16329         (*): correctly set sig->pinvoke, we need to memdup the signature
16330         to do that
16331
16332 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16333
16334         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16335         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16336
16337 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16338
16339         * profiler.c: provide more callers information.
16340
16341 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16342
16343         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16344
16345         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16346
16347         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16348
16349 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16350
16351         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16352         exception instead of going into an infinite loop on dates which it 
16353         can't yet handle.
16354
16355         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16356         out-of-range exception if needed.
16357
16358         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16359         an implementation for an interface method and to override an inherited
16360         method at the same time. 
16361         Imagine a scenario when a virtual method is used to override a
16362         virtual abstract method in a parent class, and this same method 
16363         provides an implementation for an method inherited from an interface. 
16364         In this case, the interface resolution code will set im->slot, which 
16365         means that the virtual method override pass will skip this method 
16366         which means a pointer to the abstract method inherited from the parent
16367         will remain in the vtable of this non-abstract class.
16368
16369         * class.c: (mono_class_setup_vtable): continue search for a real 
16370         method if only an abstract method is found.     
16371
16372 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16373
16374         * reflection.c: add size to encoding for ByValStr and ByValArray
16375         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16376
16377 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16378
16379         * class.c (mono_class_setup_vtable): pass the override info as an
16380         argument.
16381
16382         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16383         correctly.
16384         
16385         * reflection.c (ensure_runtime_vtable); add support for method 
16386         overrides.
16387         
16388 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16389
16390         * reflection.c (resolution_scope_from_image): Hack to work to work with
16391         dynamic assemblies.
16392
16393         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16394         added a 'force_ref' argument to force this function to allways return 
16395         a TypeRef. This is needed by mono_image_get_memberref_token ().
16396         
16397 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16398
16399         * reflection.c (mono_image_get_type_info): interfaces really don't have
16400         a parent.
16401
16402         * reflection.c (mono_image_basic_init): fill out missing fields of
16403         image structure.
16404
16405         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16406         dynamic assemblies. This is required so dynamic assemblies show up in
16407         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16408         Type::GetType() etc. This is consistent with MS behaviour.
16409
16410         * image.c image.h reflection.c: add newly created classes to the name 
16411         cache so mono_class_get () will find them.      
16412
16413 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16414
16415         First part of changes to get IKVM.NET running under mono.
16416         
16417         * appdomain.h, appdomain.c: added new function 
16418         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16419         This function will call AppDomain::DoTypeResolve to do the actual work.
16420
16421         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16422         moved existing code dealing with dynamic tokens to a new function 
16423         called mono_reflection_lookup_dynamic_token (). This function will 
16424         raise TypeResolve events when appropriate. Since reflection.c is not 
16425         part of libmetadata, a new hook function called 
16426         mono_lookup_dynamic_token() is added to class.c which will call this.
16427
16428         * assembly.h assembly.c: make the invoke_load_hook function public,
16429         so it can be called for dynamic assemblies.
16430
16431         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16432
16433         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16434         type isn't found.
16435
16436         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16437         MonoGHashTable, since it contains pointers to objects which the GC 
16438         needs to track.
16439
16440         * assembly.c (search_loaded): remove unused variable.
16441         
16442 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16443
16444         * object.c: fixed issue exposed by gcc-generated IL programs
16445         that use RVA data for pointers.
16446
16447 2003-01-25  Martin Baulig  <martin@ximian.com>
16448
16449         * threads.c (start_wrapper): Moved the initialization of
16450         `start_func' above the mono_new_thread_init() call to which we
16451         pass it as argument.
16452
16453 2003-01-24  Martin Baulig  <martin@ximian.com>
16454
16455         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16456         the MonoThread pointer.
16457
16458 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16459
16460         * icall.c: Rename `PowImpl' to Pow.
16461
16462 2003-01-23  Dick Porter  <dick@ximian.com>
16463
16464         * threads.c (start_wrapper): Create a Thread object if needed, so
16465         the Main() thread can do the class initialisation in a subthread
16466         that has been set up to allow managed code execution.
16467
16468         Pass the thread ID instead of the MonoThread pointer to the thread
16469         start and attach callbacks.  This change is required, because the
16470         jit thread start callback must be called _before_ the Thread
16471         object can be created.
16472         
16473         (mono_thread_init): Removed much object creation code that is no
16474         longer needed.  No managed code is called from here now.
16475
16476         * object.c (mono_runtime_exec_managed_code): Create a subthread
16477         for Main, and call back to the runtime to use it.
16478         Set the exit code when Main exits.
16479
16480         * gc.c: Make sure domain finalisation happens in a subthread.
16481         Re-enable threaded GC, fixing bug 31333 (again).
16482
16483         * environment.c: System.Environment internall calls (so far just
16484         ExitCode is here, the others are still in icall.c)
16485
16486         * appdomain.c (mono_runtime_cleanup): All threads running managed
16487         code should have finished before mono_runtime_cleanup() is
16488         reached, so no need to clean up threads.
16489
16490 2003-01-22  Martin Baulig  <martin@ximian.com>
16491
16492         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16493         `gpointer func' arguments.      
16494         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16495         but added `MonoThread *thread' argument.
16496         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16497
16498         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16499         and pass it to the mono_thread_start_cb callback.
16500         (mono_install_thread_callbacks): New public function to install a
16501         set of callbacks which are set by the debugger.
16502         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16503
16504 2003-01-22  Martin Baulig  <martin@ximian.com>
16505
16506         * Makefile.am: Install debug-mono-symfile.h.
16507
16508 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16509
16510         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16511
16512 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16513
16514         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16515         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16516         (mono_array_class_get): correctly set access levels of arrays
16517
16518 2003-01-20      Patrik Torstensson
16519         * image.h (MonoAssemblyName): changed major, minor, build, revision
16520         from signed to unsigned.
16521
16522 2003-01-20  sean kasun <skasun@azstarnet.com>
16523
16524         * reflection.c (load_cattr_value): Now this handles
16525         MONO_TYPE_SZARRAY.  Fixes bug #35629
16526
16527 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16528
16529         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16530         integer value
16531
16532 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16533
16534         * decimal.c: fixed bug #26056.
16535
16536 2003-01-17  Martin Baulig  <martin@ximian.com>
16537
16538         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16539
16540 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16541
16542         * exception.[ch]:
16543         (mono_get_exception_type_initialization): new function.
16544
16545         * object.c: throw a TypeInitializationException when an exception is
16546         thrown invoking the class constructor.
16547
16548 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16549
16550         * reflection.c: fixed attribute reading.
16551
16552 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16553
16554         * icall.c:
16555         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16556         provided, look for the type in the calling assembly and then in
16557         mscorlib; if the assembly name is provided, only try that one.
16558
16559 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16560
16561         * object.c: register the vtable before there is a chance it's
16562         queried again recursively.
16563
16564 2003-01-13  Duncan Mak  <duncan@ximian.com>
16565
16566         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16567         gc-internal.h. 
16568         
16569 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16570
16571         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16572
16573 2003-01-11  Martin Baulig  <martin@ximian.com>
16574
16575         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16576         this to 20 for the release.
16577
16578 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16579
16580         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16581
16582         * loader.c (mono_method_get_marshal_info): bug fix
16583
16584         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16585         structures with explicit layout
16586
16587 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16588
16589         * profiler.c: made the output more readable (and sorted). 
16590         Added caller information for the allocation profiler.
16591
16592 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16593
16594         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16595
16596 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16597
16598         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16599         to get value types.
16600         
16601 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16602
16603         * object.c, profiler.h, profiler.c, profiler-private.h:
16604         Added object allocation profiler.
16605
16606 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16607
16608         * reflection.h, reflection.c: handle global methods.
16609         Compress blob entries.
16610
16611 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16612
16613         * marshal.c: fix compilation.
16614
16615 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16616
16617         * loader.c (mono_method_get_marshal_info): impl.
16618
16619         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16620
16621 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16622
16623         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16624         for reference types.
16625
16626 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16627
16628         * loader.c: fixed off by one error in loaded parameter names.
16629
16630 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16631
16632         * marshal.c (mono_marshal_get_icall_wrapper): like
16633         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16634         instead of a MonoMethod.
16635
16636 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16637
16638         * decimal.c: fixed bug #36537.
16639
16640 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16641
16642         * marshal.c: throw a missing method exception if a
16643         P/Invoke method is not found.
16644
16645 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16646
16647         * icall.c: allow a null this for constructors.
16648
16649 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16650
16651         * icall.c: raise the proper exceptions if the arguments to the
16652         internal Invoke are incorrect.
16653
16654 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16655
16656         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16657
16658 2003-01-03  Martin Baulig  <martin@ximian.com>
16659
16660         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16661
16662 2002-12-31  Martin Baulig  <martin@ximian.com>
16663
16664         * debug-mono-symfile.c: Completely rewrote the type section.
16665         Instead of using individual malloc()ed fields, we use one big
16666         continuous memory area and offsets into this area.
16667         See the comments in the source code for details.
16668
16669 2002-12-30  Martin Baulig  <martin@ximian.com>
16670
16671         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16672
16673 2002-12-30  Martin Baulig  <martin@ximian.com>
16674
16675         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16676         line number table in this data blob instead of using an external
16677         pointer.
16678
16679 2002-12-28  Martin Baulig  <martin@ximian.com>
16680
16681         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16682
16683 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16684
16685         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16686         as a boxed return type.
16687
16688 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16689
16690         * appdomain.c
16691         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16692         g_build_filename to properly get separators on the filename created.
16693
16694         * object.h: Small change, introduce MonoMarshalByRefObject to
16695         track the layout of that structure in the C# universe as we make
16696         changes there.
16697
16698 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16699
16700         * object.c: removed assert to allow static fields on interfaces.
16701         * loader.c: a TypeSpec may be used for any type, not just arrays.
16702
16703 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16704
16705         * class.c, class.h: added mono_class_array_element_size ().
16706         Ignore static methods in interfaces.
16707
16708 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16709
16710         * threads.c: fixed the build under cygwin.
16711
16712 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16713
16714         * reflection.c: handle nullref constants. Allocate keys for
16715         reflection handles with the GC.
16716
16717 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16718
16719         * threads.c, threads.h: added mono_thread_get_abort_signal()
16720         to get a suitable signal for thread abort.
16721
16722 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16723
16724         * metadata.c: fix handling of ExportedType table.
16725
16726 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16727
16728         * icall.c: added WriteWindowsDebugString internal call.
16729
16730 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16731
16732         * reflection.h: added fields to match C# implementation.
16733
16734 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16735
16736         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16737
16738 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16739
16740         * gc.h, gc-internal.h: Rename header for GC internal calls to
16741         gc-internal.h from gc.h as to not clash with Boehm GC having its
16742         header installed as <gc.h> in outside include paths.
16743         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16744         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16745
16746 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16747
16748         * icall.c: assign minor, build and revision in FillName.
16749
16750 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16751
16752         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16753         Added support for running code generated by Reflection.Emit.
16754
16755 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16756
16757         * appdomain.c: check for NULL argument in LoadFrom.
16758
16759 2002-12-10  Dick Porter  <dick@ximian.com>
16760
16761         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16762
16763 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16764
16765         * appdomain.c: fix buglet when building exe file name.  Handle full
16766         assembly name (needed after latest changes to AssemblyName).
16767         * image.c:
16768         (mono_image_close): free some hashtables.
16769
16770 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16771
16772         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16773         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16774         on some systems (redhat 7.3) 
16775
16776 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16777
16778         * threads.c: delete the critical section of a sync block,
16779         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16780
16781 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16782
16783         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16784
16785 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16786
16787         * appdomain.[ch]: handle the assembly preload event to try loading the
16788         assemblies using the paths we have in the current domain.
16789
16790         * assembly.[ch]: created an assembly preload hook that is called to try
16791         loading the assembly by other means that the ones provided here.
16792
16793         * domain.c: initialize the domain search path.
16794
16795         From now on, assemblies (TODO: except corlib and System) are loaded
16796         according to these rules when using mono_assembly_load ():
16797
16798                 1. It tries to load the assembly from the ApplicationBase
16799                 of the current domain appending .dll and .exe (TODO: have to
16800                 try loading from name/name.dll and name/name.exe).
16801
16802                 2. It tries the search path specified in PrivateBinPath for the
16803                 current domain (if any).
16804
16805                 3. Previous behavior.
16806
16807 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16808
16809         * icall.c: implemented GetInterfaceMap() related icall.
16810         * domain.c, loader.h: load MethodInfo in mono_defaults.
16811
16812 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16813
16814         * gc.c: disable the finalizer thread for now, untill all the issues
16815         with it are resolved.
16816
16817 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16818
16819         * string-icalls.c: handle embedded nulls in string ctor when the
16820         length is specified.
16821
16822 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16823
16824         * class.c: look for explicit interface implementation in parent
16825         classes, too.
16826
16827 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16828
16829         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16830
16831 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16832
16833         * gc.c: protect handles with a critical section.
16834
16835 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16836
16837         * icall.c:
16838         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16839         parameters. If no assembly specified, try getting the type from all
16840         the assemblies in the current domain, else, load the assembly and get
16841         the type from it.
16842
16843 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16844
16845         * marshal.c: applied patch from Aleksey Demakov that fixes
16846         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16847
16848 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16849
16850         * icall.c: fixed get_location.
16851
16852 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16853
16854         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16855         declarations to make it work with older gcc. 
16856
16857         * loader.c (mono_get_method): set signature->pinvoke for native calls
16858
16859 2002-11-20  Dick Porter  <dick@ximian.com>
16860
16861         * threads.c (mono_thread_init): Set the main thread's handle
16862
16863 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16864
16865         * gc.c: allow compilation without GC support. Changed to match the
16866         mono coding style.
16867
16868 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16869
16870         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16871
16872 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16873
16874         * reflection.c: set a public key token on the core assemblies.
16875
16876 2002-11-18  Dick Porter  <dick@ximian.com>
16877
16878         * threads.c: Split out some thread initialisation so that other
16879         files can set the start callback function.
16880
16881         * gc.c: Run finalisers in a separate thread, to avoid stack
16882         overflow.  Fixes bug 31333.
16883
16884         * appdomain.c: Set up GC finalisation thread.
16885
16886         * reflection.c: 
16887         * object.c: 
16888         * domain.c: Use gc.h macros for GC_malloc
16889         
16890 2002-11-15  Dick Porter  <dick@ximian.com>
16891
16892         * threadpool.c: 
16893         * threads.c:
16894         * appdomain.c: Removed mono_runtime_init_with_attach(),
16895         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16896         merging the extra parameter with the existing function.  Removed
16897         unneeded code in mono_thread_attach().
16898
16899 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16900
16901         * image.c (mono_image_loaded_by_guid): a method to get loaded
16902         images by guid. 
16903         (load_metadata_ptrs): we store the guid as string.
16904
16905 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16906
16907         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16908
16909         * metadata.c (mono_guid_to_string): imported method form Zoltan
16910         Varga (slightly modified)
16911
16912         * assembly.c (mono_assembly_open): load precompiled code
16913
16914         * loader.h (MonoMethod): we store the method token for use in the
16915         aot compiler. 
16916
16917 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16918
16919         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16920         the hook function called when an assembly is loaded.
16921         
16922         * domain.c: Modified file.
16923         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16924
16925         Fixes bug #33196.
16926
16927 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16928
16929         * reflection.c: Map PEFileKind to the value expected by the WinNT
16930         image loader. 
16931
16932 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16933
16934         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16935         Read until the buffer is filled completely.
16936
16937 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16938
16939         * icall.c: implemented MonoType.InternalGetEvent ().
16940
16941 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16942
16943         * appdomain.c: implemented InitAppDomainSetup. Delayed
16944         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16945         the entry_assembly.
16946
16947         * assembly.c: base_dir is now an absolute path ending with
16948         G_DIR_SEPARATOR.
16949
16950         * icall.c: modified get_location according to the above changes.
16951
16952         * object.c: init AppDomain.SetupInformation for the default domain after
16953         we have the entry assembly.
16954
16955         * domain.c: when unloading a domain, setup = NULL.
16956
16957 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16958
16959         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16960
16961 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16962
16963         * object.h, object.c: introduced mono_object_get_virtual_method ()
16964         to lookup the method invoked on an object when a callvirt is done on
16965         a method.
16966         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16967
16968 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16969
16970         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16971         current domain when loaded an assembly and failed to load it.
16972
16973         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16974
16975 2002-10-31  Dick Porter  <dick@ximian.com>
16976
16977         * icall.c: 
16978         * file-io.h: 
16979         * file-io.c: Return the error status in a parameter, as the
16980         GetLastError() value has long since been blown away if we try and
16981         look it up in a subsequent internal call invocation.  Delete the
16982         GetLastError() internal call, because it's useless.
16983
16984 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16985
16986         * class.[ch]: added cast_class to fix bug 29517
16987
16988 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16989
16990         * marshal.c: create valid IL code in the filter clause:
16991         the new JIT is less forgiving:-)
16992
16993 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16994
16995         * icall.c: removed get_property internal call.
16996
16997 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16998
16999         * appdomain.h domain.c: Added an ID to appdomains.
17000         
17001         * threads.c threads.h icall.c: Implement icall
17002         Thread:GetDomainID(), and remove unused icall 
17003         CurrentThreadDomain_internal.
17004
17005 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17006
17007         * icall.c: Don't recurse through the base types in GetConstructor.
17008         Fixes bug #32063. 
17009
17010 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17011
17012         * mempool.h, mempool.c: added mono_mempool_empty() and
17013         mono_mempool_stats().
17014
17015 2002-10-23  Dick Porter  <dick@ximian.com>
17016
17017         * file-io.c: 
17018         * file-io.h: 
17019         * icall.c: Added MonoIO.GetFileType internal call
17020
17021 2002-10-17  Dick Porter  <dick@ximian.com>
17022
17023         * appdomain.c (mono_runtime_cleanup): Don't signal the async
17024         delegate semaphore before waiting for all threads to finish,
17025         because new threads can also call async delegates.  Fixes bug
17026         32004.
17027
17028         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17029         of 3 seconds, in case another async job is queued.  (This part is
17030         needed because the bug fix reintroduced the 3s exit lag.)  This
17031         makes the mono_runtime_shutdown flag superfluous.
17032
17033 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17034
17035         * reflection.c: include ehader size in method section headers.
17036         Really check for suplicated modules entries.
17037
17038 2002-10-17  Martin Baulig  <martin@gnome.org>
17039
17040         * debug-mono-symfile.c: Added back support for locals.
17041
17042 2002-10-14  Martin Baulig  <martin@gnome.org>
17043
17044         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17045         MONO_TYPE_VOID.
17046
17047 2002-10-14  Martin Baulig  <martin@gnome.org>
17048
17049         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17050         mono_class_get() instead of looking in the class cache. 
17051
17052 2002-10-13  Martin Baulig  <martin@gnome.org>
17053
17054         * debug-mono-symfile.c: Set version number to 28, include the
17055         signature in method names.
17056
17057 2002-10-13  Martin Baulig  <martin@gnome.org>
17058
17059         * debug-mono-symfile.h: Set version number to 27.
17060
17061 2002-10-11  Martin Baulig  <martin@gnome.org>
17062
17063         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17064
17065 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17066
17067         * metadata.c, metadata.h: added helper function to allocate signatures.
17068
17069 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17070
17071         * icall.c: added internal call to get the location of machine.config.
17072
17073 2002-10-08  Martin Baulig  <martin@gnome.org>
17074
17075         * debug-mono-symfile.c: Ignore classes with a pending init for the
17076         moment.
17077
17078 2002-10-03  Dick Porter  <dick@ximian.com>
17079
17080         * threads.c: Freebsd pthread_t is a pointer
17081
17082 2002-10-03  Dick Porter  <dick@ximian.com>
17083
17084         * socket-io.c: Implemented GetHostName_internal
17085
17086 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17087
17088         * mono-config.c:
17089         (mono_config_parse_file): don't leak the text.
17090
17091 2002-10-02  Martin Baulig  <martin@gnome.org>
17092
17093         * debug-mono-symfile.c: Added support for methods.
17094
17095 2002-10-01  Martin Baulig  <martin@gnome.org>
17096
17097         * debug-mono-symfile.c: Don't emit methods and line numbers for
17098         the dynamic symbol file, just write the type table.  We can easily
17099         have an external helper program which creates a symbol file for an
17100         IL file.        
17101
17102 2002-10-01  Dick Porter  <dick@ximian.com>
17103
17104         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17105         Only add the handle to the cleanup array when we're about to
17106         launch the thread.  Bug 31425 deadlocked when the test was run on
17107         mono under w32.
17108
17109 2002-10-01  Martin Baulig  <martin@gnome.org>
17110
17111         * debug-mono-symfile.c: Added support for properties.
17112
17113 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17114
17115         * reflection.c: unaligned store fix from Mark Crichton
17116         <crichton@gimp.org>.
17117
17118 2002-09-27  Martin Baulig  <martin@gnome.org>
17119
17120         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17121         New interncall.
17122
17123 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17124
17125         * assembly.h, assembly.c: use a sane API to hook into the assembly
17126         loading process instead of a useless special-purpouse hack
17127         (ngen needs a hook, too, for example).
17128
17129 2002-09-27  Dick Porter  <dick@ximian.com>
17130
17131         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17132         io-layer can set up some process handle info.  Not needed on w32,
17133         but doesn't hurt either.
17134
17135         * process.c: Pass the program name in the second parameter to
17136         CreateProcess, so the path is searched.  Include the working
17137         directory. Implemented process name, process enumeration, and some
17138         process detail internal calls.
17139         
17140         * icall.c: Added internal calls for process lookup, and some
17141         process details
17142
17143 2002-09-26  Martin Baulig  <martin@gnome.org>
17144
17145         * assembly.c (mono_install_open_assembly_hook): New global
17146         function to install a function to be invoked each time a new
17147         assembly is loaded.
17148         (mono_assembly_open): Run this callback function if set.
17149
17150         * debug-mono-symfile.c: Put back line numbers for the dynamic
17151         symbol file and also record the .il file as source file.  This
17152         allows us to install the temporary symbol file as `file.dbg' just
17153         like a compiler-generated one.
17154
17155 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17156
17157         * Corrected typo in gc.c (BOHEM vs BOEHM).
17158
17159 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17160
17161         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17162         GetProperties. Also avoid calling g_slist_length in GetProperties and
17163         GetMethods.
17164
17165 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17166
17167         * reflection.c: avoid unaligned stores (bug spotted by
17168         Mark Crichton  <crichton@gimp.org>).
17169
17170 2002-09-25  Martin Baulig  <martin@gnome.org>
17171
17172         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17173         instead of guint64 for addresses and added prologue/epilogue info.
17174
17175 2002-09-25  Martin Baulig  <martin@gnome.org>
17176
17177         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17178         store line number info.  For the dynamic symbol file, we only need
17179         to provide the JIT generated dynamic line number info for the dynamic
17180         symbol file.
17181
17182 2002-09-25  Martin Baulig  <martin@gnome.org>
17183
17184         * debug-mono-symfile.h: Incremented version number.
17185
17186 2002-09-24  Martin Baulig  <martin@gnome.org>
17187
17188         * class.c (mono_debugger_class_init_func): New global function
17189         pointer variable.
17190         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17191         call it.
17192
17193         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17194         function.  This is called via the mono_debugger_class_init_func
17195         hook to add all types to the dynamic type table.
17196         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17197         from its metadata token.
17198
17199         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17200         New interncall for the debugger.
17201
17202 2002-09-24  Nick Drochak <ndrochak@gol.com>
17203
17204         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17205         before using it in case it is null.
17206         
17207 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17208
17209         * metadata.c: allow custom modifiers in local var signatures
17210         (bug spotted by Zoltan Varga).
17211
17212 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17213
17214         * class.c: deal with the <Module> class that may have a NULL vtable.
17215         Eliminate warnings.
17216
17217 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17218
17219         * image.c, image.h: more strong name helpers.
17220         * monosn.c: more work: convert pem keys to cryptoapi format.
17221
17222 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17223
17224         * string-icalls.c: speedup IndexOf.
17225
17226 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17227
17228         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17229
17230 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17231
17232         * icall.c: cleanup: use mono_object_domain ().
17233
17234 2002-09-23  Martin Baulig  <martin@gnome.org>
17235
17236         * debug-mono-symfile.c: Improved type support.
17237
17238 2002-09-22  Martin Baulig  <martin@gnome.org>
17239
17240         * debug-mono-symfile.c: Added support for reference types and strings.
17241
17242 2002-09-22  Martin Baulig  <martin@gnome.org>
17243
17244         * debug-mono-symfile.c: Started to work on the type table.
17245
17246 2002-09-21  Martin Baulig  <martin@gnome.org>
17247
17248         * debug-mono-symfile.c: Largely reworked the symbol table format.
17249         The symbol table is now incrementally updated each time a new
17250         method is added.  We're now also using our own magic and version
17251         so that you don't need to recompile all your classes if the
17252         dynamic table changes.
17253         (mono_debug_update_mono_symbol_file): Removed.
17254         (mono_debug_symfile_add_method): New function to add a method.
17255
17256 2002-09-21  Martin Baulig  <martin@gnome.org>
17257
17258         * icall.c
17259         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17260         New interncall.
17261
17262         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17263         New interncall to get a method from its metadata token.
17264
17265 2002-09-21  Martin Baulig  <martin@gnome.org>
17266
17267         * debug-mono-symfile.c: Create type table.
17268
17269 2002-09-20  Martin Baulig  <martin@gnome.org>
17270
17271         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17272
17273 2002-09-20  Martin Baulig  <martin@gnome.org>
17274
17275         * debug-mono-symfile.c: Provide information about params and locals.
17276
17277 2002-09-20  Martin Baulig  <martin@gnome.org>
17278
17279         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17280         New interncall.
17281
17282         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17283         interncall to get a method from its metadata token.
17284
17285 2002-09-20  Martin Baulig  <martin@gnome.org>
17286
17287         * debug-mono-symfile.c: Added a few checks for method->header
17288         being non-NULL.  This should never happen, but for the moment
17289         let's use a g_warning() rather than a g_assert().
17290
17291 2002-09-19  Mark Crichton  <crichton@gimp.org>
17292
17293         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17294         even if support for it isn't present.  Added an #ifdef to fix this.
17295
17296         * socket-io.c: Added checks back for Solaris support.
17297
17298 2002-09-19  Martin Baulig  <martin@gnome.org>
17299
17300         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17301         changes in the symbol file format.
17302
17303 2002-09-18  Martin Baulig  <martin@gnome.org>
17304
17305         * debug-mono-symfile.c: Set version number to 21.
17306
17307 2002-09-18  Dick Porter  <dick@ximian.com>
17308
17309         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17310         on netbsd.  Fixes bug 30051.
17311
17312 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17313
17314         * reflection.c:
17315         (set_version_from_string): little fix.
17316
17317 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17318
17319         * monosn.c, Makefile.am: added strong name utility.
17320         * reflection.h, reflection.c: implemented delayed signing,
17321         locale, version and hash id assembly attributes.
17322
17323 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17324
17325         * loader.c, metadata.c: load param attributes in signatures.
17326
17327 2002-09-16  Martin Baulig  <martin@gnome.org>
17328
17329         * debug-mono-symfile.c: Added string table with all method names.
17330
17331 2002-09-14  Martin Baulig  <martin@gnome.org>
17332
17333         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17334         fast method lookup.
17335
17336 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17337
17338         * reflection.c: record the public key token of referenced assemblies.
17339
17340 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17341
17342         * image.c, image.h: added functions to get the strong name and the
17343         public key of an assembly.
17344         * pedump.c: use them.
17345
17346 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17347
17348         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17349
17350 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17351
17352         * marshal.c (mono_marshal_get_managed_wrapper): Added
17353         MONO_TYPE_BOOLEAN 
17354
17355 2002-09-11  Martin Baulig  <martin@gnome.org>
17356
17357         * gc.c: Call GC_unregister_disappearing_link() on all links when
17358         finalizing them, this is necessary to aviod a crash in boehm's
17359         finalize handler.
17360
17361 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17362
17363         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17364         nick@chemlab.org.
17365
17366 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17367
17368         * icall.c: implemented MonoType::Module.
17369         * reflection.c, reflection.h: mono_module_get_object () from
17370         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17371
17372 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17373
17374         * icall.c: ignore overridden methods in GetMethods ().
17375         Fix for FieldInfo::SetValue().
17376         * object.c: handle float/double in runtime invoke.
17377
17378 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17379
17380         * object.c: allow a constructor to be called again on an object.
17381
17382 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17383
17384         * class.h, class.c: move field layout code to it's own function and
17385         export it. Get an interface id earlier. Move fields in MonoClass
17386         so they are more cache friendly and align the bitfields.
17387         * loader.c: temporary handle get_param_names() for a runtime method.
17388         * reflection.c, reflection.h: more code to handle runtime creation of
17389         types.
17390
17391 2002-09-09  Martin Baulig  <martin@gnome.org>
17392
17393         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17394         signature with the pinvoke field being set for the actual call.
17395
17396 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17397
17398         * icall.c: removed some unused icalls. Start of map of glib charsets
17399         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17400
17401 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17402
17403         * debug-helpers.c: break infinite loop (found and fixed by
17404         Holger Arnold <harnold@gmx.de>).
17405
17406 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17407
17408         * icall.c: target may be null in create_delegate.
17409
17410 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17411
17412         * marshal.c: handle a boolean return type.
17413
17414 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17415
17416         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17417
17418 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17419
17420         * gc.c: fix weakreferences.
17421
17422 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17423
17424         * icall.c: added icall to get default codepage.
17425
17426 2002-09-03  Dick Porter  <dick@ximian.com>
17427
17428         * threads.h: 
17429         * threads.c: Use MonoThread instead of MonoObject where
17430         apropriate.
17431
17432         Store running thread objects in a hash table, so that we have all
17433         the info to hand when waiting for them to finish
17434         (means we don't need OpenThread() any more, so mingw builds should
17435         be fully functional again.)
17436
17437         * verify.c:
17438         * object.h: Added thread ID to MonoThread
17439
17440 2002-09-03  Martin Baulig  <martin@gnome.org>
17441
17442         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17443
17444 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17445
17446         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17447
17448 2002-09-03  Martin Baulig  <martin@gnome.org>
17449
17450         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17451         argument to store the end address of the disassembled instruction.
17452
17453         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17454         here from debug-symfile.h.
17455         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17456         JIT into this struct.
17457         (MonoSymbolFile): Added `char *image_file' field.
17458         (MonoDebugGetMethodFunc): Removed.
17459         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17460         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17461         (mono_debug_find_method): New method.
17462
17463         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17464         create a full symbol file.
17465         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17466         and static symbol files.
17467         (mono_debug_find_method): The symbol file keeps an internal method hash,
17468         call this to get a MonoDebugMethodInfo from a MonoMethod.
17469
17470         * debug-symfile.[ch]: Removed.
17471
17472 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17473
17474         * image.c (do_mono_image_open): Remove linker version check.
17475
17476 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17477
17478         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17479         wrappers for instance methods.
17480         
17481 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17482
17483         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17484
17485 2002-08-28  Dick Porter  <dick@ximian.com>
17486
17487         * Makefile.am: Export HOST_CC for w32 builds
17488
17489 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17490
17491         * file-io.c process.c: MonoString are null terminated, no
17492         need for mono_string_to_utf16() anymore.
17493
17494 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17495
17496         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17497
17498 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17499
17500         * icall.c, reflection.h: speedup System.MonoType.
17501
17502 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17503
17504         * reflection.c: allow null as the value of a string argument in
17505         custom attributes constructors.
17506
17507 2002-08-27  Martin Baulig  <martin@gnome.org>
17508
17509         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17510         `trampoline_address' field.
17511
17512 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17513
17514         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17515         check (fixes bug #29486) 
17516
17517 2002-08-27  Martin Baulig  <martin@gnome.org>
17518
17519         * debug-mono-symfile.c: Changed the file format in a way that allows us
17520         open it read-only and to use a specially malloced area for all the
17521         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17522         debugging IL code and there is no MCS generated symbol file for it.
17523
17524 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17525
17526         * object.c: added a define for a good string and array
17527         creation speedup (not enabled by default because we need to deal with
17528         the synch stuff).
17529
17530 2002-08-26  Martin Baulig  <martin@gnome.org>
17531
17532         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17533         function to create a dynamic symbol file.  This is used by the
17534         debugger to create a symbol file for IL code on-the-fly.
17535
17536 2002-08-26  Martin Baulig  <martin@gnome.org>
17537
17538         * loader.c (mono_lookup_pinvoke_call): Include the error message
17539         from g_module_error() in the error message.
17540
17541 2002-08-24  Martin Baulig  <martin@gnome.org>
17542
17543         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17544         function to update the symbol file.  The symbol file is mmap()ed
17545         writable, but private.  This allows us to install the symbol file
17546         together with the assembly.
17547
17548 2002-08-24  Martin Baulig  <martin@gnome.org>
17549
17550         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17551         but they can read the new symbol file format which mcs is now creating.
17552
17553         * debug-symfile.c (mono_debug_find_source_location): Moved to
17554         debug-mono-symfile.c; this is now operating on the new symbol file.
17555
17556 2002-08-23  Martin Baulig  <martin@gnome.org>
17557
17558         * debug-helpers.c (mono_method_desc_from_method): New function to get
17559         a MonoMethodDesc from a MonoMethod.
17560
17561 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17562
17563         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17564         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17565
17566 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17567
17568         * string-icalls.[ch]: make helper methods static.
17569
17570 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17571
17572         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17573         types to it and to SetValueInternal.
17574
17575         * object.c: Moved handle_enum label to its proper place. This was the
17576         f... bug! ;-)
17577
17578         This time i compiled mcs and gtk-sharp and they both work.
17579
17580 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17581
17582         * icall.c: reverted partially my previous patch until 
17583         object.c:set_value handles enums correcly.
17584
17585 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17586
17587         * icall.c:
17588         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17589         (ves_icall_System_Environment_get_MachineName): removed warning when
17590         compiling under cygwin.
17591
17592 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17593
17594         * object.c: fixed field_get_value() for reference types.
17595
17596 2002-08-22  Dick Porter  <dick@ximian.com>
17597
17598         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17599         Don't free a buffer while it's still needed.  Patch from Jonathan
17600         Liger <Jonathan.liger@wanadoo.fr>
17601
17602 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17603
17604         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17605         internal call.
17606
17607 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17608
17609         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17610         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17611
17612         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17613         we call unmanaged code which throws exceptions.
17614
17615 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17616
17617         * appdomain.h: added per-domain entry_assembly.
17618         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17619         arguments.
17620         * icall.c: Assembly::GetEntryAssembly icall.
17621         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17622         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17623
17624 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17625
17626         * appdomain.h, gc.c: added mono_domain_finalize ().
17627
17628 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17629
17630         * object.c:
17631         (mono_print_unhandled_exception): changed g_warning by g_printerr
17632         because g_log has a 1024 characters limit (yeah, i got a big stack
17633         trace). Don't print exception name, that should be in ToString 
17634         returned string.
17635
17636 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17637
17638         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17639         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17640
17641 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17642
17643         * object.c:
17644         (mono_print_unhandled_exception): after previous commit, i realized
17645         that MS calls ToString on the exception. I changed this function to
17646         do that. This way we get stack_trace for free.
17647
17648 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17649
17650         * object.c:
17651         (mono_print_unhandled_exception): invoke Message property instead of
17652         getting 'message' field from Exception. Don't allocate memory for
17653         'trace' and 'message' if not needed.
17654
17655 2002-08-18  Dick Porter  <dick@ximian.com>
17656
17657         * unicode.c: Fix asserts to match Encoder.cs checks
17658
17659 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17660
17661         * marshal.c: fix unaligned store issue and a few wrong
17662         opcode argument types.
17663
17664 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17665
17666         * icall.c: added GetUninitializedObjectInternal internal call.
17667
17668 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17669
17670         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17671         to the right domain.
17672
17673 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17674
17675         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17676
17677         * class.c (class_compute_field_layout): set blittable to false for Strings
17678
17679         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17680
17681 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17682
17683         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17684         first chunk of code to create types at runtime. Code to
17685         handle ReflectedType/DeclaringType. Make reflection handles
17686         domain specific.
17687
17688 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17689
17690         * class.c: set correct name in arrays.
17691
17692 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17693
17694         * appdomain.c (mono_domain_transfer_object): make it work with
17695         valuetypes. bug fixes.
17696
17697 2002-08-12  Dick Porter  <dick@ximian.com>
17698
17699         * object.h: Rename some parameters to avoid c++ keywords (Patch
17700         from Joseph Wenninger <kde@jowenn.at>)
17701
17702 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17703
17704         * icall.c: added icall to implement Assembly.GetFile*.
17705
17706 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17707
17708         * reflection.h, reflection.c: code to embed managed resources.
17709
17710 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17711
17712         * class.c: move all the type size stuff into
17713         class_compute_field_layout().
17714
17715 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17716
17717         * class.c: ensure enums have always the correct instance size.
17718         * unicode.c: remove wrong assert.
17719
17720 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17721
17722         * assembly.c: fix mem corruption issue.
17723         * image.h, image.c: added mono_image_get_resource () to access
17724         managed resources.
17725         * icall.c: implemented Assembly.EntryPoint property and some
17726         Managed Resources related internalcalls.
17727
17728
17729 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17730
17731         * image.c, image.h: impemented mono_image_get_entry_point ().
17732         * appdomain.c: use mono_image_get_entry_point.
17733
17734 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17735
17736         * reflection.c: support the object type argument when loading
17737         custom attributes.
17738
17739 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17740
17741         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17742         String as return type.
17743
17744 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17745
17746         * reflection.c: fix encoding of named args for custom attrs to match
17747         the ms implementation. Read them back when instantiating custom
17748         attributes.
17749
17750 2002-08-02  Radek Doulik  <rodo@ximian.com>
17751
17752         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17753         by Dietmar as quick fix
17754         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17755         16 as stack size, used on more places as quick fix before Dietmar
17756         will fix it properly
17757
17758 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17759
17760         * object.h, object.c: added accessors for fields and properties.
17761
17762 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17763
17764         * class.c, class.h: made mono_class_get_field_from_name ()
17765         loop on parent types.
17766         Added mono_class_get_property_from_name ().
17767
17768 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17769
17770         * class.c, class.h: move the code to setup the type vtable in its own
17771         function so that it can be reused also for types created at runtime.
17772         Eliminate the "class" identifier from the header file.
17773         * reflection.c: setup the vtable for enums so that we can create
17774         objects for use in SetConstant ().
17775
17776 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17777
17778         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17779         instead of the delegate itself as this pointer (bug #28383)
17780
17781 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17782
17783         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17784         conversions.
17785
17786 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17787
17788         * loader.c: don't set the pinvoke bit on icalls.
17789
17790 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17791
17792         * debug-helpers.c (mono_method_full_name): only print a number to
17793         indicate wrapper type (so that the output is more readable in traces).
17794
17795 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17796
17797         * class.c (mono_class_init): include method override patch from Paolo
17798
17799 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17800
17801         * icall.c: fixed GetTypeCode().
17802
17803 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17804
17805         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17806         use real delegate invoke function to make it work with multicast
17807         delegates (fix bug# 28291).
17808
17809 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17810
17811         * object.c: load constant strings.
17812
17813 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17814
17815         * reflection.c: no magic numbers.
17816         * tabledefs.h: security action enum.
17817
17818 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17819
17820         * assembly.c: fix possible memory corruption.
17821
17822 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17823
17824         * reflection.h, reflection.c: added support for linking resources.
17825         * verify.c: check we have an updated corlib.
17826
17827 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17828
17829         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17830         string arrays.
17831         (mono_marshal_string_array): null terminate unmanaged string arrays.
17832         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17833
17834 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17835
17836         * icall.c: Type.GetType () can now return also types from the
17837         calling assembly.
17838
17839 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17840
17841         * loader.h, loader.c: stack walking support.
17842         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17843         GetCallingAssembly.
17844
17845 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17846
17847         * marshal.c: added optimisations for blittable types 
17848
17849         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17850         (mono_class_setup_mono_type): set blittable attribute for single
17851         and double.
17852
17853         * marshal.c (mono_string_utf8_to_builder): impl.
17854         (mono_string_builder_to_utf8): impl.
17855         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17856
17857 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17858
17859         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17860         (mono_marshal_get_managed_wrapper): impl. byref types
17861
17862 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17863
17864         * icall.c:
17865         (search_method): don't display debug message. 
17866
17867 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17868
17869         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17870
17871 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17872
17873         * appdomain.c: set the missing filename when throwing exception.
17874
17875 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17876
17877         * metadata.c (mono_type_size): code cleanup
17878         (mono_type_stack_size): removed some test code
17879
17880 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17881
17882         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17883         mono_get_exception_file_not_found now.
17884
17885         * exception.c (mono_exception_from_name_two_strings): New version
17886         that will call a constructor with two string arguments. 
17887         (mono_get_exception_file_not_found): New helper routine, used to
17888         report file-not-found errors.
17889
17890 2002-07-20  Dick Porter  <dick@ximian.com>
17891
17892         * process.h:
17893         * process.c: Pass file handles to CreateProcess
17894         
17895         * icall.c:
17896         * file-io.h:
17897         * file-io.c: Implemented CreatePipe
17898
17899 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17900
17901         * metadata.c (mono_get_param_info): set alignment for value types
17902
17903 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17904
17905         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17906         Constify mono_domain_assembly_open().
17907         * loader.c: handle null namespace in icalls.
17908
17909 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17910
17911         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17912         (emit_str_to_ptr_conv): marshal object as structs
17913
17914         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17915
17916         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17917
17918 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17919
17920         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17921         (mono_marshal_get_native_wrapper): we an now return value types
17922
17923 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17924
17925         * verify.c: more checks implemented.
17926
17927 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17928
17929         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17930         (fix bug #27695)
17931         (mono_marshal_get_native_wrapper): allow byref arguments
17932         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17933         impl. PtrToStringXXX methods
17934         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17935         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17936         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17937         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17938         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17939
17940 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17941
17942         * reflection.c: fix buglet in parsing an assembly name.
17943
17944 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17945
17946         * marshal.c (emit_ptr_to_str_conv): first impl.
17947
17948 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17949
17950         * object.c, class.h: cache the vtable in the class as suggested by
17951         vargaz@freemail.hu (Zoltan Varga).
17952
17953 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17954
17955         * class.h, loader.c: added mono_field_from_token().
17956         * verify.c: first cut of type checking code.
17957
17958 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17959
17960         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17961
17962 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17963
17964         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17965         (fix bug #27782)
17966         (mono_marshal_get_remoting_invoke): impl.
17967         (mono_delegate_begin_invoke): impl.
17968         (mono_mb_emit_save_args): impl.
17969         (mono_delegate_end_invoke): impl.
17970         (mono_marshal_get_delegate_begin_invoke):
17971         (mono_marshal_get_delegate_end_invoke):
17972         (mono_marshal_get_delegate_invoke): generate a special name for
17973         those methods (including the signature) and associate them whith
17974         the delegate class. 
17975
17976 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17977
17978         * reflection.[ch]: 
17979         (mono_reflection_type_from_name): now it has a MonoImage parameter
17980         which is used as the default image to search the type in. If the image
17981         is NULL or getting the type from it fails, it defaults to corlib.
17982
17983         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17984         new parameter.
17985
17986 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17987
17988         * reflection.c: update the parameter table index.
17989
17990 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17991
17992         * domain.c: don't include the mark byte in the string hash.
17993
17994 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17995
17996         * icall.cs: icall for Type.GetTypeCode ().
17997         * verify: a couple of fixes and disabled local initialization checks.
17998
17999 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
18000
18001         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18002
18003         * debug-helpers.c (mono_method_full_name): print the type of the
18004         runtime wrapper
18005
18006         * metadata.c (mono_signature_hash): a hash function for signatures
18007         (mono_signature_hash): better hash algorithm
18008
18009         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18010
18011         * debug-helpers.c (mono_method_full_name): this can now generate
18012         method names with signatures
18013
18014         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18015         method dont have this pointers.
18016
18017 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18018
18019         * reflection.c: fixup typebuilder tokens.
18020         * image.c: fix buglet.
18021         * marshal.h: remove whitespace.
18022         * metadata.h, metadata.c: reinstate code that was removed.
18023         * verify.c: handle catch directives and fix another couple of bugs.
18024
18025 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
18026
18027         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18028         (mono_marshal_get_native_wrapper): make it comp. with the old code
18029         (mono_marshal_get_native_wrapper): support boolean
18030         (mono_marshal_get_managed_wrapper): support more types
18031
18032 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
18033
18034         * class.c (class_compute_field_layout): compute class->blittable attribute.
18035
18036 2002-07-09  Dick Porter  <dick@ximian.com>
18037
18038         * threads.c: Make the thread cleaning up cope with threads that
18039         call ExitThread()
18040
18041 2002-07-08  Radek Doulik  <rodo@ximian.com>
18042
18043         * reflection.c (method_encode_code): use non-translated values to
18044         compute finally_start, this fixes exception handling on ppc, yay!
18045
18046         * decimal.h (struct signscale): fix endianess
18047
18048 2002-07-07  Radek Doulik  <rodo@ximian.com>
18049
18050         * reflection.c: swap box_val and not val
18051
18052 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18053
18054         * reflection.c, reflection.h: handle full assembly info in type name.
18055         Handle Type arguments when loading custom attributes.
18056         * icall.c: updated to use new mono_reflection_type_from_name () method.
18057
18058 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18059
18060         * loader.c:
18061         (method_from_memberref): also print assembly name when method not found.
18062
18063 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18064
18065         * icall.c:
18066         (ves_icall_TypeGetProperties): fixed bug #27473. 
18067
18068 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18069
18070         * reflection.c: display image name and token when cannot find the
18071         .ctor for an attribute.
18072
18073 2002-07-05  Martin Baulig  <martin@gnome.org>
18074
18075         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18076
18077 2002-07-04  Dick Porter  <dick@ximian.com>
18078
18079         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18080         compile on mingw.  This will cause mingw builds to not wait for
18081         subthreads to terminate after the main thread does.  I've lodged a
18082         bug with the mingw developers for them to wrap OpenThread().
18083
18084 2002-07-03  Dick Porter  <dick@ximian.com>
18085
18086         * threads.c: Store thread IDs instead of handles, because
18087         GetCurrentThread() returns a pseudohandle and therefore stores
18088         useless values.  mono_thread_cleanup() continues checking the
18089         array of threads until it is empty, to cope with subthreads
18090         spawning new threads after the main thread has finished.
18091
18092         * profiler.h:
18093         * profiler.c:
18094         * profiler-private.h: Pass the thread ID to thread profiler
18095         functions, instead of a handle
18096
18097 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18098
18099         * verify.c: fixes to make it more usable.
18100         * pedump.c: added --verify code to verify IL code in an assembly.
18101
18102 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18103
18104         * reflection.c: turn errors into warnings to allow compiling corlib.
18105
18106 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18107
18108         * reflection.c: add special cases to compile corlib.
18109
18110 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18111
18112         * reflection.c: handle properties with only a set method.
18113
18114 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18115
18116         * opcodes.h: add enum with opcodes in opval order.
18117
18118 2002-07-01  Dick Porter  <dick@ximian.com>
18119         
18120         * object.h:
18121         * object.c (mono_runtime_run_main): Removed unneeded argument
18122
18123 2002-06-28  Martin Baulig  <martin@gnome.org>
18124
18125         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18126
18127 2002-06-27  Dick Porter  <dick@ximian.com>
18128
18129         * threads.c: Store the handle in both the parent thread and in the
18130         subthread, to minimise the time between starting a new thread and
18131         storing its ID.
18132
18133 2002-06-26  Dick Porter  <dick@ximian.com>
18134
18135         * appdomain.c (mono_runtime_cleanup): Close the socket library
18136         after all the threads have finished, not before
18137
18138 2002-06-26  Martin Baulig  <martin@gnome.org>
18139
18140         * debug-symfile.c (mono_debug_find_source_location): Added
18141         `guint32 *line_number' argument.  If it's not NULL, store the line number
18142         there and return the file name without the line number.
18143
18144 2002-06-25  Dick Porter  <dick@ximian.com>
18145
18146         * icall.c:
18147         * process.h:
18148         * process.c: Process forking and other support functions
18149
18150 2002-06-25  Dick Porter  <dick@ximian.com>
18151
18152         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18153         things dont happen when the image is closed.
18154         (mono_image_lookup_resource): Walk the resource section looking
18155         for a particular entry
18156
18157         * cil-coff.h: PE resource section decoding
18158
18159 2002-06-25  Dick Porter  <dick@ximian.com>
18160         
18161         * assembly.h:
18162         * assembly.c: 
18163         (mono_assembly_foreach): Accessor functions to walk the list of
18164         loaded assemblies
18165         (mono_assembly_set_main):
18166         (mono_assembly_get_main): Process methods need to know which
18167         assembly is the "main" one
18168
18169         * object.c (mono_runtime_run_main): Record the main assembly
18170
18171         * debug-helpers.c: Fix typo
18172
18173 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18174
18175         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18176         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18177
18178 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18179
18180         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18181
18182 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18183
18184         * image.c (do_mono_image_open): Initialize reference count,
18185         otherwise we leak the MonoImage.
18186
18187 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18188
18189         * reflection.c: small tweak to handle self-hosting.
18190
18191 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18192
18193         * reflection.c: fix type name parse code.
18194
18195 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18196
18197         * reflection.c: break out of the loop.
18198         * image.c: special case corlib.
18199
18200 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18201
18202         * reflection.c: add all the custom attrs at the end to ensure the
18203         ctors have been properly initialized when the attributes are defined
18204         in the current assembly.
18205
18206 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18207
18208         * reflection.c: handle correctly multiple-nested types.
18209
18210 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18211
18212         * row-indexes.h: fix typos.
18213         * reflection.c: adjust for typos and fix method_def_or_ref
18214         encoding in MethodImpl table.
18215
18216 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18217
18218         * reflection.c: fix entry point patching (thanks Serge!).
18219
18220 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18221
18222         * verify.c: add check for System.Exception
18223
18224 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18225
18226         * image.c, class.c: minifix for code just c&p'ed.
18227         * reflection.c: warning fix.
18228         * object.h, loader.h, domain.c: load also StringBuilder.
18229
18230 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18231
18232         * marshal.h, marshal.c: some support code to handle complex marshaling.
18233
18234 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18235
18236         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18237         Better signatures with vtable error dump.
18238
18239 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18240
18241         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18242
18243 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18244
18245         * icall.c (ves_icall_Type_GetField): impl.
18246
18247 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18248
18249         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18250         to retrieve a marshal description blob for a field or param.
18251
18252 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18253
18254         * reflection.h, reflection.c: change order of nested type emission
18255         to avoid table corruption. The NestedTypes table is sorted.
18256         * icall.c: change order of GetConstructor results to workaround mcs bug.
18257
18258 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18259
18260         * reflection.h, reflection.c: handle field and param marshal
18261         information.
18262
18263 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18264
18265         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18266
18267 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18268
18269         * reflection.c: fix call convention.
18270
18271 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18272
18273         * reflection.h, reflection.c: mono_image_get_memberref_token()
18274         takes a type instead of a class, now. Added
18275         mono_image_get_array_token() to create tokens for the special
18276         multi-dim array methods.
18277
18278 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18279
18280         * assembly.c: handle modules (no assembly table). Split
18281         loading references in its own function.
18282         * class.c: handle moduleref resolution scope.
18283         * image.c, image.h: cache module name in image.
18284
18285 2002-06-07  Martin Baulig  <martin@gnome.org>
18286
18287         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18288         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18289
18290 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18291
18292         * icall.c: more signature fixes that used uint instead of int.
18293
18294 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18295
18296         * reflection.c: fixed signature of field refs.
18297
18298 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18299
18300         * class.c, reflection.c: handle typerefs of nested types
18301         (both on read and when writing files).
18302
18303 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18304
18305         * icall.c: fix method signatures that tried to workaround the previous
18306         typo, d'oh!
18307
18308 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18309
18310         * debug-helpers.c: fix typo.
18311
18312 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18313
18314         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18315         rewrote the PE/COFF writing code (our programs are understood by the
18316         ms runtime, now).
18317
18318 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18319
18320         * gc.c, gc.h, icall.c: weakreference support.
18321
18322 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18323
18324         * Makefile.am, mono-config.c: use $(sysconfdir).
18325
18326 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18327
18328         * icall.c: changed default precision of Double.ToString() to 15.
18329         Fixed memory leak. Unified with Single.ToString.
18330
18331 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18332
18333         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18334
18335 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18336
18337         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18338         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18339         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18340         and myself.
18341
18342 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18343
18344         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18345
18346 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18347
18348         * reflection.c, socket-io.c: more compilation fixes.
18349
18350 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18351
18352         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18353         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18354         unicode.c: warning and compiler compatibility fixes.
18355
18356 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18357
18358         * class.h, metadata.c: fixed warnings/compilation errors.
18359
18360 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18361
18362         * Makefile.am, mono-config.c, mono-config.h: configuration file
18363         support routines.
18364         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18365         config file. Export methods to insert and lookup mappings.
18366
18367 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18368
18369         * reflection.c: handle types and boxed objects in custom attr
18370         constructors.
18371
18372 2002-05-30  Martin Baulig  <martin@gnome.org>
18373
18374         * debug-symfile.c
18375         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18376
18377 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18378
18379         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18380         to lookup the implmap row for a P/Invoke method.
18381         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18382         P/Invoke method from the runtime on an as needed basis.
18383
18384 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18385
18386         * metadata.c (mono_metadata_parse_signature): impl.
18387
18388 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18389
18390         * class.c: handle .pack directive.
18391
18392 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18393
18394         * object.c: initialize static fields with RVA data.
18395
18396 2002-05-25  Martin Baulig  <martin@gnome.org>
18397
18398         * debug-symfile.c
18399         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18400
18401 2002-05-24  Martin Baulig  <martin@gnome.org>
18402
18403         * debug-symfile.c
18404         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18405         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18406         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18407
18408 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18409
18410         * object.c: special case string ctros in invoke.
18411         * gc.c: silly whitespace changes.
18412
18413 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18414
18415         * threadpool.[ch]: impl. a threadpool that can
18416         be used by mint and mono.
18417
18418 2002-05-22  Martin Baulig  <martin@gnome.org>
18419
18420         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18421         The first argument is now a `MonoReflectionModuleBuilder *', the return
18422         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18423         `methods' field to get the method builder.  The `token' argument is the
18424         unfixed token.
18425
18426         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18427         invalid characters instead of g_assert_not_reached()ing.  This seems
18428         to be the behaviour of mscorlib.
18429
18430 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18431
18432         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18433         Hestilow to fix bug #25104
18434
18435 2002-05-21  Martin Baulig  <martin@gnome.org>
18436
18437         * debug-symfile.c (mono_debug_find_source_location): New function.
18438         Looks up an IL offset in the line number table and returns the source
18439         location as a string.
18440
18441 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18442
18443         * icall.c:
18444         (mono_double_ToStringImpl): changed %f by %g until we have something
18445         better.
18446
18447 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18448
18449         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18450         parameters first in C#.
18451
18452 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18453
18454         * icall.c, reflection.h: added icall to get info about an event.
18455
18456 2002-05-20  Radek Doulik  <rodo@ximian.com>
18457
18458         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18459         endian
18460         (mono_value_box): don't use memcpy for small sizes on
18461         architectures with unaligned access
18462
18463 2002-05-20  Martin Baulig  <martin@gnome.org>
18464
18465         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18466         if `tb->parent == NULL'.
18467         (mono_reflection_create_internal_class): New function.  This is
18468         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18469         for enum types.
18470
18471         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18472         New interncall.
18473
18474 2002-05-19  Martin Baulig  <martin@gnome.org>
18475
18476         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18477         argument to get the length, don't default to the array length.
18478
18479 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18480
18481         * assembly.c (mono_assembly_setrootdir): New function used to
18482         override the MONO_ASSEMBLIES directory.
18483
18484 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18485
18486         * icall.c: ValueType_GetHashCode() initialize local var.
18487
18488 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18489
18490         * reflection.c: sort custom attributes table.
18491
18492 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18493
18494         * reflection.c: support named args in custom attributes (write support).
18495
18496 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18497
18498         * reflection.c: fix finally position calculation.
18499
18500 2002-05-15  Radek Doulik  <rodo@ximian.com>
18501
18502         * reflection.c: fixed endianess at many places
18503
18504         * icall.c (ves_icall_InitializeArray): comment out debug msg
18505
18506 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18507
18508         * object.c (mono_unhandled_exception): new function to handle
18509         unhandled exceptions.
18510         (mono_unhandled_exception): call the UnhandledException event.
18511         (mono_runtime_delegate_invoke): impl.
18512
18513 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18514
18515         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18516         returns the RVA, not the direct pointer to the data. Handle the case
18517         when the class size is fixed.
18518
18519 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18520
18521         * reflection.c: fix some endianess issues.
18522
18523 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18524
18525         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18526
18527         * threads.c (mono_thread_init): added a callback which is invoked
18528         at thread start.
18529
18530 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18531         
18532         * icall.c: make GetHashCode return non-negative values.
18533
18534 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18535
18536         * object.c, icall.c, gc.c: revert to address-based hashcode.
18537
18538 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18539
18540         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18541
18542 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18543
18544         * icall.c, class.c: special case <Module>.
18545
18546 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18547
18548         * icall.c: fix bug in GetNow().
18549
18550 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18551
18552         * object.c (mono_runtime_class_init): make sure that we call all
18553         static class constructors.
18554
18555 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18556
18557         * reflection.c: sort methodsemantics table.
18558
18559 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18560
18561         * reflection.h, reflection.c: honour init locals setting.
18562
18563 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18564
18565         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18566
18567 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18568
18569         * reflection.c: support ContructorBuilders in attribute blob creation.
18570
18571 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18572
18573         * reflection.c: some changes to build a binary that can be run
18574         directly in windows.
18575
18576 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18577
18578         * loader.c: print a big message when an icall can't be found.
18579
18580 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18581
18582         * string-icalls.c: fix bug 24248.
18583
18584 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18585
18586         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18587         icall.c, reflection.h: separate assembly loading by pathname and by
18588         assembly name. Use the MONO_PATH env var to search for assemblies.
18589
18590 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18591
18592         * assembly.c, image.h: add some support for assemblies
18593         with multiple modules.
18594         * class.c, class.h: export mono_class_from_typeref().
18595         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18596         instead.
18597
18598 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18599
18600         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18601         documentation says (the ECMA one is correct).
18602
18603 2002-05-02  Dick Porter  <dick@ximian.com>
18604
18605         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18606         Don't name the synchronisation mutex.
18607
18608 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18609
18610         * rand.c
18611         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18612         Make the prototypes match.
18613         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18614         Same.
18615
18616         * icall.c
18617         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18618         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18619         all systems have tm.tm_zone, so use strftime() with %Z to print
18620         the timezone abreviation into a temp string.
18621
18622         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18623         rather than mono_array_addr() on a MonoString on Big Endian
18624         machines.
18625
18626 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18627
18628         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18629         fix bug 24041
18630
18631 2002-04-30  Dick Porter  <dick@ximian.com>
18632
18633         * socket-io.c: Cope with SOCKET being an integer rather than a
18634         pointer now.
18635
18636         * threads.c: Added Thread_free_internal, to deal with thread
18637         handle cleanup.  Moved calls to handle_store() and handle_remove()
18638         to start_wrapper(), so each can only be called once.  Allocate
18639         synchronisation blocks with GC_malloc(), and use GC finalisation
18640         to close the handles.
18641
18642         * icall.c: added System.Threading.Thread::Thread_free_internal
18643
18644 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18645
18646         * icall.c: support Environment.Exit, CommandLineArgs().
18647
18648 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18649
18650         * object.c, object.h: added mono_runtime_run_main () and
18651         mono_runtime_get_main_args () for use in System.Environment.
18652
18653 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18654
18655         * gc.c: fix thinko, enable actual finalization since the jit is now
18656         fixed.
18657
18658 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18659
18660         * gc.c, object.c: take into account that an object may be offset wrt the address
18661         returned by GC_malloc().
18662
18663 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18664
18665         * image.c: handle files without entries in the assembly table (modules).
18666
18667 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18668
18669         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18670         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18671         allowed to be null when it's System.Object class setup.
18672
18673 2002-04-27  Martin Baulig  <martin@gnome.org>
18674
18675         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18676         if `tb->parent == NULL' rather than crashing.
18677
18678 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18679
18680         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18681         calling acos() where asin() should have been called.
18682
18683 2002-04-26  Martin Baulig  <martin@gnome.org>
18684
18685         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18686         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18687         there's a subdirectory called `System', but we don't want to read that
18688         subdirectory as an assembly.
18689
18690 2002-04-25  Martin Baulig  <martin@gnome.org>
18691
18692         * debug-symfile.c: Reflect latest MonoString changes.
18693
18694 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18695
18696         * rand.c, rand.h: instance method icalls need to have an explicit
18697         this pointer as first argument in the C implementation.
18698
18699 2002-04-25  Nick Drochak <ndrochak@gol.com>
18700
18701         * icall.c: Fix typo in map for GetNonZeroBytes
18702
18703 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18704
18705         * string-icalls.c : String does now passes unit tests without any 
18706         errors, the following changes has been made:
18707         
18708         Implemented replace methods.
18709         Renaming of methods to (try) follow the standard.
18710         Fixed compare ordinal
18711         Made all memory allocated directly to function instead of via icall function.
18712         Small performance fix in is_in_array function
18713                         
18714  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18715
18716         c (mono_string_Internal_ctor_charp_int_int):
18717         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18718         sindex < 0, throw ArgumentOutOfRangeException instead of
18719         ArgumentNullException.
18720
18721         Added new check for length == 0, however
18722         I need to make it return String.Empty from the C code.
18723         
18724         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18725         that calculate the length for us here.
18726         
18727         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18728         mono_string_new_utf16 with mono_string_new, since value is utf8.
18729
18730 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18731
18732         * object.c: register the object for finalization if needed.
18733         Allocate one more char in the string for the terminating 0 char.
18734
18735 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18736
18737         * class.c, class.h, image.c: check if a type implemenst a destructor.
18738         Use the proper key for array class lookups.
18739         * icall.c: register the icalls in the System.GC class.
18740         * gc.c, gc.h: GC-related functions and icalls.
18741
18742 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18743
18744         * icall.c:
18745         * socket-io.c:
18746         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18747         changed a couple of free () by g_free ().
18748
18749         * decimal.c: one-liner in the comments for decimal2string ().
18750
18751 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18752
18753         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18754
18755 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18756
18757         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18758         * object.c (mono_runtime_invoke_array) : handle null in params
18759
18760 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18761
18762         * string-icalls.c: fixed bug in split (one off bug)
18763
18764 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18765
18766         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18767         * icalls.c: added String::Equals as internal method
18768
18769 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18770
18771         * threads.c: fixed bug in the double interlocked functions
18772
18773 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18774
18775         * threads.c: implemented all of the new interlocked icalls.
18776         * string-icalls.c: fix a bug in insert.
18777         * icalls.c: added the icalls for interlocked, removed old string functions.
18778         
18779 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18780
18781         * loader.c: fix off-by-one error when reading argument names.
18782
18783 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18784
18785         * profiler.c: win32 counter implementation (untested).
18786         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18787         (the latter needs testing and more complete impl. from win32 folks).
18788
18789 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18790
18791         * object.c: mono_array_new_full workaround mono_array_class_get
18792         problem.
18793
18794 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18795
18796         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18797         * object.h (mono_string_chars): Changed casting type.
18798
18799 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18800
18801         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18802                            method signatures to use gunichar2 instead of gint16.
18803
18804 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18805
18806         * object.h, object.c: domain-specific versions of mono_object_new and
18807         mono_array_new.
18808
18809 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18810
18811         * object.c: changed String layout
18812
18813         * string-icalls.c (mono_string_Internal_ctor_chara): added
18814         internal string constructors.
18815
18816 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18817
18818         * threads.c: pass 'this' to the thread start routine.
18819
18820 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18821
18822         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18823         InternalCompareStr don't call twice mono_string_cmp_char for the last
18824         character. Improved performance in mono_string_cmp_char.
18825
18826 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18827
18828         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18829         code into its own library: libmonoruntime.
18830
18831 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18832
18833         * object.h, object.c: changed array format so that szarrays do not
18834         require a bounds structure.
18835         * icall.c, appdomain.c: support for new szarray format.
18836
18837 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18838
18839         * metadata.c: compare also the retuns type when comparing signatures:
18840         we didn't do this as an optimization since really overloaded methods
18841         must differ also in the arguments, but this doesn't work with
18842         low-level IL code (or when using explicit conversion operators: see
18843         bug#23498 for an example).
18844
18845 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18846
18847         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18848
18849 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18850
18851         * icall.c: make MonoType::GetElementType its own icall.
18852
18853 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18854
18855         * icall.c: remove MonoMethod_get_Name().
18856         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18857         object.
18858
18859 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18860
18861         * string-icalls.c: optimized a few methods.
18862
18863 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18864
18865         * icall.c: added all new string internal calls
18866         * string-icalls.c: added, new string internal call implementation.
18867         * object.c: added mono_string_new_size for allocating a string a size
18868
18869 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18870
18871         * object.c (mono_object_isinst): use the same code as in the
18872         optimized x86 version.
18873
18874 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18875
18876         * profiler.c: TSC-based timer code (faster and more accurate).
18877         Not hooked up in configure, yet (set USE_X86TSC to 1).
18878
18879 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18880
18881         * profiler.c, profiler.h: track time spent compiling methods.
18882         * threads.c: track thread creation/destruction.
18883
18884 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18885
18886         * profiler.c, profiler.h, profiler-private.h: profiling interface
18887         and sample implementation. Moved here so that it can be used also by
18888         the jit.
18889
18890 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18891
18892         * reflection.c, reflection.h: keep types and other handles separate in
18893         the hash tables for referred tokens. Add guid for modules.
18894
18895 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18896
18897         * assembly.c: fix bugs found with valgrind.
18898         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18899
18900 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18901
18902         * threads: added icall support for getting current domain for
18903                    the thread.
18904  
18905 2002-04-13  Martin Baulig  <martin@gnome.org>
18906
18907         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18908         (MonoDebugVarInfo): Added `index' field for register based addresses.
18909         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18910         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18911         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18912         `MonoDebugVarInfo *this_var'.
18913
18914         * debug-symfile.c (relocate_variable): New static function to write
18915         a location description for a local variable or method parameter.
18916
18917 2002-04-12  Martin Baulig  <martin@gnome.org>
18918
18919         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18920         stack offset and begin/end scope address of a local variable.
18921         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18922         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18923         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18924
18925         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18926         Added new relocation types for start/end scope of a local variable.
18927
18928 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18929
18930         * object.h: add mono_object_domain() macro.
18931         * reflection.c: handle typespecs.
18932         * icall.c: MonoMethod::get_Name() implementation.
18933
18934 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18935
18936         * icall.c: String::GetHashCode() icall implementation.
18937
18938 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18939
18940         * icall.c: String::IndexOfAny icall.
18941         * object.c, object.h: make array->max_length more useful.
18942         Intrduced mono_object_class() and mono_string_length() macros.
18943
18944 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18945
18946         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18947         instead of g_unichar_isdigit.
18948
18949 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18950
18951         * icall.c: Implement a simple Double.ToString().
18952
18953 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18954
18955         * appdomain.h: only io-layer.h is supposed to be included.
18956         * icall.c: explicitly import environ. Fix warning.
18957
18958 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18959
18960         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18961                 return true even if it's not Daylight Savings time.
18962                 Only return false for the case where the function isn't
18963                 implemented for a plaform (read Windows).
18964
18965 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18966
18967         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18968         data with a mutex.
18969
18970 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18971
18972         * mempool.c (mono_mempool_alloc): only use g_malloc when
18973         absolutely necessary.
18974
18975 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18976
18977         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18978
18979         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18980         (mono_class_proxy_vtable): use domain mempool
18981
18982 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18983
18984         * appdomain.h, appdomain.c: split initialization that requires the
18985         execution engine support into mono_runtime_init().
18986
18987 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18988
18989         * class.c (mono_class_init): don't include vtable inside MonoClass
18990         to save some memory, gather some statistics.
18991         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18992
18993 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18994
18995         * icall.c: internalcall implementation for ValueType.Equals().
18996
18997 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18998
18999         * object.c (mono_message_init): moved 
19000         (mono_runtime_exec_main): new arch. independent impl.
19001         (mono_runtime_invoke_array): new method - like
19002         mono_runtime_invoke, but you can pass an array of objects.
19003         (mono_remoting_invoke): new arch. independent impl.
19004         (mono_message_invoke): new arch. independent impl.
19005         (mono_runtime_class_init): new arch. independent impl.
19006         (mono_runtime_object_init): new arch. independent impl.
19007
19008 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19009
19010         * metadata.c, object.c, reflection.c: documented the exported
19011         functions.
19012
19013 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19014
19015         * icall.c: simpler code to pass the assembly builder data to corlib.
19016         Implement GetNestedTypes() internalcall.
19017
19018 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19019
19020         * class.c: warn if a type can't be loaded.
19021
19022 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
19023
19024         * image.h: typedef MonoImageOpenStatus
19025         * types.h: removed unused file
19026         
19027 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
19028
19029         * icall.c: Enum_ToObject accepts enum value arguments.
19030
19031 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19032
19033         * class.c: move initialization of properties, events and nested
19034         classes, so that they happen for interfaces, too.
19035
19036 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19037
19038         * icall.c: cleanup some ugly casts in Array_SetValue*.
19039
19040 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19041
19042         * icall.c: the values array fro enums is of the correct type, now.
19043         Implement (correctly) getFullName instead of assQualifiedName for
19044         MonoType.
19045         * reflection.h, reflection.c: added mono_type_get_name ().
19046
19047 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19048
19049         * assembly.c, image.h: for each MonoImage, record from wich assembly
19050         it was loaded.
19051         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19052         Make Type.Assembly work.
19053
19054 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19055
19056         * debug-symfile.h: use char* instead of gpointer to avoid
19057         unnecessary casts.
19058
19059         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19060
19061         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19062         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19063
19064 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19065
19066         * icall.c (mono_message_init): impl. (code cleanup)
19067         (ves_icall_InternalExecute): impl. FieldGetter
19068
19069         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19070         defined we call all (non-static)methods through the vtable. 
19071
19072 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19073
19074         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19075         finalizer even though the memory is still referenced (and the chunk of
19076         memory is not freed).
19077
19078 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19079
19080         * assembly.c: fix brokeness.
19081
19082 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19083
19084         * class.c: kill some warnings. Check explicit interface method
19085         implementation also without considering the namespace.
19086         Load also literal strings in static class data.
19087
19088 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19089
19090         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19091         (default_assembly_name_resolver): Make the resolver take the
19092         "base" directory where the assembly was originally defined, so we
19093         can load DLLs that are in the same directory as the assembly that
19094         is being referenced.
19095
19096 2002-03-28  Dick Porter  <dick@ximian.com>
19097
19098         * file-io.h: 
19099         * file-io.c:
19100         * socket-io.c: 
19101         * unicode.h: 
19102         * unicode.c: Warning cleanups
19103
19104 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19105
19106         * object.h, reflection.h: use the correct type instead of MonoObject.
19107
19108 2002-03-28  Martin Baulig  <martin@gnome.org>
19109
19110         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19111         (mono_debug_update_symbol_file): Initialize classes if necessary.
19112
19113 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19114
19115         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19116         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19117
19118 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19119
19120         * assembly.h: fix function prototype.
19121         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19122         * mono-endian.h: use const cast.
19123
19124 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19125
19126         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19127
19128 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19129
19130         * loader.c: don't assert when a typeref can't be loaded, give
19131         a chance to the runtime to trow an exception instead.
19132         * loader.h: fix warning.
19133
19134 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19135
19136         * class.c (mono_class_proxy_vtable): added proxy support
19137
19138 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19139
19140         * icall.c: removed last of PAL calls, added System.Environment
19141         * file-io.h, file-io.c: MonoIO implementation
19142         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19143
19144 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19145
19146         * appdomain.c: do not use the byte marker in ldstr table lookup.
19147         * debug-helpers.c: allow two ':' to separate class and method name.
19148         * object.c: allocate arrays bounds with the GC, too.
19149         * verify: add a few more checks.
19150
19151 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19152
19153         * reflection.c: output also literal strings. Allocate parameter data
19154         with GC_malloc() (thanks, Martin, for catching this!).
19155
19156 2002-03-26  Martin Baulig  <martin@gnome.org>
19157
19158         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19159         include the `this' offset in the `param_offsets'.
19160
19161 2002-03-25  Martin Baulig  <martin@gnome.org>
19162
19163         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19164         mono_debug_get_class() function to get the classes. Added new
19165         relocation types for arrays and strings.
19166         (mono_debug_get_class): New static function to search in all
19167         referenced assemblies for a metadata token.
19168
19169         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19170
19171 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19172
19173         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19174         hold gc-allocated objects. Make the string heap a stream like the
19175         others. Removed duplicated code when writing stream info.
19176         Added asserts to catch possible buffer overflows. Set the sorted map
19177         for tables that need sorting. Added some documentation.
19178
19179 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19180
19181         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19182         for interned strings and vtables.
19183
19184 2002-03-24  Martin Baulig  <martin@gnome.org>
19185
19186         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19187         it in the array since it was created with g_slist_prepend().
19188
19189 2002-03-24  Martin Baulig  <martin@gnome.org>
19190
19191         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19192         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19193         (mono_debug_method_from_token): Renamed to
19194         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19195         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19196
19197         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19198         relocation types.
19199
19200         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19201
19202 2002-03-24  Martin Baulig  <martin@gnome.org>
19203
19204         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19205         (mono_debug_method_from_token): New func.
19206
19207         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19208         New interncall, calls mono_debug_local_type_from_signature().
19209         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19210         calls mono_debug_method_from_token().
19211
19212 2002-03-23  Martin Baulig  <martin@gnome.org>
19213
19214         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19215         specifies the number of bytes to be converted, not the array size.
19216         Return the number of chars, not the number of bytes.
19217         (ves_icall_iconv_get_chars): The `byteCount' argument
19218         specifies the number of bytes to be converted, not the array size.
19219
19220 2002-03-23  Martin Baulig  <martin@gnome.org>
19221
19222         * reflection.h (MonoReflectionSigHelper): New type.
19223
19224         * reflection.c (mono_reflection_sighelper_get_signature_local),
19225         (mono_reflection_sighelper_get_signature_local): New functions.
19226
19227         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19228         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19229         interncalls.
19230
19231 2002-03-23  Martin Baulig  <martin@gnome.org>
19232
19233         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19234         is_writeable is set.
19235         (mono_raw_buffer_update): New function to write the modified map
19236         back to disk.
19237
19238         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19239
19240         * debug-symfile.c (mono_debug_update_symbol_file): Call
19241         mono_raw_buffer_update() when done writing.
19242
19243 2002-03-23  Martin Baulig  <martin@gnome.org>
19244
19245         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19246
19247         * debug-symfile.c: Added support for arguments and local variables.
19248
19249 2002-03-23  Dick Porter  <dick@ximian.com>
19250
19251         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19252         protected by ifdefs, hence breaking the w32 build.
19253
19254 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19255
19256         * object.c: implement is_interned() the right way.
19257
19258 2002-03-21  Martin Baulig  <martin@gnome.org>
19259
19260         * debug-symfile.[ch]: New files to handle debugging information
19261         files. There's also support to dynamically update these symbol
19262         files to include machine dependent information.
19263
19264 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19265
19266         * threads.c (mono_thread_create): new function to create thread
19267         from C
19268
19269 2002-03-20  Martin Baulig  <martin@gnome.org>
19270
19271         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19272         method is a constructor.
19273         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19274         points to ves_icall_InternalInvoke().
19275
19276 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19277
19278         * file-io.c: Flush shouldn't throw exceptions.
19279
19280 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19281
19282         * file-io.c: FileStream flush support; FileSetLength now
19283         restores file pointer.
19284
19285 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19286
19287         * class.c: set image for pointer classes.
19288
19289 2002/03/19  Nick Drochak <ndrochak@gol.com>
19290
19291         * sysmath.c: Forgot one.
19292
19293 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19294
19295         * sysmath.c: Avoid redefining existing names.
19296
19297 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19298
19299         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19300         handled by runtime as icall rather than dllimport from libm.so
19301         * file-io.c, file-io.h: fixed handle argument type.
19302
19303 2002-03-18  Dick Porter  <dick@ximian.com>
19304
19305         * reflection.c (mono_image_get_type_info): rename interface to
19306         iface, because of "#define interface struct" on windows.
19307
19308 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19309
19310         * class.c, class.h: rename and export mono_ptr_class_get().
19311         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19312         * reflection.c, reflection.h, icall.c: better/saner type name
19313         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19314         method signatures.
19315
19316 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19317
19318         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19319
19320         * icall.c (ves_icall_InternalInvoke): impl.
19321
19322 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19323
19324         * reflection.c: output the interface map table, too.
19325
19326 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19327
19328         * class.c (class_compute_field_layout): separate computation of 
19329         static field layout
19330
19331 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19332
19333         * icall.c: added System.Buffer support.
19334         * file-io.c: moved file icalls from PAL to FileStream.
19335
19336 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19337
19338         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19339
19340 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19341
19342         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19343
19344 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19345
19346         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19347
19348 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19349
19350         * debug-helpers.{c,h}: moved here from monograph some useful functions
19351         to locate a method by name/signature in a class or image. Included
19352         also a small and flexible IL disassembler.
19353
19354 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19355
19356         * reflection.c: fixup tokens in methods with small header size, too.
19357
19358 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19359
19360         * object.c (mono_string_to_utf8): remove assert(!error), instead
19361         print a warning. 
19362
19363 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19364
19365         * icall.c: update to the new mono_Array_class_get interface.
19366
19367 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19368
19369         * appdomain.c, object.c: Boehm-GC enable.
19370         * icall.c: make get_data_chunk() support split data requests.
19371         Ensure a class is initialized in more cases. Return only the first
19372         property found in GetProperties() or the compiler gets confused. 
19373         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19374         * reflection.h, reflection.c: add fixup mechanism for field and method
19375         tokens. Initialize assembly->typeref in a single place. Output
19376         properties after events. Support custom attributes for events, too.
19377         Typo fix for paramter custom attrs.
19378
19379 2002-03-07  Martin Baulig  <martin@gnome.org>
19380
19381         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19382
19383 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19384
19385         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19386
19387 2002-03-06  Martin Baulig  <martin@gnome.org>
19388
19389         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19390         non-zero lower bounds. See testcases #F10-#F13.
19391
19392 2002-03-05  Martin Baulig  <martin@gnome.org>
19393
19394         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19395
19396         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19397         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19398         here.
19399         (ves_icall_System_Array_SetValue): Likewise.
19400         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19401         as argument and does the actual work. This function is used when copying a
19402         multi-dimensional array.
19403         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19404         now do all the widening conversions of value types.
19405         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19406
19407 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19408
19409         * class.c: remove some magic numbers and use the smbolic names,
19410         instead. Added init_events() to load event info at class init time.
19411         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19412         and mono_metadata_methods_from_event().
19413         * reflection.h, reflection.c: added support for writing out the evnets
19414         related information.
19415
19416 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19417
19418         * reflection.h, icall.c: use a different method (GetInterfaces)
19419         to gather interface info and add isbyref, isprimitive and
19420         ispointer to the ves_icall_get_type_info() return value.
19421
19422 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19423
19424         * class.h: stared adding support for events.
19425         * icall.c: split find_members implementation. Added debug icall to get
19426         the address of an object.
19427         * reflection.c: handle TypeBuilders in mono_type_get_object().
19428
19429 2002-03-01  Martin Baulig  <martin@gnome.org>
19430
19431         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19432         ArgumentOutOfRangeException(), not an ArgumentException().
19433         (ves_icall_System_Array_GetLowerBound): Likewise.
19434         (ves_icall_System_Array_GetValue): Improved argument checking.
19435         (ves_icall_System_Array_SetValue): Improved argument checking.
19436
19437 2002-03-01  Martin Baulig  <martin@gnome.org>
19438
19439         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19440         called with invalid arguments rather than just dying with g_assert().
19441         (ves_icall_System_Array_SetValue): Likewise.
19442         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19443         raise a NotImplementedException instead.
19444         (ves_icall_System_Array_GetLength): Added argument checking.
19445         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19446
19447 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19448
19449         * object.h (mono_assert): new macros mono_assert and
19450         mono_assert_not_reached
19451
19452 2002-02-28  Martin Baulig  <martin@gnome.org>
19453
19454         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19455         and "System::String::IsInterned" to "System::String::_IsInterned".
19456
19457 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19458
19459         * icall.c: remove hacks for typebuilder. Added icall to create a
19460         modified type from a tybebuilder.
19461         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19462         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19463         to create a backing MonoClass for a TypeBuilder.
19464
19465 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19466
19467         * class.c, class.h: more refactoring of class init.
19468         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19469
19470 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19471
19472         * marshal.c, marshal.h: start of marshaling interface.
19473
19474 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19475
19476         * icall.c: fix order in assembly qualified name icall.
19477
19478 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19479
19480         * class.c: do not free str, since we store it in the hash table.
19481         * reflection.h: add label field to MonoILExceptionInfo.
19482         * reflection.c: handle references to more than one assembly. Handle
19483         case when there isn't a module created in the assembly.
19484
19485 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19486
19487         * class.c: Fix typo. Start refactoring of class init code.
19488
19489 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19490
19491         * appdomain.c: exit with 1 on error.
19492         * class.c: we already have the name in MonoClassField.
19493         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19494         MonoStreamHeader instead of an offset of image->raw_metadata.
19495
19496 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19497
19498         * appdomain.c (mono_init): Be even more descriptive about the error.
19499
19500 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19501
19502         * appdomain.c: give the user an informative message when corlib can't
19503         be loaded.
19504
19505 2002-02-26  Martin Baulig  <martin@gnome.org>
19506
19507         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19508         New icall to get the time zone data.
19509
19510 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19511
19512         * reflection.c: set virtual and raw size of section correctly.
19513         * threads.c: transfer domain information to newly created threads.
19514
19515 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19516
19517         * class.c: when instancing a class in a domain, load the default
19518         vaules for static fields from the constant table. Fix System.Enum to
19519         not be an enum.
19520         * icall.c: implement Object::GetType() internalcall. Implemented
19521         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19522         Fixed checking of binding flags in find_members().
19523         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19524         * reflection.c: handle enumerations when writing to the constant
19525         table. Use a different object cache for types.
19526
19527
19528 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19529
19530         * object.c (mono_object_isinst): fix for arrays
19531
19532         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19533
19534 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19535
19536         * object.c: don't use mprotect ()  and fix intern pool hash table
19537         lookup for big endian systems.
19538
19539 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19540
19541         * icall.c: change type_is_subtype_of () signature.
19542
19543 2002-02-21  Mark Crichton  <crichton@gimp.org>
19544
19545         * rand.c, rand.h: Added random number generator for
19546         System.Security.Cryptography classes.
19547
19548         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19549
19550         * icall.c: Added System.Security.Cryptography calls.
19551
19552 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19553
19554         * class.c, icall.c, metadata.c: better support for pointer types.
19555         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19556         * reflection.c: Add support for getting custom attrs for properties
19557         and simplify some code.
19558
19559 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19560
19561         * icall.c: change getToken () and add custom attribute GetBlob()helper
19562         method.
19563         * reflection.h: add custom attrs array to the reflection builder structures.
19564         * reflection.c: encode and emit custom attributes for all the relevant
19565         reflection objects. Cache fieldref and methodref tokens. Change
19566         mono_image_create_token() interface to take a MonoDynamicAssembly.
19567         More complete custom attributes decoder. Load custom attributes for
19568         Assembly, Field, Method and Constructor objects, too. Make the
19569         returned array an Attribute[] one, not object[]. Added
19570         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19571         custom attribute constructor.
19572
19573 2002-02-20  Dick Porter  <dick@ximian.com>
19574
19575         * icall.c:
19576         * rawbuffer.c:
19577         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19578         problem code out for now).
19579
19580 2002-02-19  Radek Doulik  <rodo@ximian.com>
19581
19582         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19583
19584 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19585
19586         * icall.c: register the GetCustomAttributes method.
19587         * object.c, object.h: add mono_string_new_len ().
19588         * reflection.h, reflection.c: added mono_runtime_invoke(),
19589         mono_install_runtime_invoke(). Added
19590         mono_reflection_get_custom_attrs () to load custom attributes and
19591         create the attribute objects.
19592
19593 2002-02-19  Dick Porter  <dick@ximian.com>
19594         * threads-dummy-types.c:
19595         * threads-dummy-types.h:
19596         * threads-dummy.c:
19597         * threads-dummy.h:
19598         * threads-pthread-types.c:
19599         * threads-pthread-types.h:
19600         * threads-pthread.c:
19601         * threads-pthread.h:  Deleted obsolete files
19602
19603 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19604
19605         * class.c (mono_class_vtable): runtime init the class when we
19606         allocate static class data.
19607
19608         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19609
19610         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19611         and String - but we will need generic marshalling support in the
19612         future. 
19613         (mono_init): set the domain name in a ms compatible way
19614
19615         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19616         String[].
19617
19618 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19619
19620         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19621         for sizes
19622
19623         * appdomain.c (mono_domain_unload): impl.
19624
19625 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19626
19627         * appdomain.c, object.c: fix intern pool implementation.
19628         * class.c: fix alignment code.
19629
19630 2002-02-16  Radek Doulik  <rodo@ximian.com>
19631
19632         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19633         and s2 > s1, just copy lower bytes to be compatible with little
19634         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19635         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19636
19637         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19638         force big_endian to be 1 for big endian machines 
19639         (ves_icall_iconv_new_decoder): ditto
19640
19641 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19642
19643         * socket-io.c (convert_sockopt_level_and_name): If the system
19644         doesn't define SOL_IP or SOL_TCP, get them by hand using
19645         getprotobyname() and caching the values (because this could be a
19646         slow operation).
19647         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19648         Use the appropriate struct when the system does support it. Ie,
19649         not all systems have struct ip_mreqn so use struct ip_mreq when
19650         appropriate.
19651
19652 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19653
19654         * reflection.c: handle finally clauses.
19655
19656 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19657
19658         * socket-io.c: use g_snprintf() instead of snprintf.
19659
19660 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19661
19662         * reflection.c (mono_param_get_objects): Cast second argument to
19663         mono_method_get_param_names to a const char** to silence the
19664         compiler warning.
19665
19666         * appdomain.c (mono_domain_assembly_open): Put parens around the
19667         truth statement in the for-loop.
19668
19669         * unicode.c (iconv_convert): Got rid of a compiler warning about
19670         int i being unused when the system has a new iconv.
19671         (iconv_get_length): Same.
19672
19673         * image.c (load_class_names): Cast the second argument to
19674         g_hash_table_insert() to char* to hush compiler warnings about the
19675         arg being a const.
19676         (mono_image_open): Same here.
19677
19678         * socket-io.c: Don't conditionally include sys/filio.h or
19679         sys/sockio.h here anymore since we now get them from
19680         io-layer/io-layer.h
19681         (inet_pton): If the system doesn't support inet_aton, implement
19682         using inet_addr and also #define INADDR_NONE if it isn't defined
19683         by the system.
19684
19685 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19686
19687         * metadata.c, metadata.h: added function to get packing and size info
19688         of a typedef.
19689         * reflection.h, reflection.c: handle field RVA data. Save info about
19690         the table layout if needed. Assign typedef indexes to all the types
19691         before dumping the info about them to avoid forward reference problems.
19692
19693 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19694
19695         * socket-io.c (convert_sockopt_level_and_name): ifdef
19696         SO_ACCEPTCONN because it is not defined on my system (old debian)
19697
19698 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19699
19700         * opcode.c: use stddef.h to get NULL.
19701
19702 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19703
19704         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19705         for FIONBIO, FIONREAD and SIOCATMARK.
19706         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19707         define INADDR_NONE and besides, inet_addr() is deprecated and
19708         should not be used. Use inet_pton() instead - it also has the
19709         added bonus that it can easily handle IPv6 addresses as well.
19710         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19711
19712 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19713
19714         * decimal.c: remove _MSC_VER conditional.
19715
19716 2002-02-13  Dick Porter  <dick@ximian.com>
19717
19718         * socket-io.c: 
19719         * icall.c: Internal calls for Blocking, Select, Shutdown,
19720         GetSocketOption and SetSocketOption
19721
19722 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19723
19724         * assembly.cs: better resolver: use it instead of some kludgy
19725         code.
19726
19727 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19728
19729         * reflection.c: the best way to speed-up the compiler is to avoid
19730         infinite loops.
19731
19732 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19733
19734         * class.c (mono_class_vtable): changed the object layout
19735         (obj->vtable->class). 
19736         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19737
19738 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19739
19740         * assembly.c: look for assemblies in the assembly dir, too.
19741
19742 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19743
19744         * class.c: fix thinko in mono_class_from_type().
19745
19746 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19747
19748         * exception.h, exception.c: added TypeLoadException.
19749         * object.h, object.c: added mono_array_clone ().
19750         * icall.c: handle throwOnError in AssemblyGetType().
19751         Added Array.Clone().
19752         * opcode.h, opcode.c: use a single value for the opcode val.
19753         Compile fix for non-gcc compilers.
19754
19755 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19756
19757         * opcodes.c, opcodes.h: export interesting info about opcodes.
19758
19759 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19760
19761         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19762         icalls. 
19763
19764         * class.c (class_compute_field_layout): set element_class for enums
19765         (mono_class_create_from_typedef): set element_class for normal classes
19766
19767         * icall.c (ves_icall_System_Enum_get_value): impl.
19768
19769         * class.c (mono_class_create_from_typedef): do not set valuetype
19770         flag for System.ValueType and System.Enum
19771
19772 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19773
19774         * unicode.c (iconv_convert): fix big endian problem.
19775
19776 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19777
19778         * class.c: add asserts if we are ever going to scribble over memory.
19779         * socket-io.c: not all systems have AF_IRDA defined.
19780
19781 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19782
19783         * class.c (class_compute_field_layout): do not consider static
19784         fields to compute alignment
19785
19786 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19787
19788         * appdomain.c (mono_appdomain_get): impl.
19789         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19790
19791 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19792
19793         * icall.c: ignore "file://" prefix when loading an assembly.
19794
19795 2002-01-23  Dick Porter  <dick@ximian.com>
19796
19797         * socket-io.c:
19798         * icall.c:
19799         * Makefile.am: Added socket support
19800
19801 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19802
19803         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19804         code back.  This should return the assemblies that are loaded by
19805         the runtime on behalf of an application domain. 
19806
19807         The current implementation is still broken, it just returns every
19808         assembly loaded, but until we get real applications domain this
19809         will do.
19810
19811 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19812
19813         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19814         AppDomain object.
19815
19816 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19817
19818         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19819         the mono_class_from_name lookup.
19820         (ves_icall_get_parameter_info): ditto.
19821         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19822         method.
19823         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19824
19825 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19826
19827         * class.c: load also nested classes on class init.
19828         System.ValueType instance methods gets passed boxed
19829         values, unless methods in derived classed that get a pointer to the
19830         data.
19831         * icall.c: use better name parsing code in GetType().
19832         * image.c, image.h: add mono_image_loaded ().
19833         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19834         * reflection.c, reflection.h: added mono_reflection_parse_type().
19835
19836 2002-01-22  Veronica De Santis <veron78@interfree.it>
19837
19838         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19839         * threads.c : Added the implementation of internal calls for events
19840         * threads.h : Added prototypes of internal calls for events
19841         
19842 2002-01-21  Radek Doulik  <rodo@ximian.com>
19843
19844         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19845
19846 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19847
19848         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19849         (mono_class_value_size): use min_align
19850
19851 2002-01-20  Dick Porter  <dick@ximian.com>
19852
19853         * threads.h:
19854         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19855         so it compiles on w32.
19856
19857 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19858
19859         * metadata.c (mono_type_stack_size): impl.
19860
19861         * class.c (mono_class_get_field): impl. memberref token
19862
19863 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19864
19865         * icall.h : Added the internal calls mapping for CreateMutex_internal
19866                     and ReleaseMutex_internal.
19867         * threads.h : Added the prototype of mutexes internal calls.
19868         * threads.c : Added the implementations of mutexes internal calls.
19869
19870 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19871
19872         * metaparse.h: removed unused file.
19873         * reflection.c, reflection.h: added stream_data_align () function 
19874         to align data in streams and keep stream aligned. Add support for
19875         exception support in method headers.
19876
19877 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19878
19879         * unicode.c: make iconv_convert () return the number of bytess written
19880         in the output buffer.
19881
19882 2002-01-15  Dick Porter  <dick@ximian.com>
19883         * threads.c: Make the runtime's idea of infinite timeouts coincide
19884         with the class library's
19885
19886         Fix a particularly egregious bug in mono_thread_cleanup(). That
19887         code was so utterly bogus it must have been written on a Monday.
19888
19889 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19890
19891         * reflection.h: add subtypes field to TypeBuilder.
19892         * reflection.c: encode constants for literal fields.
19893         Handle subtypes. Fix user string token (and add a zero byte)
19894         at the end.
19895         
19896 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19897
19898         * class.c (mono_class_init): bug fix: assign slot numbers for
19899         abstract methods.
19900
19901 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19902
19903         * reflection.c: don't try to output a code RVA for abstract methods.
19904         Small fixes for method header format. Output parameter info to the
19905         ParamDef table. Save method overriding info to MethodImpl table.
19906         Fix property support. Allow typedef.extends to be a type in the
19907         building assembly.
19908         * verify.c: fix off-by-one error.
19909
19910 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19911
19912         * class.c: fix mono_class_from_mono_type () for szarray types.
19913         Remove unused cache check in mono_class_from_type_spec().
19914         * icall.c: *type_from_name () functions handle simple arrays and byref.
19915         * reflection.c: handle byref and szarray types. Handle methods without
19916         body (gets P/Invoke compilation working). Handle types and fields in
19917         get_token ().
19918         * reflection.h: add rank to MonoTypeInfo.
19919
19920 2002-01-10  Dick Porter  <dick@ximian.com>
19921
19922         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19923         internal calls
19924
19925 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19926
19927         * icall.c: initialize class in type_from_handle ().
19928         Loop also in parent classes for get_method ().
19929         * reflection.c: properly encode class and valuetype types.
19930         Start on encoding TypeBuilder types. Handle fieldrefs.
19931         Use correct length when registering a user string.
19932         Handle ConstructorBuilder and MonoMethod in get_token ().
19933         Make mono_type_get_object () aware of cached types.
19934         * object.c: back out change to mono_string_new ().
19935
19936 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19937         * object.c: mono_string_new should return a NULL when the string 
19938         passed in is NULL -- not try to deference it.
19939         
19940 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19941
19942         * icall.c: hack to make IsSubType work for TypeBuilders.
19943         * reflection.c: emit constructors before methods.
19944         Retrieve param names in mono_param_get_objects().
19945
19946 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19947
19948         * Makefile.am: fix list of headers and sources so automake 1.5
19949         doesn't complain. Removed \# at end of list.
19950
19951 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19952
19953         * reflection.c: get token for a method ref. Set return type of
19954         constructor to void.
19955         * loader.c: debug message.
19956         * class.c: typo fix.
19957
19958 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19959
19960         * icall.c: fix array init with rank > 1. FindMembers
19961         loops in parent class as well.
19962         * image.c: do not insert nested types in name cache.
19963         * reflection.c: warning fix.
19964         * reflection.h: add override method (for interface impl).
19965
19966 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19967
19968         * metadata.c: fix customattr decoding.
19969
19970 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19971
19972         * rawbuffer.cs: Added native Win32 implementation, avoids using
19973         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19974
19975 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19976
19977         * class.c: make the low-level routines handle the cache.
19978
19979 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19980
19981         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19982
19983 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19984
19985         * class.c: fix mono_array_element_size() for objects.
19986         * class.h, class.c: add properties to MonoClass and load them
19987         at init time.
19988         * icall.c: check with isinst() when assigning a value to an array
19989         instead of requiring the classes to match exactly.
19990         Implemented icall for System.Type::GetType().
19991         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19992         enums. Handle bindingflags when looking for methods and fields.
19993         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19994         and mono_metadata_methods_from_property().
19995         * reflection.h, reflection.c: added structures for propreties,
19996         parameters and enums. Implemented mono_property_get_object() and
19997         mono_param_get_objects().
19998
19999 2001-12-18  Dick Porter  <dick@ximian.com>
20000
20001         * file-io.c: Use mono_string_to_utf16() instead of
20002         mono_string_chars()
20003
20004         * object.c: Added mono_string_to_utf16(), which copies the non
20005         NULL-terminated MonoString into a new double-null-terminated
20006         buffer.
20007
20008 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
20009
20010         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20011
20012 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
20013
20014         * file-io.c: raise exceptions if handle is invalid.
20015
20016 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20017
20018         * assembly.c: yet another check for mscorlib.
20019         * class.c, class.h: load nesting info for classes.
20020         * icall.c: many new functions to support the Reflection classes.
20021         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20022         * reflection.h, reflection.c: mono_image_create_token(),
20023         mono_assembly_get_object(), mono_type_get_object(),
20024         mono_method_get_object(), mono_field_get_object(): methods to return
20025         objects that parallel the C representation of assemblies, types,
20026         methods, fields.
20027
20028 2001-12-11  Dick Porter  <dick@ximian.com>
20029
20030         * icall.c:
20031         * file-io.c: Internal calls for file IO.
20032
20033 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20034
20035         * tabledefs.h: missing FileAttributes.
20036         * verify.h, verify.c: use is_valid_string () to simplify and check for
20037         valid strings more correctly. Fix warnings and speeling.
20038         Check more tables: Filed, File, ModuleRef, StandAloneSig.
20039         Check code: branches, maxstack, method calls.
20040
20041 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20042
20043         * object.c (mono_object_allocate): removed static, so that the jit
20044         can allocate value types.
20045
20046         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20047
20048 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20049
20050         * class.c: init enum types right away and register the
20051         token->MonoClass map in mono_class_create_from_typedef ().
20052         * verify.h, verify.c: first cut of the verifier.
20053         * pedump.c: add --verify switch to verify metadata tables.
20054         * tabledefs.h: add some missing enums.
20055
20056 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20057
20058         * class.c (mono_install_runtime_class_init): impl.
20059         (mono_class_init): renamed mono_class_metadata_init to
20060         mono_class_init, also removed the metadata_inited flag
20061
20062         * object.c (mono_object_isinst): use faster algorithm
20063
20064 2001-11-30  Radek Doulik  <rodo@ximian.com>
20065
20066         * mono-endian.h: reverted last change
20067         added function prototypes
20068
20069         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20070         add mono-endian.c back
20071
20072         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20073         for unaligned access, I've mistaked it with endianess. I am
20074         sorry.
20075         (mono_read16): fix reverted endianess
20076         (mono_read64): ditto
20077         (mono_read32): ditto
20078
20079 2001-11-30  Dick Porter  <dick@ximian.com>
20080
20081         * exception.c: Implement mono_exception_from_name()
20082
20083 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20084
20085         * metadata.h, metadata.c: remove params_size and locals_size and their
20086         calculation from the metadata code: they are only usefult to the
20087         interp.
20088
20089 2001-11-29  Radek Doulik  <rodo@ximian.com>
20090
20091         * object.c (mono_ldstr): swap bytes here, it's probably not the
20092         best place, but works for me now, I'll redo it once I know mono
20093         better, also note that I add PROT_WRITE and don't reset back, also
20094         note that it's only affects big endians, so x86 should be OK
20095
20096         * mono-endian.h (read16): use just glib macros for both endians
20097
20098         * mono-endian.c: removed as glib macros are used in in
20099         mono-endian.h so we don't need to care about endianess for read
20100         macros as glib does that for us already
20101
20102 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20103
20104         * class.h, class.h: take minimum alignment into consideration so
20105         that the fields of a class remain aligned also when in an array.
20106
20107 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20108
20109         * loader.h, loader.c: add mono_method_get_param_names().
20110         * class.c: 0-init class fields.
20111
20112 2001-11-26  Dick Porter  <dick@ximian.com>
20113
20114         * icall.c:
20115         * threads-types.h:
20116         * threads.c: New file that handles System.Threading on all platforms
20117
20118         * object.c: 
20119         * object.h: Remove the synchronisation struct from MonoObject,
20120         replace it with a pointer that gets initialised on demand
20121
20122         * Makefile.am: Replace all the system-specific threading code with
20123         a single file that uses the new wrapper library
20124
20125 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20126
20127         * class.c, class.h: add mono_install_trampoline() so that the runtime
20128         can register a function to create a trampoline: removes the ugly
20129         requirement that a runtime needed to export arch_create_jit_trampoline.
20130         * object.h, object.c: added mono_install_handler() so that the runtime
20131         can install an handler for exceptions generated in C code (with
20132         mono_raise_exception()). Added C struct for System.Delegate.
20133         * pedump.c: removed arch_create_jit_trampoline.
20134         * reflection.c: some cleanups to allow registering user strings and
20135         later getting a token for methodrefs and fieldrefs before the assembly
20136         is built.
20137         * row-indexes.h: updates and fixes from the new ECMA specs.
20138
20139 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20140
20141         * class.h, class.c: add enum_basetype field to MonoClass.
20142         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20143         to get index in the constant table reated to a field, param or
20144         property.
20145         * reflection.h, reflection.c: handle constructors. Set public-key and
20146         version number of the built assembly to 0.
20147         * row-indexes.h: update from new ECMA spec.
20148
20149 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20150
20151         * class.h, class.c: add a max_interface_id to MonoClass.
20152         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20153         since it's used to do that. Added mono_type_type_from_obj().
20154         Make GetType() return NULL instead of segfaulting if the type was not
20155         found. Handle simple arrays in assQualifiedName.
20156         * object.h: add a struct to represent an Exception.
20157         * reflection.c: output call convention in method signature.
20158         Add code to support P/Invoke methods and fixed offsets for fields.
20159
20160 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20161
20162         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20163         the value.
20164         * icall.c: use mono_array_addr instead of array->vector: fixes the
20165         reflection image writing.
20166         * reflection.c: init call convention byte to 0 in method signature.
20167         Encode the property signature. Don't output property-related methods
20168         twice. Really process the properties for a type (don't cast a field to
20169         a property, my mom always told me that).
20170         Fix 64 bit issues in pointer alignment in a different and more
20171         readable way.
20172
20173 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20174
20175         * loader.h: Removed type class from MonoDefaults, added monotype
20176
20177         * loader.c: Loaded MonoType, removed loading of Type
20178
20179         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20180         and fills in System.Type._impl with a RuntimeTypeHandle rather
20181         than the actual MonoClass *
20182
20183         (ves_icall_type_from_handle): change from type_class to
20184         monotype_class
20185
20186         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20187         implemented
20188
20189         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20190         implemented
20191
20192         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20193
20194         (ves_icall_System_Reflection_Assembly_GetType): implemented
20195
20196         (ves_icall_System_MonoType_assQualifiedName): implemented
20197
20198         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20199
20200 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20201
20202         * assembly.c (mono_assembly_open): Implement a cache for the
20203         assemblies. 
20204
20205         (mono_assembly_close): only destroy the assembly when the last
20206         reference is gone.
20207         
20208 2001-11-09  Dick Porter  <dick@ximian.com>
20209
20210         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20211
20212 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20213
20214         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20215
20216 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20217
20218         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20219         from Martin Weindel.
20220         * object.h: add mono_string_chars ().
20221
20222 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20223
20224         * reflection.c (build_compressed_metadata): Eliminates warnings
20225         and uses 64-bit clean code.
20226
20227         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20228         (mono_type_equal): Change signature to eliminate warnings.
20229
20230 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20231
20232         * icall.c, loader.c: remove the internalcall array constructors.
20233         Changes to match the new MonoArray structure.
20234         * object.h, object.c: an array object doesn't allocate an extra
20235         vector. Add mono_array_new_full () to create jagged arrays easily.
20236
20237 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20238
20239         * metadata.h, metadata.c: add mono_metadata_field_info () to
20240         retreive all the info about a field from vairous tables.
20241         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20242         * class.h, class.c: augment MonoClassField with more info.
20243         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20244         policy and load a field's RVA if needed.
20245
20246 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20247
20248         * class.c (mono_class_metadata_init): create a trampoline for all
20249         virtual functions instead of actually compiling them.
20250
20251 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20252
20253         * class.h, class.c: include name in MonoClassField.
20254         * class.c: fix fundamental type of System.Object and System.String.
20255         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20256         tokens in ldtoken.
20257         * icall.c: remove internalcalls for the Reflection stuff that is now
20258         done in C# code.
20259         * loader.c: mono_field_from_memberref () implementation.
20260         * mono-endian.c: thinko (s/struct/union/g).
20261         * object.c, object.h: make the mono_string_* prototypes actually use
20262         MonoString instead of MonoObject.
20263         * reflection.c, reflection.h: updates for changes in the reflection
20264         code in corlib: we use C structures that map to the actual C# classes.
20265         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20266         fat method header if needed and use the info from the ILGenerator for
20267         methods. Handle fields in types. Misc fixes.
20268
20269 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20270
20271         * class.c (mono_class_metadata_init): bug fix: always allocate
20272         space for static class data
20273
20274 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20275
20276         * class.c (mono_compute_relative_numbering): use relative
20277         numbering to support fast runtime type checks.
20278
20279 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20280
20281         * class.c (mono_class_create_from_typeref): added debugging output
20282         to print class name when MonoDummy is returned instead of real class
20283
20284 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20285
20286         * class.c (mono_class_metadata_init): interface offset table now
20287         contains pointers into the vtable - this is more efficient for the jit
20288
20289 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20290
20291         * class.c (mono_class_metadata_init): use a temporary vtable (the
20292         old algorithm only worked for the interpreter, but not for the jit)
20293
20294 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20295
20296         * loader.c (method_from_memberref): use mono_class_get to get the
20297         class of an array instead of using System.Array directly.
20298         (mono_get_method): also add MEMBERREF methods to the method cache
20299         which usefull for arrays.
20300
20301 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20302
20303         * pedump.c (arch_compile_method): added to compute vtable entry
20304
20305         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20306         number of interfaces.
20307         
20308         * class.h: merged MonoArrayClass into MonoClass
20309
20310         * class.c (mono_class_create_from_typedef): compute the vtable size and
20311         allocate space to include the vtable inside MonoClass
20312         (mono_class_metadata_init): initialize the vtable
20313
20314 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20315
20316         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20317         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20318         * image.c: endian fixes by Laurent Rioux.
20319         * object.h, object.c: rename MonoStringObject to MonoString and
20320         MonoArrayObject to MonoArray. Change some function names to conform to
20321         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20322         guint16* as first argument, so don't use char*.
20323         Provide macros to do the interesting things on arrays in a portable way.
20324         * threads-pthread.c: updates for the API changes and #include <sched.h>
20325         (required for sched_yield()).
20326         * icall.c: updates for the API changes above.
20327         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20328         platforms that need them.
20329
20330 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20331
20332         * class.c: set the correct type for all the fundamental
20333         type when loading the class.
20334
20335 2001-10-05  Dick Porter  <dick@ximian.com>
20336
20337         * threads-pthread.c (pthread_mutex_timedlock): Simple
20338         compatibility version for C libraries that lack this call.
20339
20340 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20341
20342         * class.c: MonoTypes stored in MonoClass are stored as
20343         fundamental MonoTypes when the class represents a
20344         fundamental type (System.Int32, ...).
20345         The TypeHandle return by ldtoken is a MonoType*.
20346         * icall.c: ves_icall_get_data_chunk () write out all the
20347         PE/COFF stuff. Implement ves_icall_define_method (),
20348         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20349         * image.c: properly skip unknown streams.
20350         * loader.h, loader.c: add type_class to mono_defaults.
20351         * metadata.c, metadata.h: export compute_size () as
20352         mono_metadata_compute_size () with a better interface.
20353         Typo and C&P fixes.
20354         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20355         * reflection.c, reflection.h: many cleanups, fixes, output method
20356         signatures and headers, typedef and typeref info, compress the metadata
20357         tables, output all the heap streams, cli header etc.
20358         * row-indexes.h: typo fixes.
20359
20360 2001-10-04  Dick Porter  <dick@ximian.com>
20361
20362         * object.h: Add a synchronisation mutex struct to MonoObject
20363
20364         * object.c (mono_new_object): Initialise the object
20365         synchronisation mutexes
20366
20367         * icall.c: System.Threading.Monitor internal calls
20368         
20369         * threads-pthread.h:
20370         * threads-pthread.c: System.Threading.Monitor internal calls
20371
20372         * threads-types.h: New file, includes the system-specific thread
20373         structures
20374         
20375         * threads-pthread-types.h:
20376         * threads-pthread-types.c: New files, handle pthread-specific
20377         synchronisation types
20378
20379         * threads-dummy-types.h: 
20380         * threads-dummy-types.c: New files of dummy support for
20381         thread-specific types
20382
20383         * metadata.c:
20384         * image.c:
20385         * pedump.c: include mono-endian.h not endian.h
20386         
20387         * Makefile.am: More threads files.
20388         Name mono-endian.h not endian.h
20389
20390 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20391
20392         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20393         stuff and implement a few more bits.
20394         * icall.c: a field needs to be dereferenced twice. Do not use the same
20395         name for two variables in the same scope.
20396         * image.c, image.h: cleanups.
20397
20398 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20399
20400         * class.c (mono_class_metadata_init): bug fix: compute the right size
20401
20402 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20403
20404         * icall.c: implemented some of the Reflection internalcalls.
20405         * image.c, image.h: start writing out the PE/COFF image.
20406         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20407         that does the reverse than decode_blob_size ().
20408         * object.c: use mono_metadata_encode_value (). Move here
20409         temporary implementation of mono_string_to_utf8 ().
20410         * rawbuffer.c: make malloc_map static.
20411
20412 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20413
20414         * metadata.c: fix type comparison for arrays.
20415         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20416         Added a couple of new classes to monodefaults.
20417         * icall.c: added a couple of Reflection-related internalcalls.
20418         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20419         Added a byval_arg MonoType to MonoClass.
20420
20421 2001-09-28  Dick Porter  <dick@ximian.com>
20422
20423         * icall.c:
20424         * threads-pthread.h: 
20425         * threads-pthread.c: Implemented internal calls for
20426         LocalDataStoreSlot operations.  Applied mutexes around all shared
20427         data.  Reworked the thread creation and Start() operations to
20428         avoid a race condition.
20429         
20430         * threads-dummy.h:
20431         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20432
20433 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20434
20435         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20436
20437 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20438
20439         * class.c, loader.c: warn and return NULL instead of erroring out.
20440         * icall.c: added System.AppDomain::getCurDomain().
20441         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20442
20443 2001-09-25  Dick Porter  <dick@ximian.com>
20444
20445         * threads-pthread.h:
20446         * threads-pthread.c: Implemented timed thread joining and added
20447         System.Threading.Thread::Join_internal internal call
20448
20449         * icall.c: Added System.Threading.Thread::Join_internal internal call
20450
20451         * threads-dummy.h:
20452         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20453
20454 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20455
20456         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20457         mono_string_intern () to implement the semantics of the ldstr opcode
20458         and the interning of System.Strings.
20459         * icall.c: provide hooks to make String::IsIntern and String::Intern
20460         internalcalls.
20461
20462 2001-09-23  Dick Porter  <dick@ximian.com>
20463
20464         * threads-dummy.c: 
20465         * threads-dummy.h: New files of dummy threading routines
20466
20467         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20468         support code based on system specifics
20469
20470         Rename PTHREAD_LIBS to THREAD_LIBS
20471         
20472 2001-09-23  Dick Porter  <dick@ximian.com>
20473
20474         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20475         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20476         internal calls.
20477         (mono_thread_init): Set up a Thread object instance to return when
20478         the main thread calls Thread.CurrentThread
20479         (mono_thread_cleanup): Wait for all subthreads to exit
20480
20481         * icall.c: New internal calls for System.Threading.Thread::Sleep
20482         (including Schedule) and CurrentThread
20483
20484         * threads.h: New file, to insulate thread-specific stuff from the
20485         rest of the code
20486
20487 2001-09-21  Dick Porter  <dick@ximian.com>
20488
20489         * threads-pthread.h: 
20490         * threads-pthread.c: New file, for handling pthreads-style
20491         threading support.  Start() now starts a new thread and executes
20492         the ThreadStart delegate instance.
20493
20494         * icall.c: Added the internalcall for
20495         System.Threading.Thread::Start_internal
20496
20497         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20498
20499 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20500
20501         * loader.c: work around the different signatures for delegates
20502         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20503
20504 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20505
20506         * class.h, class.c: add mono_class_get_field_from_name ().
20507         * *: Fix C comments and other ANSI C issues.
20508
20509 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20510
20511         * endian.h, assembly.c: fix some endianness issues.
20512
20513 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20514
20515         * loader.h, load.c: add delegate_class to mono_defaults.
20516         Handle runtime provided methods in mono_get_method ().
20517
20518 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20519
20520         * loader.c (mono_get_method): use pinvoke for internal call
20521
20522         * icall.c: use pinvoke for internal call
20523
20524         * loader.c (method_from_memberref): set the method name
20525
20526 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20527
20528         * metadata.c: help the compiler generate better code for
20529         mono_class_from_mono_type ().
20530
20531 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20532
20533         * class.c (mono_class_metadata_init): delayed computing of the
20534         class size to mono_class_metadata_init ()
20535
20536 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20537
20538         * class.c, class.h: add an interfaces member to MonoClass.
20539         * image.c, image.h: add assembly_name field to MonoImage
20540         from the assembly table.
20541         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20542
20543 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20544
20545         * class.c: Handle Array in mono_class_from_mono_type ().
20546         * metadata.c, pedump.c: some endian fixes.
20547
20548 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20549
20550         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20551         * metadata.c: fix small problem introduced with the latest commit.
20552
20553 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20554
20555         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20556         We don't need a MonoMetadata pointer anymore to compare signatures in
20557         mono_metadata_signature_equal (), update callers.
20558         Reduced memory usage an number of allocations for MonoMethodHeader and
20559         MonoMethodSignature.
20560
20561 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20562
20563         * metadata.c: added compare for szarray.
20564
20565 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20566
20567         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20568         and add a couple more types to it and mono_defaults. Give an hint on
20569         classes that need implementing in our corlib and are referenced
20570         in mscorlib.
20571
20572 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20573
20574         * class.h, class.c: keep track if a class is also an Enum.
20575         * loader.c: Implement a couple more types for use in libffi
20576         marshalling. Gives better diagnostics when failing to dlopen
20577         a library. Set method->klass for P/Invoke methods, too.
20578
20579 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20580
20581         * class.c, class.h: add a MonoType this_arg to MonoClass that
20582         represents a pointer to an object of the class' type that
20583         can be used by the interpreter and later the type cache.
20584         Add best guess alignment info for valuetype objects.
20585
20586 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20587
20588         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20589         into MonoType: one less level of indirection and allocation and
20590         simplifies quite a bit of code. Added cache for MonoTypes that are
20591         used frequently, so that we don't need to allocate them all the time.
20592
20593 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20594
20595         * class.c (mono_class_create_from_typedef): System.Enum is also a
20596         value type, although it does not derive from System.ValueType
20597         (maybe a bug in the ms compiler?)
20598
20599         * metadata.c (mono_type_size): return the right size for value types
20600
20601         * loader.c (mono_get_method): only initialize method header if not abstract
20602
20603         * class.c (mono_class_from_mono_type): use mono_default values. 
20604
20605 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20606
20607         * *: use MonoClass pointers instead of <type_tokens>
20608         
20609         * class.h: new flag: metadata_inited.
20610
20611         * class.c (mono_class_metadata_init): impl.
20612         (mono_class_instance_size): impl.
20613         (mono_class_data_size): impl.
20614
20615 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20616
20617         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20618         MonoClass now has the name and name_space fields. 
20619         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20620         mono_get_method () takes and optional MonoClass as argument.
20621         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20622         instead that takes advantage of a map from class names to typedef
20623         tokens in MonoImage.
20624
20625 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20626
20627         * metadata.c: zero is not a valid alignment boundary.
20628         Merge MONO_TYPE_VOID in default decoding code.
20629
20630 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20631
20632         * image.h: merged MonoMetadata into MonoImage
20633
20634         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20635         identify the type of elements.
20636
20637 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20638
20639         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20640         * cil-coff.h: split MonoMSDOSHeader and add size info.
20641         * image.c: add some consistency checks.
20642         * metadata.c: fix row size computation: one programmer
20643         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20644         add explanation for the locator routine.
20645         Fix decoding of size in method header.
20646         
20647 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20648
20649         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20650         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20651         function from gnome-libs.  This uses the right path separator
20652         based on the OS, and also works around a bug in some systems where
20653         a double slash is not allowed. 
20654         (default_assembly_name_resolver): Use g_concat_dir_and_file
20655         (mono_assembly_open): ditto.
20656
20657 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20658
20659         * metadata.c (mono_metadata_signature_equal): impl.
20660
20661         * *: void is now a realy MonoType (instead of using NULL)
20662         
20663         * metadata.c (do_mono_metadata_parse_type): use
20664         mono_metadata_parse_type to parse void value.
20665
20666 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20667
20668         * metadata.c, metadata.h: in the signature and method header store
20669         only the space required for holding the loca vars and incoming arguments.
20670
20671 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20672
20673         * metadata.c (do_mono_metadata_parse_type): treat void like any
20674         other type (instead of assigning NULL);
20675
20676 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20677
20678         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20679
20680 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20681
20682         * image.c (do_mono_image_open): added a cache for arrays.
20683
20684 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20685
20686         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20687         decode a single column from a row in a metadata table and changes
20688         to take advantage of it in the typedef locator (gives a nice speed up).
20689         Store offset info for function params.
20690
20691 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20692
20693         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20694
20695 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20696
20697         * assembly.c: how could mono_assembly_close () had ever worked?
20698         * metadata.c, metadata.h: provide offset info for local vars.
20699         Implement mono_type_size () to take care of alignment as well
20700         as size (it was mono_field_type_size in cli/class.c before).
20701
20702 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20703
20704         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20705
20706         * assembly.h (CORLIB_NAME): set to corlib.dll
20707
20708         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20709
20710 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20711
20712         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20713         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20714         tokentype.h: massive namespace cleanup.
20715
20716 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20717
20718         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20719
20720 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20721
20722         * metadata.c (mono_metadata_free_type): added check for type !=
20723         NULL (void) before calling mono_metadata_free_type()
20724
20725 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20726
20727         * metadata.h, row_indexes.h: added header with enumerations to use
20728         to index in the columns from tables in metadata and to decode coded
20729         tokens: we should start using this instead of embedding magic numbers
20730         all over the code.
20731
20732 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20733
20734         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20735         Move metadata_t info from cli_image_info_t to MonoImage, where
20736         it's easily accessible. Changed all the uses accordingly.
20737         Added the method and class caches to MonoImage.
20738         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20739         and mono_metadata_decode_value () signature to be more consistent
20740         with the other parse functions (and simplify code). Taken advantage
20741         of zero-length array allocation with GCC. Removed reduntant (and
20742         wrong) MonoFieldType struct and use MonoParam instead. Changed
20743         mono_metadata_parse_field_type () to use common code for parsing.
20744         Added mono_metadata_typedef_from_field () and
20745         mono_metadata_typedef_from_method () to lookup a typedef index from a
20746         field or method token.
20747         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20748
20749 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20750
20751         * metadata.c (mono_metadata_parse_field_type): Implement. 
20752         (do_mono_metadata_parse_type): Split engine from
20753         mono_metadata_parse_type, so that we can create smaller structures
20754         for things that just have one pointer to the MonoType (look at
20755         the MonoFieldType)
20756
20757 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20758
20759         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20760         as Jan Gray found out, it is incorrect. 
20761
20762 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20763
20764         * assembly.c: Implement asssembly loading.  This loads an image
20765         and loads all the referenced assemblies.  Come to think of it, we
20766         could always do lazy loading of the assemblies. 
20767
20768         * image.c (mono_image_open): Keep loaded images in a hashtable.
20769
20770         * image.h (MonoImage): Add reference count.
20771
20772 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20773
20774         * assembly.c (mono_assembly_open): Keep track of the file name in
20775         case the assembly has no ASSEMBLY table.
20776
20777         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20778         from get.c here.
20779
20780 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20781
20782         * metadata.c, metadata.h: decode local vars in method header
20783         parse function. Change callers accordingly.
20784
20785 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20786
20787         * metadata.h, cil-coff.h: protect against multiple inclusion.
20788         Added some new structures to hold information decoded from metadata:
20789         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20790         and relevant decoding/free functions.
20791         * metadata.c: implement decoding functions. Add warning for out of bounds
20792         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20793         all the info about a method signature and invocation. Remove check on
20794         uninitialized local var in parse_mh() and fix memory leak.
20795
20796 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20797
20798         * metadata.h: More macros.
20799
20800         * tokentype.h: New file.
20801
20802 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20803
20804         * assembly.c: added a consistency check and initialize
20805         some structures with g_new0().
20806         * metadata.c: fixed a couple more bugs in table size computation
20807         and add other checks for out-of bound access to metadata.
20808
20809 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20810
20811         * metatada.c: fix bugs computing table sizes. Spew a
20812         warning when index in string heap is out of bounds.
20813
20814 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20815
20816         * metadata.h: Add a couple of macros to manipulate tokens. 
20817
20818 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20819
20820         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20821         cli_section_tables).
20822
20823 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20824
20825         * metadata.c (mono_metadata_user_string): New function, provides
20826         access to the UserString heap. 
20827
20828 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20829
20830         * metadata.c: Add inline documentation.
20831
20832 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20833
20834         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20835         files. 
20836
20837 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20838
20839         * typeattr.h: New file, TypeAttribute flags. 
20840
20841 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20842
20843         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20844         mono_assembly_ensure_section): Section loading code.
20845         (load_section_tables): Load the sections.
20846
20847         * mono/metadata/metadata.c (mono_metadata_locate_token,
20848         mono_metadata_locate): Functions to locate the information
20849         definition given a token or a table and an index.
20850         (mono_metadata_compute_table_bases): New.
20851         (compute_size): New function to compute the sizes of the various
20852         tables.
20853
20854         * mono/metadata/metadata.h: Finish listing the different index
20855         types. 
20856
20857         * mono/metadata/pedump.c: Improve to dump new information.
20858
20859 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20860
20861         * mono/metadata/metadata.c: Entered all the tables matching
20862         Beta2. 
20863
20864         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20865
20866
20867