442735678c71c3225b88ae976914f8e4acc80a68
[mono.git] / mono / metadata / ChangeLog
1 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * culture-info-table.h : regenerated.
4
5 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
6
7         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
8         the thread is aborted early.
9
10 2007-04-04  Martin Baulig  <martin@ximian.com>
11
12         * debug-helpers.c
13         (mono_method_desc_full_match): Add support for nested classes.
14
15 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
16
17         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
18
19 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
20
21         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
22         waiting for too many threads.
23
24 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
25
26         * environment.c: Fix return value check on uname so we can get the 
27         executing version on Solaris operating systems.
28
29 2007-03-28  Jb Evain  <jbevain@gmail.com>
30
31         * class.c (mono_type_get_name_recurse): Complete the
32         fix for the creation of assembly qualified names for
33         pointer types. Fixes #81208.
34
35 2007-03-27  Dick Porter  <dick@ximian.com>
36
37         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
38         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
39         changed.
40
41         * threads.c
42         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
43         the value of ReleaseMutex().
44
45 2007-03-27  Dick Porter  <dick@ximian.com>
46
47         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
48         in little-endian order, not network endian, so must be converted
49         to host endian here.  Fixes bug 80593.
50
51 2007-03-22  Jb Evain  <jbevain@gmail.com>
52
53         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
54         qualified names for pointer types. Fixes #81208.
55
56 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
57
58         * marshal.c: Add support for PreserveSigAttribute. 
59         
60         Code is contributed under MIT/X11 license.
61
62 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
63
64         * process.c: Fix endianness issues. Fixes #81126.
65
66         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
67         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
68
69         * image.c (mono_image_lookup_resource): Make this work on big-endian
70         machines.Change API contract so the caller needs to free the return value.
71         
72         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
73         API change.
74         
75 2007-03-14  Martin Baulig  <martin@ximian.com>
76
77         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
78         mono_type_get_desc() as well.
79
80 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
81
82         * icall.c:  Fix environ access in VS.  
83         
84 2007-03-13  Alp Toker  <alp@atoker.com>
85
86         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
87         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
88         #63841.
89
90 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
91
92         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
93         circular references among dynamic methods. Fixes #81091.
94
95         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
96
97 2007-03-09  Martin Baulig  <martin@ximian.com>
98
99         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
100
101 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
102
103         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
104         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
105         
106         Code is contributed under MIT/X11 license.
107         
108 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
109
110         * loader.c: Reapply patch for bug #79424.
111
112 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
113
114         * metadata.c (mono_type_to_unmanaged): Only convert object to
115         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
116
117 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
118
119         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
120         (and incorrectly set) is_reference field from MonoGenericInst.
121
122 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
123
124         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
125         a little earlier.
126
127         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
128
129         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
130
131 2007-03-05  Miguel de Icaza  <miguel@novell.com>
132
133         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
134         FileOptions.1 value to mean "temporary", map that to
135         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
136
137         Fixes 80688
138
139 2007-03-03  Marek Habersack  <mhabersack@novell.com>
140
141         * appdomain.c: implement MS .Net style shadow copying. Copies of
142         the assemblies are made in a subdirectory of the dynamic base
143         directory, the assembly names are preserved.
144         Copy .mdb and .config files along with the assemblies being shadowed.
145
146 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
147
148         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
149         (emit_marshal_handleref): Ditto.
150
151         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
152         on Visual C++. Fixes #80671.
153
154 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
155
156         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
157         for clone operations.
158
159 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
160
161         * marshal.c: Fix warnings.
162
163 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
164
165         * loader.c: allow case-insensitive matching of the dll name
166         in dllmap handling when prefixed with "i:".
167
168 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
169
170         * threads.c: Fix #ifdef for dummy_apc function for VS.
171
172 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
173
174         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
175
176 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
177         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
178         giving precedence to the methods with a fully qualified name
179         (InterfaceName.MethodName) when building the interface sections
180         of the vtable.
181
182 2007-02-16  Dick Porter  <dick@ximian.com>
183
184         * threadpool.c (append_job): Fix fast-path array handling, so it's
185         less likely the array will grow exponentially when the load is
186         heavy.
187
188 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
189
190         * metadata-internals.h, loader.c: fix dllmap lookup order
191         for non-function maps, too, and prepare for fallback code.
192
193 2007-02-12  Robert Jordan  <robertj@gmx.net>
194
195         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
196         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
197         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
198         GlobalFree. Fixes a part of bug #77075.
199
200 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
201
202         * loader.c: implemented typedef parent in field memberref.
203
204 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
205
206         * marshal.c: Fix warnings and remember to call Release on
207         IUnknown of RCW.
208         
209         Code is contributed under MIT/X11 license.
210
211 2007-02-10  Miguel de Icaza  <miguel@novell.com>
212
213         * class-internals.h: Add MonoHandleRef definition, and
214         handleref_class to mono_defaults. 
215
216         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
217         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
218
219         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
220         (do nothing on this stage)
221         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
222         (emit_marshal_handleref): New method, used for argument handling
223         of HandleRefs. 
224
225 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
226
227         * class.c (mono_class_setup_parent): Lazily init com types.
228         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
229         init com types.
230         * object.c (mono_remote_class_vtable): Lazily init com types.
231         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
232         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
233         * domain-internals.h: Expose mono_init_com_types.
234         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
235         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
236         Add support for COM Callable Wrapper marshalling.
237         * marshal.h: Add icall definitions.
238         * gc.c: Handle freeing of CCWs in finalizer code.
239         
240         Code is contributed under MIT/X11 license.
241
242 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
243
244         * reflection.c: changed all the signature encoding code to use
245         a variable-sized buffer.
246
247 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
248
249         * marshal.c: locking fixes: never take the loader lock
250         or other runtime locks when holding the marshal lock
251         (fixes bug#80664).
252
253 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
254
255         * marshal.c: make the delegate function pointer mapping
256         work for the moving GC.
257
258 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
259
260         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
261         for bug #80618.
262
263 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
264
265         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
266         gmodule.
267
268 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
269
270         * threadpool.c: made the code moving-GC safe.
271
272 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
273
274         * assembly.c, boehm-gc.c, class-internals.h, class.c,
275         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
276         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
277         warning cleanup.
278         * reflection.c: warning cleanup, some threading and moving GC fixes.
279
280 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
281
282         * class.c, loader.c: create the needed Set/Get/Address array methods
283         as well as the .ctors in mono_class_init (), fixes bug #80567.
284
285 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
286
287         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
288         we doesn't decrease its alignment. Should fix the sparc build.
289
290 2007-01-24  Dick Porter  <dick@ximian.com>
291
292         * socket-io.c
293         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
294         Create the returned object if we need to ignore an unsupported
295         socket option.  Fixes a segfault reported by Atsushi.
296
297 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
298
299         * class.c, object.c: restrict GC-tracked fields to
300         UIntPtr fields used inside corlib, so we provide better
301         type info to the GC and also allow broken packing as in
302         bug #80580.
303
304 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
305
306         * sgen-gc.c: removed duplicated function.
307
308 2007-01-19  Miguel de Icaza  <miguel@novell.com>
309
310         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
311         value that means that the value is not supported, but that we
312         should not return a failure, but instead report this as a
313         successful operation.
314
315 2007-01-19  Raja R Harinath  <rharinath@novell.com>
316
317         Fix tests/bug79956.2.il
318         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
319         (mono_generic_class_get_class): If the generic definition in an
320         enum, copy over other fields related to it.
321
322 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
323
324         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
325         genericinst enums (bug #79215).
326
327 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
328         * class.c: Fix bug 80307.
329
330 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
331
332         * image.c: if the file table is not present, try to load
333         all the modules, since we don't have info about them
334         having or not metadata (bug #80517).
335         * assembly.c: allow mono_assembly_load_references () to
336         work for netmodules.
337
338 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
339
340         * image.c, metadata-internals.h, object.c: execute module
341         cctors when running on the 2 runtime if present (bug #80487).
342
343 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
344
345         * icall.c: optimized InitializeArray() on bigendian.
346
347 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
348
349         * icall.c: fix for the broken ARM FPA double format.
350
351 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
352
353         * icall.c: handle endian issues for r4 and r8 types, too, in
354         the InitializeArray() icall.
355
356 2007-01-15  Miguel de Icaza  <miguel@novell.com>
357
358         * loader.c (mono_loader_error_prepare_exception): Clear the error
359         once we have extracted the information from it, do this before we
360         call into the JIT's class loading mechanisms.
361
362         * object.c (mono_class_create_runtime_vtable): Do not clear the
363         loader error before calling mono_class_get_exception_for_failure
364         as the loader error is needed inside
365         mono_class_get_exception_for_failure to throw the error (thinko).
366
367         Fixes #80521
368         
369 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
370
371         * reflection.c: align fields rva data so it's faster to load at
372         runtime.
373
374 2007-01-12  Raja R Harinath  <rharinath@novell.com>
375
376         Prepare to simplify GenericMethod handling.
377         * class-internals.h (mono_method_get_context): New accessor function.
378         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
379         rather than directly accessing '->context' field.
380
381         * class-internals.h (_MonoGenericParam.method): Move ...
382         (_MonoGenericContainer): ... here.  Add into union with klass field.
383         * class.c, icall.c, loader.c, metadata.c, reflection.c:
384         Update to changes.
385
386 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
387
388         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
389         the wrapper type enum and reduce relocations.
390
391 2007-01-12  Raja R Harinath  <rharinath@novell.com>
392
393         * reflection.c (inflate_mono_method): Reuse method instantiation
394         from the generic method, if available.
395
396 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
397
398         * marshal.c (emit_marshal_variant): Fix conv_arg
399         type in last commit, based on whether parameter is byref.
400         
401 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
402
403         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
404         marshalling.
405         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
406         MONO_TYPE_OBJECT back for VARIANT support.
407
408 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
409
410         * marshal.c, marshal.h, icall-def.h: Implement 
411         Marshal.ReAllocCoTaskMem.
412
413 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
414
415         * marshal.c: memory retention fixes: use the proper
416         image cache for runtime_invoke method lookups.
417
418 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
419
420         * mempool.c: added code to help debug mempool allocations.
421
422 2007-01-11  Dick Porter  <dick@ximian.com>
423
424         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
425         support (experimenting with faking it with IP_MTU_DISCOVER for
426         systems that don't have IP_DONTFRAGMENT.)
427         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
428         icall.
429
430         * icall-def.h: new System.Net.Sockets.Disconnect icall.
431
432         * socket-io.h: Add new fields to MonoSocketAsyncResult
433         corresponding to the new ones in Socket.cs.
434
435 2007-01-11  Raja R Harinath  <rharinath@novell.com>
436
437         Fix IronPython regression mentioned in #80249
438         * metadata.c (do_mono_metadata_parse_generic_class): Clear
439         'cached_context' field, since it may have been initialized as a
440         side-effect of metadata parsing.
441
442         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
443         (_MonoGenericClass.cached_class): Move here and rename from lone
444         remaining field of ...
445         (_MonoInflatedGenericClass): ... this.  Remove.
446         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
447         to changes.
448
449         Fix mcs/tests/test-128.cs regression.
450         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
451         2007-01-10 change below.
452         [MONO_TYPE_OBJECT]: Recurse into array case.
453
454 2007-01-11  Raja R Harinath  <harinath@gmail.com>
455
456         * class-internals.h (mono_get_inflated_generic_class): Remove.
457         * class.c (mono_get_inflated_generic_class): Remove.
458         (mono_generic_class_get_class): Rename from
459         mono_class_create_generic.
460         (mono_class_from_mono_type) [GENERICINST]: Use it.
461         * reflection.c, metadata.c: Update to changes.  Use
462         'mono_class_from_mono_type'.
463
464 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
465
466         * reflection.c: use passed type when encoding an array element
467         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
468
469 2007-01-09  Robert Jordan  <robertj@gmx.net>
470
471         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
472         result arguments (someDelegate.EndInvoke (unrelatedAres)).
473         Fixes bug #80392.
474
475 2007-01-09  Raja R Harinath  <rharinath@novell.com>
476
477         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
478
479         * object.c (set_value): Avoid aliasing between type->data.klass
480         and type->data.generic_class.
481
482         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
483
484 2007-01-08  Raja R Harinath  <rharinath@novell.com>
485
486         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
487         between type->data.klass and type->data.generic_class.
488
489 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
490
491         * marshal.c: In MS.NET, StringBuilder objects are not copied by
492         value in out parameters.
493
494 2007-01-08  Raja R Harinath  <rharinath@novell.com>
495
496         Simplify invariant for MonoGenericClass::klass field.
497         * class.c (mono_class_create_generic): Verify 'klass' is null.
498         * metadata.c (do_mono_metadata_parse_generic_class): Don't
499         initialize 'klass' field.
500
501 2007-01-05  Raja R Harinath  <rharinath@novell.com>
502
503         Ongoing work to avoid redundant data and simplify invariants.
504         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
505         'generic_class', and change type to a GenericInst.
506         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
507         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
508
509 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
510
511         * class.c : skip io-layer under PLATFORM_WIN32.
512
513 2007-01-03  Tor Lillqvist  <tml@novell.com>
514
515         Fix #80305: In a bundled executable, look in the bundled exe
516         assembly to determine the runtime version. Add the possibility to
517         bundle also the machine.config file.
518         
519         * assembly.c (mono_assembly_open_from_bundle): Make
520         non-static. Allow being called even if we have no bundled
521         assemblies, and return NULL right away in that case.
522
523         * domain-internals.h: Declare mono_assembly_open_from_bundle()
524         here.
525
526         * domain.c (app_config_parse): Take an assembly exe file name as
527         parameter instead of a config file name. Check for a bundled
528         config file for that assembly by calling
529         mono_config_string_for_assembly_file() (see below) before looking
530         for one in the file system.
531         (get_runtimes_from_exe): Corrsponding change to call of
532         app_config_parse().
533         (get_runtimes_from_exe): Check for bundled assembly exe file first
534         by calling mono_assembly_open_from_bundle(). If no bundled
535         assembly exe file is found, call mono_image_open() as before to
536         look it up in the file system.
537
538         * mono-config.c: Add variable bundled_machinec_onfig.
539         (mono_config_string_for_assembly_file): New function.
540         (mono_config_for_assembly): Move code snippet that looks for a
541         bundled assembly .config file into the above new function. Call
542         it.
543         (mono_register_machine_config, mono_get_machine_config): New
544         functions to set and retrieve
545
546         * assembly.h: Declare mono_register_machine_config().
547
548         * mono-config.h: Declare mono_get_machine_config() and
549         mono_config_string_for_assembly_file().
550
551         * icall.c: No declaration of environ necessary on Win32. It is
552         declared (as a macro expanding to a function call) in stdlib.h.
553         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
554         New internal mono function. Returns the value of
555         mono_get_machine_config() as a Mono string.
556
557         * icall-def.h: Add get_bundled_machine_config().
558
559 2007-01-04  Raja R Harinath  <rharinath@novell.com>
560
561         Remove redundant field
562         * class-internals.h (_MonoGenericContext.container): Remove field.
563         * loader.c (mono_method_get_signature_full): Don't parse a
564         "container" for a signature parse when the signature is inflated
565         immediately.
566         (method_from_methodspec): Likewise, for a generic_inst.
567         * class.c, metadata.c, reflection.c: Update to changes.
568
569 2006-01-04  Raja R Harinath  <rharinath@novell.com>
570
571         * class-internals.h (_MonoGenericClass): Rename 'context' field to
572         'cached_context', and change semantics -- it starts off NULL, and
573         is initialized on demand.
574         * class.c (mono_generic_class_get_context): New accessor to
575         replace 'context' field accesses.
576         (mono_class_get_context): New helper.
577         (*): Update to changes.
578         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
579
580 2007-01-03  Miguel de Icaza  <miguel@novell.com>
581
582         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
583         before the memcpy.   Fixes Marshal2 regression.
584
585 2007-01-02  Jb Evain  <jbevain@gmail.com>
586
587         * blob.h: add a MONO_TYPE_ENUM definition
588         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
589         fix the encoding of arrays of enums in custom attributes.
590
591         Fixes #79666.
592
593 2007-01-01  Miguel de Icaza  <miguel@novell.com>
594
595         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
596         string is null terminated, but only cut the string short if it
597         overflows the buffer.   
598         
599         (mono_string_to_byvalstr): Also fix this routine.   The code here
600         was not properly terminating a string (it was only terminated
601         because of the previous catch-all memset). 
602
603         I left the memset, because I do not know if applications expect
604         the runtime to clear this region. 
605
606         Fixes #79944.
607
608         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
609         Clear the error before returning to unmanaged code to prevent the
610         runtime from being confused later on (fixes  80420).
611         (ves_icall_type_from_name): Always call mono_loader_clear_error
612         after parsing a type that could have failed.
613         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
614
615         * loader.c (mono_loader_clear_error): Fix indentation.
616
617 2006-12-28  Martin Baulig  <martin@ximian.com>
618
619         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
620
621 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
622
623         * reflection.c: patch from Rolf Bjarne Kvinge to fix
624         getting a token for an EnumBuilder.
625
626 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
627
628         * reflection.c: be more careful in case resource generation
629         fails to create the data array.
630
631 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
632
633         * sgen-gc.c: write barrier for clone and fix unregister handles.
634
635 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
636
637         * reflection.c: some fixes needed in the generics code for the moving GC.
638
639 2006-12-22  Robert Jordan  <robertj@gmx.net>
640
641         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
642         account. Fixes bug #80299.
643
644 2006-12-21  Raja R Harinath  <rharinath@novell.com>
645
646         Fix WaitHandle usage in delegates.
647         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
648         * object.c (mono_wait_handle_new): Use the property set method to
649         initialize the handle.
650         (mono_wait_handle_get_handle): New.
651         * threadpool.c (mono_async_invoke): Use it.
652         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
653         Likewise.
654         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
655
656 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
657
658         * marshal.c (emit_marshal): Call emit_marshal_variant and
659         emit_marshal_com_interface when applicable.
660         (emit_marshal_variant, emit_marshal_com_interface): Add
661         methods for this case and remove if's from emit_marshal_object.
662         
663 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
664
665         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
666
667 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
668
669         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
670         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
671         and GlobalFree on Windows. Remove FIXME.
672
673 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
674
675         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
676         implementation for managed objects.
677
678 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
679
680         * object.c: implemented code to be used for checking
681         that no reference field overlaps with non-references.
682
683 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
684
685         * threadpool.c: fix queue code to be compatible with the
686         moving GC.
687
688 2006-12-18  Miguel de Icaza  <miguel@novell.com>
689
690         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
691         in structures by throwing ArgumentNullException.
692
693         (emit_marshal_safehandle): Also when they are null parameters.
694
695         (emit_marshal_safehandle): Add support for ref
696         SafeHandles parameters
697
698 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
699
700         * profiler.c: updated to use the mono-dl API instead of
701         gmodule.
702
703 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
704
705         * profiler.c: updated to use the mono-dl dynamic loading
706         API instead of gmodule.
707
708 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
709
710         * profiler.c: use readlink, older versions of glib don't have
711         g_file_read_link ().
712
713 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
714
715         * profiler.c: try to detect the path to mono if libc fails to provide
716         a useful name (bug #80286).
717
718 2006-12-16  Raja R Harinath  <rharinath@novell.com>
719
720         Fix #80242
721         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
722         instance, use the generic type definition instead.
723         (ves_icall_Type_GetNestedTypes): Likewise.
724         * class.c (mono_class_create_generic): Always set the
725         nested_classes of a generic instance to NULL, even if the generic
726         type definition has nested types.
727
728 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
729
730         * marshal.c (mono_string_from_bstr): Revert previous Windows change
731         and fix on Linux.
732         
733 2006-12-15  Miguel de Icaza  <miguel@novell.com>
734
735         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
736         my arguments were in the wrong order.   I also fixed the Windows
737         version which seems to have had the same issue.
738
739         (mono_free_bstr): On Unix, this is g_free.
740         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
741         conversions (for the tests in corlib to pass).
742
743 2006-12-14  Miguel de Icaza  <miguel@novell.com>
744
745         * marshal.c (emit_ptr_to_object_conv): For now, ignore
746         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
747         exception if a ref SafeHandle in a struct has changed).
748         
749         (emit_struct_conv): Do not perform layout checks for classes
750         derived from SafeHandle, as those are specially handled. 
751
752         (emit_object_to_ptr_conv): Add support for
753         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
754
755         (emit_marshal_safehandle): Implement conversion of return values
756         of safehandles (MARSHAL_ACTION_CONV_RESULT).
757         
758         * threads.c: WaitHandle now is compiled with two different handles
759         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
760         for 2.0.
761         
762         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
763         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
764         these routines to cope with both kinds of fields.
765
766 2006-12-12  Miguel de Icaza  <miguel@novell.com>
767
768         * metadata.c (mono_type_to_unmanaged): Handle the case where
769         type->data.klass is a SafeHandle, and in that case, return the
770         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
771         MONO_MARSHAL_CONV_SAFEHANDLE. 
772
773 2006-12-11  Miguel de Icaza  <miguel@novell.com>
774
775         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
776         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
777         calling emit_marshal_object.
778
779         (emit_marshal_safehandle): Implement marshalling of
780         SafeHandle parameters (no ref support yet).
781
782         (MarshalAction): Document the defines as I implement
783         them for SafeHandle.
784
785         (emit_marshal_object): indentation police.
786
787         * class-internals.h: Define MonoSafeHandle.
788         Add safehandle_class to MonoDefaults type.
789
790         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
791         list of classes to check for fields. 
792
793         * domain.c (mono_init_internal): Add SafeHandle to the list of
794         mono_defaults loaded.
795
796 2006-12-15  Raja R Harinath  <rharinath@novell.com>
797
798         Fix #80253
799         * reflection.c (mono_reflection_bind_generic_parameters): If the
800         generic type definition is a type builder, ensure that it is fully
801         initialized before instantiating it.  Kill some dead code.
802
803 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
804
805         * object.c: clear the loader_error () before loading
806         more metadata stuff (bug #80258).
807
808 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
809
810         * icall.c, icall-defs.h: type modifiers icalls for
811         parameters and properties.
812
813 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
814
815         * object.c, icall.c: fixed warnings.
816
817 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
818
819         * marshal.c: fixed a couple of leaks and coding style in a few places.
820
821 2006-12-08  Dick Porter  <dick@ximian.com>
822
823         * process.c: Cope with NULL ProcessStartInfo arguments on windows
824         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
825         80173.
826
827 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
828
829         * process.c: ProcessStartInfo may have only filename set and
830         arguments can be NULL.
831
832 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
833
834         * icall.c: fix leak found by Robert Jordan.
835
836 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
837
838         * marshal.c, marshal.h: generate managed method to access an element
839         of a multi-dimensional array.
840
841 2006-11-30  Paolo Molaro (lupus@ximian.com)
842
843         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
844
845 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
846
847         * icall.c: back out GetFields () fix until the serialization code is
848         fixed to not depend on the incorrect behaviour.
849
850 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
851
852         * profiler.c: provide defaults if none are set.
853
854 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
855
856         * Makefile.am, attrdefs.h: new public header file with
857         constants for attributes for use by embedders.
858
859 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
860
861         * icall.c: GetFields () fix for bug #80064.
862
863 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
864
865         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
866         removed long unused icalls.
867
868 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
869   
870         * marshal.c: 
871                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
872                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
873                 can be generated without a delegate class.
874                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
875         
876         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
877
878 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
879
880         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
881         #80069.
882
883 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
884
885         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
886         icall-def.h: added icalls needed by System.GC.
887
888 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
889
890         * loader.c: ensure the class in catch clauses is handled
891         correctly for generics methods (fixes bug#79980).
892
893 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
894
895         * monitor.h, monitor.c: added mono_locks_dump () function
896         to help debug deadlocks involving managed locks.
897
898 2006-11-13  Dick Porter  <dick@ximian.com>
899
900         * file-io.c (get_file_attributes): If the file is a symlink try
901         and get the stat data for the target, but also add the
902         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
903         the specs for the windows symlink support, but will probably have
904         to be reworked when I have test data from a vista machine.  Fixes
905         bug 79887.
906
907 2006-11-13  Dick Porter  <dick@ximian.com>
908
909         * gc.c (mono_domain_finalize): 
910         * marshal.c (mono_delegate_begin_invoke): 
911         * threadpool.c (socket_io_init, mono_thread_pool_init)
912         (mono_thread_pool_finish): 
913         * monitor.c (mono_monitor_try_enter_internal): 
914         * threads.c (mono_thread_resume, mono_thread_init)
915         (mono_thread_suspend_all_other_threads)
916         (mono_thread_execute_interruption): 
917         * appdomain.c (mono_domain_unload): Check for NULL error returns
918         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
919         75733.
920
921 2006-11-11  Miguel de Icaza  <miguel@novell.com>
922
923         * process.c
924         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
925         Only close the handle if the value of the handle is not
926         INVALID_HANDLE_VALUE.  This just makes the process a bit more
927         robust.
928
929         Improvement for #75733, so that we do not run into this problem. 
930
931         
932         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
933         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
934         internal variables.  Fixes #79462 
935         
936
937 2006-11-09  Dick Porter  <dick@ximian.com>
938
939         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
940         Use poll() not select().  Fixes bug 79397.
941
942 2006-11-09  Raja R Harinath  <rharinath@novell.com>
943
944         Fix #79872
945         * assembly.c (mono_assembly_load_from_full): Check that the given
946         image has an assembly manifest.
947
948 2006-11-09  Ankit Jain  <jankit@novell.com>
949
950         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
951         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
952         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
953
954 2006-11-07  Dick Porter  <dick@ximian.com>
955
956         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
957         Put the old resolver behaviour back for pre-2.0 profiles.
958
959 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
960
961         * threadpool.c: precise GC and locking fixes.
962
963 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
964
965         * class.c: don't load types that have an explicit unaligned
966         managed reference. Provide better info in the TypeLoad exception.
967         Part of the fix for bug #79744.
968         * object.c: use the correct check for class type load issues.
969
970 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
971
972         * class.c: enforce alignment of fields with managed references
973         even when Pack=1 is forced by the user (bug #77788).
974
975 2006-11-03  Dick Porter  <dick@ximian.com>
976
977         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
978         If the address reverse lookup fails, return it as the hostname
979         anyway.  Fixes bug 79721.
980
981 2006-11-03  Dick Porter  <dick@ximian.com>
982
983         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
984         Fix build on Windows.
985
986 2006-11-02  Dick Porter  <dick@ximian.com>
987
988         * icall-def.h: 
989         * object-internals.h: 
990         * exception.c (mono_get_exception_thread_interrupted): 
991         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
992         Fixes bug 74525.
993
994         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
995         Check for pending Thread.Interrupt.
996
997 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
998         * loader.c: Fixed bug 79684.
999
1000 2006-10-27  Dick Porter  <dick@ximian.com>
1001
1002         * file-io.c (get_file_attributes): Force symlinks to directories
1003         to be returned as a regular file.  Fixes bug 79733.
1004 2006-10-26  Dick Porter  <dick@ximian.com>
1005
1006         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
1007         CreateFile to open a directory then we need to set the
1008         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
1009
1010 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
1011
1012         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
1013         friends.
1014
1015 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1016
1017         * sgengc.c: small cleanup of timer code.
1018
1019 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1020
1021         * sgen-gc.c: fix some warnings and start adding support for
1022         complete object removal on domain unload.
1023
1024 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
1025
1026         * assembly.c: build_assembly_name should not consider a version
1027         number without build or revision number invalid. Fixes bug #79715.
1028
1029 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
1030
1031         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
1032         call kernel32 function OutputDebugString directly.
1033         
1034         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1035         
1036 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
1037
1038         * reflection.c: small cleanup, using a function to insert a MonoString
1039         in the string heap.
1040
1041 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
1042
1043         * reflection.c: moving GC fixes.
1044
1045 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1046
1047         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
1048         all the objects with finalizers belonging to an unloading appdomain.
1049
1050 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
1051
1052         * sgen-gc.c: added ability to allocate even when the nursery is fully
1053         pinned and fixed a couple of bugs.
1054
1055 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1056
1057         * threads.h: Revert the last change for now.
1058
1059         * threads.h (mono_thread_get_pending_exception): Rename this to
1060         mono_thread_get_undeniable_exception ().
1061
1062 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
1063
1064         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
1065         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
1066         when fname does not refer to valid assembly. This result in a more
1067         meaningful error message.
1068         * exception.c: added mono_get_exception_bad_image_format2 which 
1069         constructs a BadImageFormatException using the ctor taking a custom
1070         message and the file name. Passing in a NULL msg results in a default
1071         message.
1072         * exception.h: define mono_get_exception_bad_image_format2 function.
1073         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
1074         when file name pointed to an invalid IL image. Use 
1075         mono_get_exception_file_not_found2 to construct FileNotFoundException,
1076         as this results in a more meaningful error message.
1077
1078 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1079
1080         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
1081         #79465.
1082
1083 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
1084
1085         * metadata.c (mono_type_size): Change the align parameter to guint32 for
1086         consistency with the other _size functions.
1087         (mono_type_stack_size): Ditto.
1088
1089         * class.c object.c icall.c: Fix warnings caused by the above change.
1090
1091         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1092
1093         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1094
1095         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1096
1097 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1098
1099         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1100         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1101         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1102         threadpool.h, threads-types.h: mark more internal functions.
1103
1104 2006-10-11  Dick Porter  <dick@ximian.com>
1105
1106         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1107         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1108         reproduce the bug even before applying the fix.)
1109
1110 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1111
1112         * reflection.c: allow retrieving attributes for arguments in generic
1113         methods (bug #79241).
1114
1115 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1116
1117         * debug-mono-symfile.c: properly check fopen () result (found by
1118         coverity).
1119
1120 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1121
1122         * reflection.c: make error message clearer and fixed two
1123         issuelets found by Coverity.
1124
1125 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
1126
1127         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1128
1129 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1130
1131         * object-internals.h, gc-internal.h, profiler-private.h:
1132         mark internal functions.
1133
1134 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1135
1136         * reflection.c: put data in the text section.
1137         * icall.c: recognize more types in type_from_typename ().
1138         * process.c, marshal.c: added some GC FIXMEs.
1139
1140 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1141
1142         * loader.c: check for NULL before initializing.
1143
1144 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1145
1146         * gc.c (finalizer_thread): Use a non-alertable wait here.
1147
1148         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1149         until the correct solution is found.
1150
1151 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1152
1153         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1154         modules with no metadata. Fixes #79596.
1155
1156         * image.c (load_metadata_ptrs): Put back the error message when
1157         the #- heap is encountered since the support is not complete yet.
1158
1159 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1160
1161         * gc.c: do not allow the user to SuppressFinalize () a
1162         delegate because it would leak the trampoline if present.
1163
1164 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1165
1166         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1167         PropertyPtr table.
1168
1169 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1170
1171         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1172
1173         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1174
1175         * row-indexes.h: Add definitions for *Ptr tables.
1176
1177         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1178
1179         * metadata.c (mono_metadata_translate_token_index): New helper function to
1180         translate table indexes used in uncompressed metadata.
1181         (mono_metadata_decode_table_row): Ditto.
1182         (mono_metadata_decode_table_row_col): Ditto.
1183
1184         * metadata.c: Add table schema for *Ptr tables.
1185
1186         * class.c loader.c: Use the new helper function to access the affected metadata
1187         tables.
1188         
1189         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1190         #38532.
1191         
1192 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1193
1194         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1195         sequences which can be unbounded in size. Fixes #79583.
1196
1197 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1198
1199         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1200         static initialization.
1201
1202         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1203
1204         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1205
1206         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1207
1208         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1209         ctor fails, i.e. throw the same exception on subsequent accesses.
1210         
1211 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1212
1213         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1214         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1215         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1216         Handle marshalling of interfaces and VARIANTs contained in structs.
1217         
1218         Code is contributed under MIT/X11 license.
1219         
1220 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1221
1222         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1223         
1224         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1225         mempool.
1226
1227 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1228
1229         * console-io.c: ignore previous SIGINT handler.
1230
1231 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1232
1233         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1234         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1235         #79460, #79461, #79485.
1236
1237         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1238
1239         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1240         #79217.
1241
1242 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1243
1244         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1245         could be generated from it.
1246
1247 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1248
1249         * rand.c: fix read loop to correctly handle EINTR.
1250
1251 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1252
1253         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1254         internal calls are defined to keep methods closer to the declaring
1255         type and allow a significant reduction in runtime relocations and
1256         memory usage.
1257
1258 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1259
1260         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1261         exception message to have FileNotFoundException use the default
1262         assembly load error message. Fixes bug #79426.
1263         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1264
1265 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1266
1267         * threadpool.c: (start_thread_or_queue) use the root domain when
1268         creating the thread instead of the async object one.
1269
1270 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1271
1272         * class.c, object.c, class-internals.h, reflection.c:
1273         for arrays, store element_size inside MonoClass (speedup
1274         for array object creation).
1275
1276 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1277
1278         * icall.c: fixed CodeBase to use the file name and not the module
1279         name (bug #79365).
1280
1281 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1282
1283         * mono-debug.c, mono-debug.h: export find_method as
1284         mono_debug_find_method ().
1285
1286 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1287
1288         * debug-helpers.c, class-internals.h: added a few functions useful
1289         when debugging under gdb.
1290
1291 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1292
1293         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1294         characters that need special handling.
1295
1296 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1297
1298         * mono-config.c: make the os/cpu specification more flexible,
1299         allowing lists and negation.
1300
1301 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1302
1303         * marshal.c: COM Interop fixes. Handle case where method->klass.
1304         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1305         calling convention on non-windows platforms. This is for
1306         compatibility with XPCOM and MainWin COM.
1307         
1308         Code is contributed under MIT/X11 license.
1309         
1310
1311 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1312
1313         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1314         correctly. Fixes #79217.
1315
1316         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1317
1318 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1319
1320         * mono-config.c: allow both an os and cpu attribute for dllmap
1321         and dllentry elemnets to enable a single config file to be used
1322         for multiple architectures.
1323
1324 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1325
1326         * loader.c: MonoLoaderError was cleared too soon on load failure.
1327         Fixes bug #79424.
1328
1329 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1330
1331         * icall.c: use the defining class vtable when accessing a
1332         static field, not a pobblibly derived class.
1333
1334 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1335
1336         * icall.c string-icalls.c: Remove references to unicode.h.
1337
1338         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1339
1340         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1341
1342         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1343         indicating the image where custom marshaller types should be looked up.
1344         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1345         custom marshallers, instead of corlib. Fixes #79425.
1346
1347 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1348
1349         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1350
1351 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1352
1353         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1354         Implement Environment.ProcessorCount.
1355         
1356         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1357         Implement Environment.ProcessorCount.
1358         
1359         * icall.c: 
1360         Add Environment.ProcessorCount icall.
1361         
1362         Patch by Jason McFall.
1363
1364 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1365
1366         * assembly.c: don't append .exe/.dll when the filename already contains
1367         one of those extensions.
1368
1369 2006-09-12  Martin Baulig  <martin@ximian.com>
1370
1371         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1372         to array interfaces.
1373
1374 2006-09-11  Martin Baulig  <martin@ximian.com>
1375
1376         * reflection.c (mono_image_build_metadata): Create the
1377         MethodImpl's after emitting all types and methods, so we don't
1378         need another fixup pass for them.
1379
1380 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1381
1382         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1383         change.
1384
1385 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1386
1387         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1388         unload.
1389
1390 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1391
1392         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1393         args is not set. Fixes #78926.
1394
1395 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1396
1397         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1398
1399         * image.c (load_class_names): Move this to class.c, and rename it to 
1400         'mono_image_init_name_cache'.
1401         (load_modules): Fix a warning.
1402
1403         * class.c icall.c image.c: Initialize image->name_cache lazily.
1404
1405         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1406         on its name using information in the AOT file.
1407
1408         * class.c (mono_class_from_name): Use the new hook function.
1409
1410 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1411
1412         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1413         correctly.
1414
1415         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1416         Fixes #79289.
1417         
1418 2006-09-06  Martin Baulig  <martin@ximian.com>
1419
1420         * icall.c (mono_lookup_internal_call): Small fix.
1421
1422 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1423
1424         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1425         double g_free.
1426
1427 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1428
1429         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1430         when --debug is specified.
1431
1432 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1433
1434         * class.c (setup_generic_array_ifaces): Fix a warning.
1435
1436 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1437
1438         * Temporarily remove the patch to assemly.c that checks the
1439         assembly versions as it breaks our gacutil.
1440
1441 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1442
1443         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1444
1445         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1446         a net 1.0 runtime.
1447
1448         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1449         created using the default ctor. Fixes #79152.
1450         (mono_string_builder_to_utf16): Ditto.
1451
1452 2006-09-01  Martin Baulig  <martin@ximian.com>
1453
1454         Fix handling of the generic array interfaces.
1455
1456         * class-internals.h
1457         (MonoDefaults): Removed `generic_array_class' and added
1458         `generic_ilist' class.
1459
1460         * class.c
1461         (mono_bounded_array_class_get): Add the new generic array interfaces.
1462         (setup_generic_array_ifaces): New static method; create vtable
1463         entries for each method in the generic array interfaces.
1464
1465         * metadata.c
1466         (select_container): Allow "parent-less" generic methods.
1467
1468         * marshal.c
1469         (mono_marshal_get_generic_array_helper): New public method.
1470
1471         * icall.c
1472         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1473         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1474         moved the interncall into System.Array.
1475
1476 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1477
1478         A few more cases of avoiding work on types with ->byref set.
1479         Has the real fix for #79238
1480         * icall.c (is_generic_parameter): New helper.
1481         (ves_icall_Type_GetGenericParameterPosition): Use it.
1482         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1483         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1484         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1485         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1486         reference types.
1487         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1488         reference types.
1489         (ves_icall_Type_get_IsGenericInstance): Likewise.
1490         (ves_icall_Type_get_IsGenericType): Likewise.
1491
1492 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1493
1494         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1495         class if possible.
1496
1497         * mempool.h (mono_mempool_get_allocated): New helper function.
1498
1499         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1500         change.
1501
1502         * mempool.c: Fix warnings and the calculation of stats.
1503
1504         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1505
1506         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1507
1508         * loader.c (mono_get_method_from_token): Update method_count stat.
1509
1510         * class-internals.h (MonoStats): Add some stats.
1511
1512 2006-08-31 Robert Jordan  <robertj@gmx.net>
1513
1514         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1515         with managed variants.
1516         All code is contributed under the MIT/X11 license.
1517         
1518 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1519
1520         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1521         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1522
1523         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1524
1525         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1526         with cycles in classes.
1527
1528         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1529
1530         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1531         missing a [MarshalAs] directive. Fixes #79203.
1532
1533         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1534         klass->marshal_info. Fixes #79217.
1535
1536 2006-08-30  Martin Baulig  <martin@ximian.com>
1537
1538         Committing a patch from Joachim Ante <joe@otee.dk>:
1539         Add support for binary data symbol stores.
1540
1541         * debug-mono-symfile.c
1542         (mono_debug_open_mono_symbol_file): Renamed into
1543         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1544         arguments.
1545
1546         * mono-debug.c
1547         (mono_debug_open_image): Added `raw_contents' and `size' args.
1548         (mono_debug_init_2_memory): New public function.
1549
1550 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1551
1552         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1553
1554 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1555
1556         * appdomain.c: implement support for ShadowCopyFiles.
1557
1558 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1559
1560         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1561         when value is NULL (and should remove CID #51).
1562
1563 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1564
1565         * image.c: moved 2 functions to ../utils.
1566
1567 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1568
1569         * gc.c: cope with the target object of a GC handle being NULL
1570         (bug #78877).
1571
1572 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1573
1574         * class.c: recursively check parent's explicit implementations
1575         of interface methods (fixes bug #79125).
1576
1577 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1578
1579         * filewatcher.c: Avoid warnings when building, do not redefine
1580         constants that are defined.
1581
1582         Remove warnings.
1583
1584 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1585
1586         * image.c: don't fail when the link points to an absolute path.
1587
1588 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1589
1590         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1591         Fix CID #3.
1592
1593 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1594
1595         * image.c (full_path): A new method used to obtain the actual path
1596         of an assembly even in the presence of symbolic links.  
1597
1598         This is necessary for the case where we are running a binary that
1599         has been GACed, but we are using the "published" path name
1600         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1601         file in the GAC.
1602
1603         This was the source of the failure for the `xsp' command with the
1604         recent AppDomain changes, as far as the runtime was concerned,
1605         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1606         $prefix/mono/gac/blah/version/blah.exe.
1607
1608         (do_mono_image_open): use full path
1609
1610 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1611
1612         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1613
1614 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1615
1616         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1617         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1618
1619 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1620
1621         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1622         small structures. Fixes #78990.
1623
1624 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1625
1626         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1627
1628         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1629
1630 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1631
1632         * appdomain.c:
1633         * marshal.c: don't load all the assemblies from a domain into newly
1634         created ones. The new domains might have different rules and load
1635         assemblies from different locations. Fixes bug #76757.
1636
1637         Patch by Lluis. Conflicts resolved by Brian Crowell.
1638
1639 2006-08-16  Alp Toker  <alp@atoker.com>
1640
1641         * socket-io.c: First half of the fix for #79084.
1642         Set sa_size to the length of the content, not that of the struct.
1643         Don't add NULL suffix to the content, this should be done in
1644         managed code if needed.
1645
1646 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1647
1648         Fix part of #79012
1649         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1650         mono_metadata_parse_type returns NULL.
1651
1652 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1653
1654         * normalization-tables.h : new file for string normalization data.
1655         * locales.c, locales.h, icall.c :
1656           added load_normalization_resource() for string normalization,
1657           and icall as well.
1658         * Makefile.am : added normalization-tables.h to the sources.
1659
1660 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1661
1662         * marshal.c: Add more helper functions to reduce code duplication and use them
1663         everywhere.
1664
1665 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1666
1667         * marshal.c: Fix non-x86 stdcall warnings.
1668         
1669         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1670         them everywhere.
1671
1672 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1673
1674         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1675         type check on multi-dimensional arrays. Fixes #79000.
1676
1677 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1678
1679         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1680         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1681         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1682         * class-internals.h: add is_com_object to class structure.
1683         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1684         null checks to COM object marshalling. Fix .ctor call on RCW.
1685         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1686         
1687         All code is contributed under the MIT/X11 license.
1688
1689 2006-08-09  Dick Porter  <dick@ximian.com>
1690
1691         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1692         racing mono_monitor_allocator_lock() somewhere, so don't delete
1693         the critical section for now.  Found by running and exiting
1694         monodevelop.
1695
1696 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1697
1698         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1699         (ves_icall_System_ComObject_FindInterface): Ditto.
1700         (ves_icall_System_ComObject_CacheInterface): Ditto.
1701
1702         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1703         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1704
1705 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1706
1707         * threadpool.c: treat pipes from process asynchronous reads as sockets
1708         when reading from them, so we get select/poll or epoll to wait for
1709         data.
1710
1711 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1712
1713         * loader.c: Fix a typo (CID #233) in the null check.
1714
1715 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1716
1717         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1718         Hopefully fixes #78949.
1719         
1720         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1721         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1722         bytes. Fixes #78972.
1723
1724 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1725
1726         * filewatcher.c: we need to set errno here.
1727
1728 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1729
1730         * filewatcher.c: let Win32Exception get the error value.
1731
1732 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1733
1734         * filewatcher.c: translate errno into win32 errors for Win32Exception
1735         to know what happened.
1736
1737 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1738
1739         * threadpool.c: Fix more warnings.
1740
1741         * assembly.c (search_loaded): Fix warnings.
1742
1743         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1744         (mono_async_invoke): Ditto.
1745
1746 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1747
1748         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1749         entries for __ComObject type in addition to ComImport types.
1750         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1751         about hash table.
1752         
1753         All code is contributed under the MIT/X11 license.
1754
1755 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1756
1757         * image.c: avoid tentative loading of modulerefs that contain
1758         no metadata (P/Invoke library names).
1759
1760 2006-07-28  Dick Porter  <dick@ximian.com>
1761
1762         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1763         mono_loader_lock() somewhere, so don't delete the critical section
1764         for now.  Found by running and exiting monodevelop.
1765
1766 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1767
1768         * filewatcher.c: define the inotify syscalls when we're building on
1769         linux and have sys/syscall.h. The build system might not have support
1770         for inotify but the target system might have it.
1771
1772 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1773
1774         * domain.c: Documentation updates.
1775
1776         * loader.c (mono_free_method): Do not release the method
1777         information if we are being profiled, as profilers will use this
1778         information at shut down to present some data to the user.
1779
1780         This is needed so that the profiler does not crash, as the
1781         profiler tends to keep MonoMethods around, and they might become
1782         invalid if we free these.
1783
1784         (mono_get_method_constrained): Return the original CIL stream
1785         method as well, so verification can be performed against it.
1786
1787 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1788
1789         * filewatcher.[ch]: support for inotify file system watcher.
1790         * icall.c: add new internal calls for the inotify file system watcher.
1791
1792 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1793
1794         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1795         #78888.
1796
1797 2006-07-20  Dick Porter  <dick@ximian.com>
1798
1799         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1800         warning.
1801
1802 2006-07-20  Dick Porter  <dick@ximian.com>
1803
1804         * threads.c (start_wrapper): Do the thread cleanup while we still
1805         hold a reference to its object.  Fixes bug 78123.
1806
1807 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1808
1809         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1810         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1811           "managed-to-managed".
1812         * icall.c: Redirect string constructors that take sbyte* to
1813           ves_icall_System_String_ctor_RedirectToCreateString.
1814         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1815           to CreateString () methods with matching signature.
1816         * reflection.c: Use original security informations for
1817           MONO_WRAPPER_MANAGED_TO_MANAGED.
1818         * security-manager.c: Use original security informations for
1819           MONO_WRAPPER_MANAGED_TO_MANAGED.
1820         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1821           that is a placeholder and only its address should be used.
1822         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1823           that is a placeholder and only its address should be used.
1824
1825 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1826
1827         Begin implementing COM Interop.
1828         * appdomain.c: Increment corlib version.
1829         * class.c: Set ComImport classes' parent to __ComObject.
1830         * loader.c: Mark cominterop methods as such.
1831         * domain.c: Add __ComObject class to MonoDefaults structure.
1832         * image.c: Add 2 hashtables to the image for COM Interop related methods
1833         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1834         using the mempool allocator
1835         
1836         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1837         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1838         declaration for mono_metadata_type_dup_mp.
1839         
1840         * debug-helpers.c: Added strings for two additional wrapper types
1841         * object.c: Create proxy objects for ComImport classes
1842         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1843         and added __ComObject class to MonoDefaults structure.
1844         
1845         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1846         MonoComInteropProxy and MonoComObject.
1847         
1848         * marshal.c: Added support for COM Interop
1849         (signature_cominterop): Converts managed signature to corresponding
1850         unmanaged COM signature.
1851         (cominterop_get_function_pointer): gets unmanaged function pointer via
1852         COM object vtable
1853         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1854         (cominterop_get_method_interface): returns interface type that method is defined on
1855         (mono_mb_emit_cominterop_call): emits native call to function pointer
1856         gotten from vtable
1857         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1858         that matches signature of unmanaged function.
1859         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1860         (cominterop_get_invoke): forwards call from proxy to __ComObject
1861         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1862         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1863         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1864         
1865         * marshal.h: Added Marshal icall declarations.
1866         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1867         so we can access them in finalizer
1868         
1869 2006-07-14  Dick Porter  <dick@ximian.com>
1870
1871         * object.c (mono_type_initialization_cleanup): Fix a race
1872         condition by temporarily commenting out the critical section
1873         deletion.
1874
1875 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1876
1877         * reflection.c (create_custom_attr): Fix some warnings.
1878         (create_custom_attr_data): Ditto.
1879         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1880         types. Fixes #78855.
1881
1882 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1883
1884         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1885
1886         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1887
1888 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1889
1890         * reflection.c (resolve_object): Add support for DynamicMethod.
1891
1892         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1893         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1894
1895 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1896
1897         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1898         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1899
1900 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1901
1902         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1903         Fixes #77888.
1904
1905 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1906
1907         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1908         slightly: remove a shadow local variable.
1909
1910 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1911
1912         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1913         definition that introduces the virtual function slot.
1914         Also fix Coverity #105.
1915
1916 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1917
1918         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1919         for dynamic assemblies. Fixes #78724.
1920
1921 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1922
1923         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1924         Fixes #78722.
1925
1926 2006-06-21  Martin Baulig  <martin@ximian.com>
1927
1928         * reflection.c
1929         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1930         fixes #76484.
1931
1932 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1933
1934         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1935
1936 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1937
1938         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1939         nor TYPEREFs.
1940         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1941         Inflate result if necessary.
1942         (mono_class_get_full): Remove old version.  Rename from
1943         'mono_class_get' and add 'context' argument.  Pass it to
1944         ..._create_from_typespec.
1945         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1946         (mono_ldtoken): Revert change below.
1947
1948 2006-06-20  Martin Baulig  <martin@ximian.com>
1949
1950         * class.c (mono_ldtoken): Don't pass the generic context to
1951         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1952
1953 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1954
1955         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1956         and later freeing it. Fixes #78638.
1957
1958 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1959
1960         * icall.c (mono_class_get_throw): Revert over-zealous error
1961         throwing, the caller for mono_class_get_throw will cope with
1962         errors when classes are not properly initialized already.
1963
1964         The code still copes with loader exceptions though.
1965
1966         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1967         
1968 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1969
1970         Fixes the `make run1' version of RuntimeAbort (to be commited,
1971         source is in Bugzilla).
1972         
1973         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1974         FALSE on class loading failure instead of returning true.
1975
1976         * class.c (mono_class_create_from_typedef): It is possible for
1977         mono_metadata_interfaces_from_typedef_full to fail if a class is
1978         not found, cope with this.
1979         
1980
1981 2006-06-14  Dick Porter  <dick@ximian.com>
1982
1983         * socket-io.c: 
1984         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1985         4.1.1
1986
1987 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1988
1989         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1990
1991 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1992
1993         * icall.c: Another fix for building mono in Visual Studio.
1994
1995 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1996
1997         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1998         
1999 2006-06-09  Martin Baulig  <martin@ximian.com>
2000
2001         * debug-mono-symfile.c: Put this back and really fix it this
2002         time. Sorry for all the trouble.
2003
2004 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
2005
2006         * icall.c (mono_class_get_throw): Fix a warning.
2007         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
2008         ReflectionTypeLoadException if needed. Fixes #78606.
2009
2010         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
2011         (mono_class_init): Ditto.
2012
2013         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
2014         ref_only exceptions.
2015         (mono_loader_clear_error): Make this work even if there is no error.
2016
2017 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
2018
2019         * object-internals.h marshal.c marshal.h icall.c: Implement method 
2020         Marshal.GetComSlotForMethodInfo using internal call.
2021
2022 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
2023
2024         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
2025         a function for signalling it.
2026
2027         * class.c (mono_class_from_typeref): Use the new kind of loader error when
2028         a referenced assembly is not found.
2029
2030         * loader.c (mono_loader_error_prepare_exception): Add support for 
2031         LOADER_ERROR_ASSEMBLY. Fix formatting.
2032
2033 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
2034
2035         * domain.c appdomain.c class-internals.h marshal.c: Add support 
2036         for VARIANT marshalling on windows and increment corlib version
2037         since Variant struct was added.
2038
2039 2006-06-03  Miguel de Icaza  <miguel@novell.com>
2040
2041         * debug-mono-symfile.c: Revert Martin's previous patch which broke
2042         stack trace line information:
2043
2044         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
2045         (Martin) when looking up B which is between A and C, return A not C.
2046
2047         Bug is #78573.
2048
2049         Thanks to Alexander Olk for tracking this down.
2050
2051 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
2052
2053         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
2054         
2055         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
2056         avoid clobbering its value.
2057         (mono_string_to_lpstr): Fix a warning on windows.
2058
2059 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2060
2061         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
2062
2063         * reflection.c loader.c: Removed references to 'dummy' flag.
2064
2065         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
2066
2067         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
2068         it gets GC tracking.
2069
2070         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
2071         GC tracking.
2072         
2073         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
2074
2075         * marshal.c threadpool.c: Update callers of mono_async_result_new.
2076
2077         * appdomain.c: Bump corlib version.
2078
2079 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2080
2081         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2082         CEE_STIND_REF when working with object references.
2083
2084 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2085
2086         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
2087         Fixes #78539.
2088
2089 2006-05-30  Miguel de Icaza  <miguel@novell.com>
2090
2091         * loader.c (method_from_memberref): Fix argument value for
2092         mono_loader_set_error_method_load (I was passing the MonoClass
2093         instead of the class name char *).
2094
2095 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2096
2097         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2098         CEE_STIND_REF when working with object references.
2099
2100 2006-05-30  Martin Baulig  <martin@ximian.com>
2101
2102         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2103         mono_method_full_name() change and replace the ':' with a '.'
2104         here.
2105
2106 2006-05-30  Martin Baulig  <martin@ximian.com>
2107
2108         * debug-mono-symfile.c
2109         (mono_debug_symfile_lookup_location): Fix the algorithm:
2110         when looking up B which is between A and C, return A not C.
2111
2112 2006-05-29  Martin Baulig  <martin@ximian.com>
2113
2114         * mono-debug.h
2115         (MonoDebugMethodInfo): Make the typedef public.
2116         (MonoDebugSourceLocation): New public struct.
2117
2118         * mono-debug.c
2119         (mono_debug_source_location_from_address): Removed.
2120         (mono_debug_source_location_from_il_offset): Removed.
2121         (mono_debug_il_offset_from_address): Removed.
2122         (mono_debug_address_from_il_offset): Removed.
2123         (mono_debug_lookup_method): New public function.
2124         (mono_debug_lookup_source_location): New public function; replaces
2125         the old mono_debug_source_location_from_*() functions; see the
2126         inline documentation.
2127         (mono_debug_free_source_location): New public function.
2128         (mono_debug_print_stack_frame): New public function; see the
2129         inline documentation.
2130
2131         * debug-mono-symfile.c
2132         (mono_debug_find_source_location): Renamed into
2133         mono_debug_symfile_lookup_location(); only take a
2134         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2135         documentation.
2136         (mono_debug_find_method): Renamed into
2137         mono_debug_symfile_lookup_method().
2138
2139 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2140
2141         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2142         returned by mono_image_open_full ().
2143
2144         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2145         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2146         #78517.
2147
2148         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2149         #78518.
2150
2151 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2152
2153         * class.c (mono_class_from_typeref): handle missing images
2154         earlier, deals with bug #78418.   Refactor code; 
2155
2156         Fix a warning introduced in my previous commit (some stale code
2157         from before I revisited my patch).
2158
2159         * class.c (mono_class_create_from_typedef): On failure, remove the
2160         class from the MonoImage->class_cache as the class is not
2161         initialized;   Fixes the leak pointed out by Paolo.
2162
2163 2006-05-25  Dick Porter  <dick@ximian.com>
2164
2165         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2166         DeleteCriticalSections until I figure out which one may still be
2167         sometimes locked when mono_thread_cleanup is called.
2168
2169 2006-05-24  Dick Porter  <dick@ximian.com>
2170
2171         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2172         of mono_thread_manage and back into its own function, so it can be
2173         called after the finalizer thread has finished.
2174
2175         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2176
2177 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2178
2179         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2180         Fixes #78495.
2181
2182         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2183         with non-blittable elements.
2184         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2185
2186 2006-05-24  Martin Baulig  <martin@ximian.com>
2187
2188         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2189         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2190
2191         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2192         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2193         `mono_debugger_event_handler' to NULL.
2194
2195 2006-05-24  Martin Baulig  <martin@ximian.com>
2196
2197         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2198
2199 2006-05-24  Martin Baulig  <martin@ximian.com>
2200
2201         * mono-debug-debugger.h
2202         (mono_debugger_create_notification_function): Added
2203         `MonoCodeManager *' argument.
2204
2205 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2206
2207         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2208
2209 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2210
2211         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2212         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2213         implementation.
2214
2215 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2216
2217         * icall.c: precise GC support: objects can't be stored in unmanaged
2218         memory anymore, even if they are kept alive by other references: since
2219         they can move the GC needs to be able to always find them.
2220
2221 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2222
2223         * object.c: precise GC support for static fields. Support
2224         for moving GCs: write barriers and pinned allocation for interned
2225         strings.
2226
2227 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2228
2229         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2230         structure.
2231
2232 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2233
2234         * class.c, gc.c: sgen and precise GC updates.
2235
2236 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2237
2238         * marshal.h, marshal.c: added write barrier wrapper and precise type
2239         fixes.
2240
2241 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2242
2243         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2244         support.
2245
2246 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2247
2248         * reflection.c: precise and sgen GC updates.
2249
2250 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2251
2252         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2253
2254 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2255
2256         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2257
2258 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2259
2260         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2261         MONO_TYPE_OBJECT. Fixes #78462.
2262
2263 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2264
2265         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2266         and blittable types.
2267
2268 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2269
2270         * class.c (mono_class_get_exception_for_failure): Implement parts
2271         of a TODO: if the loader error is set (instead of the class
2272         error), we return a Loader exception that can be properly thrown
2273         elsewhere.
2274
2275         This was exposed by some Winforms 2.0 code that I tried to run
2276         (Atsushi pointed me to it).
2277
2278 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2279
2280         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2281         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2282         
2283         * marshal.c (emit_marshal_vtype): Add limited support for 
2284         UnmanagedType.LPStruct. Fixes #78427.
2285
2286         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2287         Applied a patch from kangaroo to fix #77523.
2288
2289 2006-05-17  Martin Baulig  <martin@ximian.com>
2290
2291         * threads.c
2292         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2293         (debugger_thread_created): Removed.
2294         (debugger_thread_exited): Removed.
2295
2296 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2297
2298         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2299
2300         * object-internals.h (MonoReflectionResource): Sync with managed version.
2301
2302 2006-05-12  Wade Berrier <wberrier@novell.com>
2303
2304         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2305
2306 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2307
2308         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2309         functions try to allocate from the image mempool.
2310
2311 2006-05-12  Dick Porter  <dick@ximian.com>
2312
2313         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2314
2315 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2316
2317         * object.c: The FieldGetter and FieldSetter methods require the full
2318         name of the class, not only the name. Fixes bug #78277.
2319
2320 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2321
2322         * loader.c (method_from_memberref): Do not pass the NULL klass to
2323         mono_loader_set_error_() methods.  Pass the non-NULL value
2324         (class). 
2325
2326 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2327
2328         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2329         (mono_assembly_close): Null out assembly->image->references after freeing it.
2330
2331         * image.c (mono_image_close): Free image->references.
2332         
2333         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2334
2335 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2336
2337         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2338         before checking if it's NULL (g_assert).
2339
2340 2006-05-10  Martin Baulig  <martin@ximian.com>
2341
2342         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2343         I thought I already killed that two months ago, but now it somehow reappeared.
2344
2345 2006-05-10  Martin Baulig  <martin@ximian.com>
2346
2347         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2348
2349 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2350
2351         * reflection.c: Allocate memory for dynamically created methods in the image
2352         mempools.
2353
2354 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2355
2356         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2357         don't use the ad pointer before checking if it's NULL (g_assert).
2358
2359 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2360
2361         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2362         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2363
2364         * marshal.c: Allocate all signatures from mempools.
2365
2366         * marshal.c: Allocate some more signatures from mempools.
2367
2368 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2369
2370         * object.c (mono_load_remote_field): The code used to provide a
2371         temporary variable for returning results if the user did not
2372         provide a result pointer.  But our temporary variable was allocted
2373         on the satck.
2374
2375         Fix calling code to always pass a result area.   Coverity ID 103.
2376
2377 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2378
2379         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2380         value, not the old. Fixes #78312.
2381         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2382
2383         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2384         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2385         per-image cache.
2386
2387         * assembly.c (mono_assembly_close): Free image->references.
2388
2389         * assembly.c (mono_assembly_names_equal): Fix a warning.
2390         (mono_assemblies_cleanup): Cleanup more global data.
2391
2392         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2393
2394         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2395         ptr_cache and image->modules.
2396
2397         * image.c (mono_image_init): Allocate array_cache lazily.
2398         
2399 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2400
2401         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2402         behavior was changed recently and has bad side effects.
2403
2404 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2405
2406         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2407         
2408         * assembly.c (mono_assembly_close): Remove a debug printf.
2409
2410         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2411
2412         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2413         to also allow for temporary references between mono_image_open ()/close ().
2414
2415         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2416
2417 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2418
2419         * marshal.c: Fix support for dynamic methods.
2420
2421         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2422
2423         * marshal.c (mono_marshal_cleanup): New cleanup function.
2424
2425         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2426         image mempools.
2427
2428         * class.c (mono_class_init): Fix leaking class->nested_classes.
2429
2430         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2431
2432         * image.c (mono_image_init): Initialize the new cashes.
2433
2434         * image.c (mono_image_close): Destroy the new cashes.
2435
2436         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2437
2438         * mempool.c (mono_mempool_strdup): New helper function.
2439
2440         * class-internals.h: Add prototype for mono_loader_unlock ().
2441
2442         * domain.c (mono_jit_info_table_find): Fix a warning.
2443         (mono_debugger_check_runtime_version): Ditto.
2444
2445         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2446         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2447         functions to these modules.
2448
2449         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2450         metadata modules.
2451         
2452         * marshal.c (mono_free_bstr): Fix a warning.
2453
2454         * assembly.c (mono_assembly_open_full): Fix another small leak.
2455
2456         * object.c: Fix some unload leaks in the remoting code.
2457
2458         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2459         function.
2460
2461         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2462
2463         * reflection.c: Fix some unload leaks in dynamic assemblies.
2464
2465 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2466
2467         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2468         * marshal.h: Add BSTR support on Win32
2469         * icall.c: Add BSTR icalls
2470         * metadata.h: Add BSTR enums
2471
2472 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2473
2474         Work to catch the crash from #76795 and turn it into an
2475         exception.   As I stubbed out pieces of the VisualBasic support,
2476         I found a number of places where the code was failing and I added
2477         checks to those places. 
2478         
2479         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2480         function return a status code.  If we fail to parse the signature
2481         from mono_metadata_parse_generic_inst, return FALSE.
2482
2483         * loader.c (mono_get_method_from_token): If we fail to load the
2484         method (mono_class_get) return NULL.   
2485
2486         * (method_from_memberref): Return NULL if we are unable to parse
2487         the method signature
2488
2489         (mono_loader_error_prepare_exception): Since we now use the
2490         loader_error flag internally to stop processing, and obtaining
2491         exceptions that might be thrown will walk this code path the
2492         proper way of going from a MonoLoaderError into a
2493         MonoException was convoluted.   This new routine encapsulates the
2494         process of turning the error into an exception and *clearing* the
2495         error afterwards.
2496         
2497 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2498
2499         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2500         with missing assemblies), and to cope with:
2501
2502                 * Missing fieldref from a non-existing assembly.
2503                 * Missing methodref from a non-existing assembly.
2504
2505         The first batch of work to address *some* of the issues from 76661.
2506         
2507         * object.c (mono_class_create_runtime_vtable): If we fail to
2508         initialize the class raise the exception here. 
2509
2510         * metadata.c (mono_class_get_overrides_full): If any methods fail
2511         to load return the failure to the caller.
2512
2513         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2514         flagging assemblies that failed to load.   
2515
2516         Do not crash if we are unable to load the assembly.
2517
2518         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2519         assemblies. 
2520
2521         * loader.c (mono_loader_set_error_type_load): Change the
2522         convention to always pass unallocated strings, so we make our own
2523         copies (I know our own code had duplicated strings before, but
2524         this keeps the normal conventions).
2525         (method_from_memberref): Call mono_loader_set_error_method_load
2526         for all possible failures of loading the class. 
2527         Remove assert, turn into a loader error.
2528
2529         (mono_loader_error_to_exception): Move this routine from mini
2530         (mini_loader_error_to_exception) there was no need to have that in
2531         mini. 
2532
2533         * class.c (mono_class_from_typeref): If we were not able to load
2534         the assembly with mono_assembly_load_reference, call the
2535         mono_loader_set_error_type_load to register the problem.
2536
2537         (mono_class_setup_fields): If we fail to load the type from
2538         mono_metadata_parse_type_full, call mono_class_set_failure and
2539         break from the loop.
2540
2541         If class->exception_type is set, we do not layout the fields as
2542         that might crash the runtime, and instead return (from breaking
2543         from the previous loop).
2544
2545         (mono_class_setup_vtable): This now returns a boolean indicating
2546         whether the table was properly setup.   The decision is driven by
2547         mono_class_get_overrides_full which might run into non-existing
2548         methods. 
2549         
2550         (mono_class_init): Returns TRUE on success or FALSE if there was a
2551         problem in loading the type (incorrect assemblies, missing
2552         assemblies, methods, etc).
2553
2554         When we call mono_class_setup_fields we also check for a potential
2555         error inside this call (either a class exception or a general
2556         loader exception).
2557
2558         (mono_class_create_from_typedef): If the parent fails to load
2559         (calling mono_class_get_full) return NULL.
2560         
2561         ** Important **
2562
2563         calls to mono_metadata_parse_type_full should be checked
2564         everywhere and set the mono_class_set_failure
2565         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2566
2567         The current patch checks the places where my manually constructed
2568         tests show the errors are showing up, but we should do it
2569         everywhere. 
2570
2571         ** Important2 **
2572
2573         mono_class_init return values should be tested everywhere, like
2574         the previous case this is something that we should audit
2575         everywhere and not only on the cases exposed by the tests I
2576         created. 
2577
2578 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2579
2580         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2581         boolean parameter and instead pass the information on `options'
2582         parameter (FileOptions).
2583
2584         * icall.c: Register the new signature for MonoIO.Open.
2585
2586         * debug-helpers.c (dis_one): Trying to understand how coverity
2587         works.  Fix Run 5, item 78.
2588
2589 2006-04-26  Dick Porter  <dick@ximian.com>
2590
2591         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2592         dereference.
2593
2594 2006-04-25  Martin Baulig  <martin@ximian.com>
2595
2596         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2597
2598         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2599         debugger_thread_created().
2600         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2601         special way.
2602         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2603         (mono_debugger_finalize_threads): New function; undo the effects
2604         of mono_debugger_init_threads().
2605         (mono_debugger_create_all_threads): Removed.
2606
2607 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2608
2609         * image.c (mono_image_close): Tidy up trace messages.
2610
2611         * assembly.c (mono_assembly_close): Ditto.
2612
2613         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2614         no longer references an already freed assembly. Fixes #78168.
2615
2616 2006-04-21  Dick Porter  <dick@ximian.com>
2617
2618         * threads.c (mono_thread_detach): Fix reference counting when
2619         detaching threads.
2620
2621 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2622
2623         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2624         #78155.
2625
2626 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2627
2628         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2629         (mono_type_to_stind): Ditto.
2630
2631         * marshal.c: Use the new helper functions to simplify code.
2632
2633         * image.c (mono_image_close): Add some code for help debug assembly unloading
2634         problems.
2635
2636         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2637         image mempool.
2638
2639         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2640         assembly was already loaded in another appdomain. Fixes #78083.
2641
2642 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2643
2644         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2645         referenced assemblies.
2646         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2647
2648         * domain.c (mono_domain_free): Add a trace message.
2649
2650         * appdomain.c (add_assemblies_to_domain): Ditto.        
2651
2652         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2653         field.  
2654
2655 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2656
2657         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2658
2659 2006-04-12  Martin Baulig  <martin@ximian.com>
2660
2661         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2662         `USE_INCLUDED_LIBGC'.   
2663
2664 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2665
2666         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2667         the patch contains ../ and a small directory name later. Hopefully fixes
2668         #78035.
2669
2670 2006-04-10  Martin Baulig  <martin@ximian.com>
2671
2672         Clean up the debugger's thread-handling code.
2673
2674         The debugger's thread-handling code has been moved from
2675         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2676         over the `threads' hash, keep track of exiting threads and also
2677         use proper locking.
2678
2679         We can now debug XSP and XSP based applications with the debugger.
2680
2681         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2682
2683         * threads.h
2684         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2685         (mono_install_thread_callbacks): Likewise.      
2686
2687         * threads.c (mono_thread_callbacks): Removed.
2688         (debugger_thread_created, debugger_thread_exited): New static functions.
2689         (start_wrapper): Call debugger_thread_created().
2690         (thread_cleanup): Call debugger_thread_exited().
2691         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2692         (mono_debugger_init_threads): New public function.
2693         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2694         iterate directly over the `threads' hash and also use proper locking.
2695
2696         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2697
2698         * mono-debug-debugger.h
2699         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2700
2701 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2702
2703         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2704         argument type=array. Fixes #78057.
2705
2706 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2707
2708         * culture-info-table.h : regenerated. Fixed bug #69652.
2709
2710 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2711
2712         * loader.c metadata.c: Reapply a variant r59116.
2713         
2714         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2715
2716         * class.c (mono_class_setup_interface_offsets): New internal function.
2717
2718         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2719         interfaces too. Fixes #77398.
2720
2721         * reflection.c (encode_cattr_value): Add support for 
2722         parameter type=object, argument type=array.
2723         (load_cattr_value): Ditto. Fixes #77916.
2724
2725         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2726         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2727
2728         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2729         a byval char array and CharSet is Ansi.
2730
2731         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2732
2733 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2734
2735         * metadata.c: Add some locking comments.
2736         
2737         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2738         mempool.
2739         (mono_metadata_free_method_signature): Don't free the signature itself.
2740
2741         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2742
2743         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2744         reference the same MonoImage.
2745         (mono_assembly_load_from_full): Add an assert.
2746
2747 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2748
2749         * image.c (mono_image_close): Don't put the image we are about to free into the
2750         loaded_images_guid_hash.
2751
2752         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2753         to reduce code duplication.
2754
2755         * marshal.c: Register the native functions called by this module as icalls, to
2756         somewhat centralize the creation of MonoMethodSignature's.
2757
2758         * loader.c (mono_method_signature): Add a cache for method signatures.
2759
2760         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2761         the parameter attributes of a method.
2762         (mono_metadata_parse_method_signature_full): Refactored the computation of
2763         parameter attributes into a separate function. Also avoid one allocation in
2764         most cases.
2765
2766         * assembly.c (mono_assembly_close): Ditto.
2767
2768         * image.c (mono_image_close): Log trace messages with INFO level.
2769
2770         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2771
2772         * image.c reflection.c: Correct reference counting of image modules.
2773         
2774         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2775         of this function from the image mempool.
2776         
2777         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2778         to allow more cached types to be used.
2779
2780         * mono-debug.c (mono_debug_add_method): Appled patch from
2781         David S. Miller  <davem@sunset.davemloft.net>: Access 
2782         minfo->lexical_blocks[] entry elements using read32().
2783
2784 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2785
2786         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2787         methods as it is allocated from the mempool.
2788
2789         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2790         image mempool.
2791
2792         * metadata-internals.h: Add comments describing the reference counting scheme
2793         used for MonoImage and MonoAssembly.
2794
2795         * image.c assembly.c reflection.c: Rework reference counting of images and 
2796         assemblies so they are freed when the runtime is shut down. Free some 
2797         additional memory structures when an image is unloaded.
2798         
2799 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2800
2801         * class.c loader.c reflection.c: Allocate more data structures in
2802         the image mempool.
2803
2804 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2805
2806         * icall.c
2807         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2808         build on pre glib 2.4 systems.
2809
2810 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2811
2812         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2813
2814         * icall.c: Fix some warnings.
2815
2816 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2817
2818         * culture-info-table.h : regenerated.
2819
2820 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2821
2822         * threads.c, object-internals.h, verify.c: changed the culture caching
2823         code to use a normal MonoArray for storage so the GC can keep track of
2824         them easily. Fixed bits of the cache logic, too and simplified the
2825         code.
2826
2827 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2828
2829         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2830         thread for non-Boehm GCs.
2831
2832 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2833
2834         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2835         needed to keep track of the data for static fields.
2836
2837 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2838
2839         Fix #75172
2840         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2841         for interface classes.  Use 'num_methods' instead.
2842         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2843         before using '->vtable_size' field.
2844
2845 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2846
2847         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2848         doesn't contain managed pointers, so use a normal hashtable.
2849
2850 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2851
2852         * reflection.c, class-internals.h, domain.c: fixed handling of types
2853         used as values for objects in custom attributes (bug #77915):
2854
2855 2006-03-24  Martin Baulig  <martin@ximian.com>
2856
2857         * class.c (mono_class_setup_fields): Added support for generic
2858         instances; fixes #77580.
2859
2860 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2861
2862         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2863
2864 2006-03-24  Dick Porter  <dick@ximian.com>
2865
2866         * file-io.c (get_file_attributes): More stat macro breakage.
2867         Fixes bug 77759.
2868
2869 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2870
2871         * profiler.c: added the file=filename option in the default profiler
2872         to output the profile data to filename.
2873
2874 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2875
2876         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2877         bug #77877.
2878
2879 2006-03-22  Martin Baulig  <martin@ximian.com>
2880
2881         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2882         allocated `MonoClassField *' in `fb->handle'.
2883
2884 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2885
2886         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2887         allocate interface ID to save memory and allow better ID reuse on
2888         appdomain unload. setup_generic_vtable () removal from Martin.
2889
2890 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2891
2892         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2893         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2894         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2895         write barriers for reference stores with managed objects accessed with
2896         C structures in the runtime and in embedding programs.
2897
2898 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2899
2900         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2901         'interface_id' and 'max_interface_id' fields of MonoClasses
2902         representing open generic types.
2903
2904 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2905
2906         * object.h, object.c, icall.c: added functions to deal with
2907         storing valuetypes that contain references in managed objects.
2908         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2909         fixes and comments around uses of mono_array_addr ().
2910
2911 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2912
2913         * object.h, icall.c, monitor.c: object.GetHashCode ()
2914         implementation that supports the moving garbage collector.
2915
2916 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2917
2918         * icall.c, threads-types.h, threads.c: implemented finalizer for
2919         LocalDataStoreSlot.
2920
2921 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2922
2923         * metadata.c (mono_type_size): Add a fixme.
2924         (mono_type_stack_size): Ditto.
2925
2926         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2927         'type_forwarders' field.
2928
2929         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2930         attribute from net 2.0.
2931
2932         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2933         from class.c.
2934
2935         * class.c (mono_class_setup_fields): Fix a warning.
2936         
2937         * class.c (mono_class_from_name): Add support for assemblyref entries
2938         in the EXPORTEDTYPE table.
2939
2940         * reflection.c: Add support for handling type forwarders under net 2.0.
2941
2942         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2943         
2944 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2945
2946         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2947         overwriting entries in ModuleBuild->types, also clean up the code
2948         a little. Fixes #77774.
2949
2950 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2951
2952         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2953         load friend assembly info when present.
2954
2955 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2956
2957         Fix crasher on gtest-158.cs.
2958         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2959         the return value if the MonoClass we want is yet in an
2960         inconsistent state.
2961         * class.c (mono_class_create_from_typedef): Add an comment
2962         explaining an order dependency between mono_class_setup_parent and
2963         mono_class_setup_mono_type.
2964
2965 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2966
2967         * class.c: documentation updates and events bug fix.
2968
2969 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2970
2971         * class.c: some cleanup, locking fixes.
2972
2973 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2974
2975         * class.c: fix the generics code to setup nested
2976         type info to the instantiated type (bug #77770).
2977
2978 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2979
2980         * marshal.c: fixed a few type correctness issues.
2981
2982 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2983
2984         * loader.c: the Set/Get/Addrtess array methods should be public.
2985
2986 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2987
2988         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2989         
2990         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2991         info->wrapper.
2992
2993 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2994
2995         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2996
2997         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2998
2999         * mempool.c (mono_mempool_alloc): Speed this up a bit.
3000         (mono_mempool_alloc0): Ditto.
3001
3002 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3003
3004         * socket-io.c:
3005         (create_object_from_sockaddr): it was allocating 4 extra bytes
3006         for the AF_UNIX data. Fixes bug #77747.
3007
3008 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
3009
3010         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
3011
3012 2006-03-09  Dick Porter  <dick@ximian.com>
3013
3014         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
3015         Fixes bug 76966 again.
3016
3017 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3018
3019         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
3020         names from r57532
3021         * appdomain.c: Bumped corlib version to 48 (due to r57532)
3022
3023 2006-03-07  Martin Baulig  <martin@ximian.com>
3024
3025         * object.c
3026         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
3027
3028 2006-03-07  Martin Baulig  <martin@ximian.com>
3029
3030         * class.c
3031         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
3032         regression introduced in r56970; see gtest-252.cs.
3033
3034         * loader.c (mono_get_method_constrained): Correctly handle generic
3035         methods; see gtest-253.cs.
3036
3037 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
3038
3039         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
3040
3041 2006-03-04  Martin Baulig  <martin@ximian.com>
3042
3043         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
3044         compute the parent type at runtime, just like we're already doing
3045         it for interfaces.
3046
3047         * reflection.c
3048         (mono_reflection_bind_generic_parameters): Don't compute the
3049         parent type anymore.
3050
3051         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
3052
3053 2006-03-04  Martin Baulig  <martin@ximian.com>
3054
3055         * mono-debug-debugger.h
3056         (mono_debugger_create_notification_function): Allocate memory at
3057         runtime and return a pointer to it.
3058
3059 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
3060
3061         * assembly.c: Fix windows build.
3062         
3063         * assembly.c: Fix build.
3064
3065         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
3066
3067         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
3068         
3069 2006-03-03  Dick Porter  <dick@ximian.com>
3070
3071         * process.c
3072         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3073         Check parameters before dereferencing them.  Fixes Aaron's part of
3074         bug 77393.
3075
3076 2006-03-03  Raja R Harinath  <rharinath@novell.com>
3077
3078         Fix performance regression.
3079         * loader.c (find_method_in_class): Add 'from_class' argument.
3080         Rename 'klass' argument to 'in_class'.  The signature is compared
3081         against the method in 'in_class', and the corresponding method is
3082         returned from 'from_class'.
3083         (find_method): Walk both 'in_class' and 'from_class' in parallel.
3084         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
3085         type definition and generic instantiation in parallel.
3086         (mono_get_method_constrained): Update to changes.
3087
3088 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3089
3090         * threads.c: make sure the domain is correct, too when doing
3091         mono_thread_attach ().
3092
3093 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
3094
3095         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3096         windows. Fixes #77683.
3097
3098 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3099
3100         * object.h, *: introduced specific way to set elements of an array
3101         of references to be used as write barrier. Still need to audit the
3102         uses of mono_array_addr.
3103
3104 2006-03-01  Miguel de Icaza  <miguel@novell.com>
3105
3106         * object-internals.h: New field to cache the assmebly name, patch
3107         from Tambet Ingo (tambet@ximian.com)
3108
3109 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3110
3111         * decimal.h, class-internals.h, metadata-internals.h,
3112         file-io.h: mark a few function declarations as internal, to
3113         reduce the number of PLT entries.
3114
3115 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3116
3117         * file-io.c: fix typo in warning message.
3118
3119 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3120
3121         * loader.c: on unix, lookup the "*A" version of a function
3122         if charset is auto as a second option before failing.
3123
3124 2006-02-28  Raja R Harinath  <rharinath@novell.com>
3125
3126         * class.h (mono_class_inflate_generic_method): Revert to two
3127         argument version.
3128         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3129         (mono_class_inflate_generic_method_full): Add.
3130         * class.c (mono_class_inflate_generic_method_full): Rename from
3131         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3132         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3133         * loader.c, reflection.c: Update to changes.
3134
3135 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3136
3137         * icall.c: const fixes and small improvements.
3138
3139 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3140
3141         * threadpool.c: for asynchronous connect(), enable the same workaround
3142         for BSD 6 as for the Mac. Fixes bug #77637.
3143
3144 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3145
3146         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3147         formatted classes. Fixes #77524.
3148
3149 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3150
3151         * class.c (inflate_generic_type): Add a couple more
3152         micro-optimizations.
3153         (inflate_generic_context): Don't use the 'gmethod' from
3154         'inflate_with'.
3155         (mono_class_inflate_generic_method): If the method has generic
3156         parameters, but the passed-in context doesn't have a 'gmethod',
3157         create one.  Use the possibly simplified generic instantiation
3158         from the declaring class instead of the one passed in.
3159
3160 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3161
3162         Make generic method signature and method header handling lazy.
3163         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3164         (inflate_generic_header): Likewise.
3165         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3166         parameter to avoid inflating types.
3167         (mono_get_inflated_method): Empty out.
3168         * class.h (mono_class_inflate_generic_method): Update to changes.
3169         * loader.c (mono_get_method_from_token): Don't parse signature for
3170         generic methods, nor methods of generic classes.
3171         (mono_method_signature): Rename from 'mono_method_signature'.
3172         Inflate signature on demand.
3173         (mono_method_get_header): Inflate method header on demand.
3174         * reflection.c: Update to changes.
3175
3176 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3177
3178         * metadata.c (mono_metadata_inflate_generic_inst): If the
3179         instantiation is closed, don't bother expanding it in the new
3180         context.
3181         * class.c (inflate_generic_class): If the generic instantiation
3182         doesn't change after inflation, return the argument itself.
3183         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3184         Add bounds checks.
3185         (inflate_generic_context): If neither the generic class nor the
3186         generic method instantiations change, return the original context.
3187         * reflection.c (mono_method_get_object): Do
3188         'mono_get_inflated_method' before accessing the ->klass field.
3189         (inflate_mono_method): Don't create a MonoGenericMethod unless
3190         necessary.
3191         (inflate_method): Don't pass a constructed type as the declaring
3192         type of a methodbuilder.
3193
3194 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3195
3196         * object.c: fix memory overwrite.
3197
3198 2006-02-22  Dick Porter  <dick@ximian.com>
3199
3200         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3201         it doesn't work any more.
3202         (mono_threads_request_thread_dump): Fix unused variable warnings.
3203
3204 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3205
3206         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3207         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3208         the public header file.
3209
3210 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3211
3212         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3213
3214 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3215
3216         * class-internals.h, object.c: reduce the size of MonoVTable
3217         and store the interface_offsets array at negative offsets.
3218
3219 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3220
3221         * metadata.c: tweak table descriptors data structures to reduce
3222         size and runtime relocations.
3223
3224 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3225
3226         * marshal.c: fix some types and opcodes to be type-safe
3227         in marshaling wrappers.
3228
3229 2006-02-21  Ankit Jain  <jankit@novell.com>
3230
3231         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3232
3233 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3234
3235         * metadata.c (get_constraints): Relax debugging checks for monodis.
3236
3237 2006-02-21  Ankit Jain  <jankit@novell.com>
3238
3239         * metadata.c (mono_metadata_load_generic_params): Move the code
3240         checking for ambiguous generic params from here to mono/dis/get.c
3241         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3242
3243 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3244
3245         Fix assertion triggered when compiling nemerle.
3246         * class.c (mono_get_shared_generic_inst): Rename from
3247         get_shared_inst and make non-static.
3248         * loader.c (mono_get_shared_generic_method): New.  Used to create
3249         the MonoGenericContext-equivalent of a MonoGenericContainer.
3250         (mono_get_method_from_token): Initialize the 'context' field of
3251         the created MonoGenericContainer.
3252         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3253         * metadata.c (get_constraints): Add sanity check.
3254         * class-internals.h: Add new internal methods.
3255
3256         * reflection.c (verify_safe_for_managed_space): New sanity check.
3257         Currently checks that owner-less generic parameters aren't allowed
3258         in managed space.
3259         (mono_type_get_object): Use it.
3260         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3261         that are now in mono_type_get_object.
3262         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3263
3264 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3265
3266         * metadata.c (mono_type_create_from_typespec): Rename from
3267         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3268         argument and caching of types in the generic container.
3269         (unwrap_arrays, find_generic_param): Remove.
3270         * metadata-internals.h: Update.
3271         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3272
3273 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3274
3275         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3276
3277         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3278         return values. Fixes #77581.
3279
3280         * class.c (mono_fnptr_class_get): Switch name and name_space.
3281
3282         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3283         classes and add support for [In, Out] attributes.
3284         (mono_marshal_free_asany): Ditto. Fixes #77524.
3285
3286 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3287
3288         * class.c (mono_class_from_generic_parameter): Make more robust to
3289         incomplete MonoGenericContainers from monodis.
3290
3291 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3292
3293         * class-internals.h: added some more exception types.
3294         * class.c, metadata.c: added a few checks to handle missing
3295         types.
3296
3297 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3298
3299         Use owner-less generic-params some more.
3300         * class.c (my_mono_class_from_generic_parameter): Remove.
3301         (mono_class_from_generic_parameter): Handle null image,
3302         param->name and param->owner.
3303         (mono_class_from_mono_type): Update.
3304         (mono_class_create_from_typespec): Remove 'container' parameter.
3305         If that parameter is non-null, the result is always inflated by
3306         'mono_class_get_full' anyway.
3307         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3308         parameter.
3309         (mono_class_get_full): Update.
3310
3311         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3312         instance is not open, don't bother inflating.
3313         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3314         parse metadata for inflated classes.
3315         (_mono_class_get): Change GenericContext* parameter to
3316         GenericContainer*.
3317         (mono_class_create_from_typespec): Likewise.  Simplify, and
3318         implement trivially.  All the cases are handled in
3319         mono_class_from_mono_type.  Don't inflate returned class.
3320         (mono_class_get_full): Delegate GENERICINST optimization to
3321         inflate_generic_type.
3322         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3323
3324 2006-02-16  Dick Porter  <dick@ximian.com>
3325
3326         * socket-io.c (create_object_from_sockaddr): Fix typo.
3327         (create_sockaddr_from_object): Check array lengths before
3328         potentially accessing items off the end.
3329         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3330         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3331         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3332         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3333         length checks to avoid wraparound overflows.
3334         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3335         contents of the array of sockets
3336         (hostent_to_IPHostEntry2)
3337         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3338         Check return value of inet_ntop ().
3339         (addrinfo_to_IPHostEntry): Fix typo
3340
3341 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3342
3343         Type metadata parsing doesn't use generic-instantiation information.
3344         * metadata.c (mono_metadata_parse_array_full): Change
3345         MonoGenericContext* parameter to MonoGenericContainer*.
3346         (mono_metadata_parse_type_full): Likewise.
3347         (mono_type_create_from_typespec_full): Likewise.
3348         (mono_metadata_parse_mh_full): Likewise.
3349         (mono_metadata_parse_generic_inst): Likewise.
3350         (do_mono_metadata_parse_generic_class): Likewise.
3351         (do_mono_metadata_parse_type): Likewise.
3352         * metadata-internals.h: Update to changes.
3353         * class.c (mono_class_find_enum_basetype): Likewise.
3354         (mono_class_setup_fields): Likewise.
3355         (mono_class_create_from_typespec): Likewise.
3356         * loader.c (method_from_methodspec): Likewise.
3357         (mono_get_method_from_token): Likewise.
3358         (mono_method_get_header): Likewise.
3359
3360 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3361
3362         * marshal.c: handle additional GENERICINST case (patch from
3363         Thong Nguyen <tum@veridicus.com>).
3364         Fix a few cases where LDIND_I/STIND_I was used for references.
3365
3366 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3367
3368         * reflection.c (mono_reflection_get_token): Remove unused variable.
3369
3370 2006-02-16  Martin Baulig  <martin@ximian.com>
3371
3372         * reflection.c (mono_reflection_get_token): Add support for fields
3373         in instantiated generic types.
3374
3375         * icall.c
3376         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3377
3378 2006-02-15  Martin Baulig  <martin@ximian.com>
3379
3380         * icall.c
3381         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3382         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3383         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3384         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3385
3386 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3387
3388         * class.c, metadata.c, metadata.h, object.c, icall.c,
3389         marshal.c: changed mono_type_get_underlying_type () to do
3390         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3391         Fixed handling of instantiated generic valuetypes (bug #75479).
3392
3393 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3394
3395         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3396         Delegate to mono_metadata_decode_value, and work on the returned value.
3397
3398         * icall.c (ves_icall_MonoType_GetGenericArguments):
3399         Add consistency check here too.
3400         
3401 2006-02-15  Ankit Jain  <jankit@novell.com>
3402
3403         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3404         char/short etc.
3405
3406 2006-02-15  Ankit Jain  <jankit@novell.com>
3407
3408         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3409         signed values, used only for representing lower bounds of arrays.
3410         (mono_metadata_parse_array_full): Use new
3411         mono_metadata_decode_signed_value to decode lower bounds.
3412
3413 2006-02-14  Martin Baulig  <martin@ximian.com>
3414
3415         * reflection.c
3416         (mono_reflection_get_token): Support "MonoGenericMethod" and
3417         "MonoGenericCMethod" and allow generic instances / methods.
3418
3419 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3420
3421         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3422         to obtain the terminal size using an ioctl.
3423
3424         * object.c (mono_nullable_init): Revert this as nullable reference
3425         types are not valid.
3426         (mono_nullable_box): Ditto.
3427
3428 2006-02-09  Dick Porter  <dick@ximian.com>
3429
3430         * threads.c (mono_thread_detach): Drop a reference to the thread
3431         we're detaching.
3432
3433 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3434
3435         * object.c (mono_nullable_init): Handle nullable reference types.
3436         (mono_nullable_box): Ditto. Fixes #77446.
3437
3438 2006-02-07  Martin Baulig  <martin@ximian.com>
3439
3440         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3441
3442 2006-02-07  Ankit Jain  <jankit@novell.com>
3443
3444         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3445         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3446         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3447         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3448         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3449         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3450
3451 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3452
3453         * class.c (mono_class_create_generic): Set type_token as well.
3454
3455         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3456         compatible with MS.
3457
3458 2006-02-02  Martin Baulig  <martin@ximian.com>
3459
3460         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3461         has never been used so far.
3462
3463 2006-02-02  Martin Baulig  <martin@ximian.com>
3464
3465         * mono-debug-debugger.h: Changed comment at the top of this file;
3466         the header is not installed, but it's safe to #include it from
3467         within the JIT.
3468
3469         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3470         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3471
3472 2006-02-02  Martin Baulig  <martin@ximian.com>
3473
3474         * mono-debug.h
3475         (MonoSymbolTable): Removed the `metadata_info' field.
3476
3477         * mono-debug.c
3478         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3479
3480         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3481         (mono_debugger_add_builtin_types): Removed.
3482         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3483         (mono_debugger_create_notification_function): We now operate on a
3484         pre-allocated area; take a `gpointer' and return `void'.
3485
3486         * mono-debug-debugger.c
3487         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3488         (mono_debugger_add_builtin_types): Removed.
3489
3490 2006-02-02  Martin Baulig  <martin@ximian.com>
3491
3492         * threads.c (mono_debugger_create_all_threads): New public method.
3493
3494 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3495
3496         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3497         breaks on several platforms.
3498
3499 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3500
3501         * assembly.c: the VS.NET build doesn't supply default values for
3502         MONO_ASSEMBLIES and MONO_CFG_DIR.
3503
3504 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3505
3506         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3507         helper function.
3508
3509         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3510
3511         * loader.c (method_from_memberref): Fix a warning.
3512
3513         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3514
3515         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3516         with explicit layout. Fixes #77433.
3517
3518 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3519
3520         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3521         max_interface_id is initialized before using it. Fixes #77398.
3522         (ves_icall_Type_GetInterfaces): Ditto.
3523
3524 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3525
3526         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3527         allocate memory for parameter attributes when parsing memberref
3528         signatures.
3529         * loader.c (mono_loader_set_error_method_load): Don't warn.
3530         (method_from_memberref): Ensure MissingMethodException gets thrown
3531         if method is not found.  Make warning more informative.
3532
3533 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3534
3535         Fix #77397
3536         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3537         return true if is byref.
3538         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3539         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3540         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3541
3542 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3543
3544         Fix tests/find-method.2.il
3545         * loader.c (find_method, find_method_in_class): Remove is_inflated
3546         argument.  Revert 2006-01-18 change.
3547         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3548         is generic, search for method in its generic definition.
3549         * class.c (mono_class_setup_vtable_general): Print generic
3550         arguments of generic types in debugging printf.
3551
3552 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3553
3554         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3555
3556         * threads.c (mono_threads_request_thread_dump): New helper function.
3557
3558 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3559
3560         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3561
3562 2006-01-25  Ankit Jain  <jankit@novell.com>
3563
3564         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3565         move definition to ..
3566         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3567         
3568 2006-01-25  Ankit Jain  <jankit@novell.com>
3569             Raja R Harinath  <rharinath@novell.com>
3570
3571         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3572         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3573         as necessary.
3574
3575 2006-01-25  Martin Baulig  <martin@ximian.com>
3576
3577         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3578         `MonoDebuggerThread' into debug-debugger.c.
3579
3580 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3581
3582         * profiler.c: fix printing of data.
3583
3584 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3585
3586         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3587           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3588
3589 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3590
3591         * object.c: fix deadlock related to string interning.
3592
3593 2006-01-23  Martin Baulig  <martin@ximian.com>
3594
3595         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3596
3597         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3598
3599 2006-01-23  Martin Baulig  <martin@ximian.com>
3600
3601         * mono-debug.h: Moved the prototypes of some functions which are
3602         used by the JIT here from mono-debug-debugger.h.
3603
3604 2006-01-21  Martin Baulig  <martin@ximian.com>
3605
3606         * Makefile.am: Don't install mono-debug-debugger.h.
3607
3608 2006-01-21  Martin Baulig  <martin@ximian.com>
3609
3610         * mono-debug-debugger.h: Enforce the private status of this header
3611         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3612         Moved some stuff from mono-debugger-jit-wrapper.h here.
3613
3614 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3615
3616         * class.c (mono_class_from_typeref): Add a sanity test to help
3617         catch lack of assembly load/search hooks.
3618
3619 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3620
3621         * marshal.c (emit_struct_conv): Relax the fields with same offset
3622         check even more. Fixes #77230.
3623
3624 2006-01-18  Martin Baulig  <martin@ximian.com>
3625
3626         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3627         argument; if false, we compare the uninstantiated signatures.
3628         (method_from_memberref): Compare the uninstantiated signatures;
3629         fixes #76417.
3630
3631 2006-01-18  Robert Jordan  <robertj@gmx.net>
3632
3633         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3634         Clear the weak link. Fixes bug #77170.
3635
3636         * gc.c (mono_gchandle_free):
3637         Reflect *-gc.c changes (tiny optimization).
3638
3639 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3640
3641         * metadata.c (mono_metadata_signature_dup): Applied patch from
3642         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3643         Fixes #77288.
3644
3645 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3646
3647         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3648         marshalling from native to managed code. Fixes #77230.
3649
3650 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3651
3652         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3653         connect. Fixes bug #77020.
3654
3655 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3656
3657         * class.c: fixed id assignement for nested interfaces (bug #77275).
3658         Added also better info for --print-vtable debugging.
3659
3660 2006-01-12  Martin Baulig  <martin@ximian.com>
3661
3662         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3663         interfaces on-the-fly; fixes #76625.
3664
3665         * class-internals.h
3666         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3667         don't need that anymore.
3668
3669 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3670
3671         * socket-io.c
3672         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3673         To avoid initing the nested_classes when not needed I turned the
3674         PeerCredData as a toplevel internal class, as it has to be shared
3675         anyways. 
3676
3677         Fixes the CASA issue.
3678
3679 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3680
3681         * domain.c: Accessors for MonoJitInfo
3682
3683         * profiler-private.h: Add jitinfo to the end jit hook
3684
3685         * profiler.[ch]: Define new hooks, called after jitting which give
3686         the MonoJitInfo that was compiled
3687
3688 2006-01-10  Martin Baulig  <martin@ximian.com>
3689
3690         * class.c (mono_class_setup_events): Add support for generic
3691         classes; fixes #76440.
3692
3693 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3694
3695         Fix #77160.
3696         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3697         on passed-in method.
3698
3699 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3700
3701         * object.c (mono_runtime_invoke_array): Add Nullable support.
3702
3703         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3704
3705 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3706
3707         * file-io.c: Don't consider sockets as directory and avoid an endless
3708         loop. Fix bug #76966.
3709
3710 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3711
3712         * object.c (mono_nullable_init): New helper function.
3713         (mono_nullable_box): Ditto.
3714
3715         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3716
3717         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3718
3719         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3720         
3721 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3722
3723         * class.c (mono_class_is_assignable_from): Make T assignable to 
3724         Nullable<T>.
3725
3726 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3727
3728         * appdomain.c: Bump corlib version to 46.
3729         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3730         serialization purpose) and changed ves_icall_System_Reflection_
3731         Assembly_get_code_base signature to accept a boolean (to escape, or 
3732         not, the assembly code base).
3733
3734 2005-12-23  Dick Porter  <dick@ximian.com>
3735
3736         * icall.c: 
3737         * threads-types.h: 
3738         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3739         CreateEvent icall now returns "created" boolean parameter.
3740
3741 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3742
3743         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3744         #76967.
3745
3746         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3747         when attr_klass is an interface. Fixes #77045.
3748
3749 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3750
3751         * marshal.c (emit_struct_conv): Fix previous patch.
3752         
3753         * marshal.c (emit_struct_conv): Add a check for fields with the same
3754         offset.
3755
3756 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3757
3758         Fix regression in Mono.C5.
3759         * class.c (mono_class_create_generic): If 'klass' is an interface
3760         set up the interface offsets.
3761         (mono_class_is_assignable_from): Don't throw away generic arguments.
3762
3763 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3764
3765         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3766         type parameters.
3767
3768 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3769
3770         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3771         dead store.
3772         (do_mono_metadata_parse_generic_class): Don't pass the current
3773         generic context when parsing the type being instantiated: it
3774         cannot use it, anyway.
3775
3776         * loader.c (method_from_memberref): Don't inflate a signature if
3777         it doesn't contain any type parameters.
3778
3779 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3780
3781         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3782
3783 2005-12-14  Martin Baulig  <martin@ximian.com>
3784
3785         * class.c
3786         (mono_type_get_name_recurse): Don't return null for type
3787         parameters and open generic classes.
3788         (mono_class_setup_methods): Don't exclude generic instances.
3789         (mono_get_unique_iid): Use different IDs for different
3790         instantiations of the same generic type.
3791         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3792         open generic instances; create a normal vtable for closed generic
3793         instances.
3794         (mono_class_setup_vtable_general): We're now also called for
3795         closed generic instances.
3796
3797         * reflection.c
3798         (mono_reflection_bind_generic_parameters): Correctly use
3799         mono_metadata_lookup_generic_inst() everywhere.
3800
3801 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3802
3803         * object.c (mono_class_create_runtime_vtable): Call 
3804         mono_class_setup_vtable ().
3805
3806         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3807         function.
3808         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3809         #76959.
3810
3811         * loader.c (mono_loader_set_error_type_load): Print the type load
3812         warnings to the console so they are more visible to the user.
3813         (mono_loader_set_error_method_load): Ditto.
3814
3815         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3816         is still broken.
3817         
3818         * reflection.c (ensure_runtime_vtable): Fix build.
3819
3820         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3821         doesn't work in all cases.
3822
3823 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3824
3825         * object.c (mono_array_new_full): Treat a single dimensional array
3826         with 0 lower bounds as an szarray. Fixes #76973.
3827
3828         * reflection.c (custom_attr_visible): Really fix this.
3829
3830 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3831
3832         * reflection.c (custom_attr_visible): Allow nested public attributes
3833         as well.
3834
3835         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3836         interface check.
3837
3838 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3839
3840         * class.c (set_generic_param_owner): Delete.
3841         (mono_class_create_from_typedef): Don't set ->owner field of
3842         generic parameters to "param containers" of enclosing classes.
3843         * reflection.c (mono_reflection_initialize_generic_parameter):
3844         Likewise.
3845
3846 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3847
3848         * reflection.c (custom_attr_visible): Fix build.
3849
3850 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3851
3852         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3853         private attributes.
3854         
3855         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3856         handling of null parameter defaults.
3857
3858 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3859
3860         * class.c (mono_class_from_generic_parameter): Don't set
3861         klass->generic_container.
3862         (my_mono_class_from_generic_parameter): Likewise.
3863
3864 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3865
3866         * reflection.c (load_public_key): Fix a warning.
3867         (method_encode_code): Fix unaligned accesses.
3868
3869 2005-12-07  Martin Baulig  <martin@ximian.com>
3870
3871         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3872
3873         * reflection.c
3874         (write_generic_param_entry): Encode our custom attrs.
3875
3876         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3877
3878 2005-12-07  Martin Baulig  <martin@ximian.com>
3879
3880         * reflection.c (encode_new_constraint): Removed; we don't use the
3881         `NewConstraintAttribute' anymore.
3882
3883 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3884
3885         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3886         not fire a TypeResolve event when Assembly.GetType () is called.
3887
3888 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3889
3890         Beginning of support for nullable types in the runtime. Parts of
3891         this patch are from Martin.
3892
3893         * appdomain.c (MONO_CORLIB_VERSION): Bump
3894
3895         * domain.c (mono_init_internal): get the nullable type
3896
3897         * class.c (mono_class_is_nullable): New method
3898         (mono_class_get_nullable_param): New mehod
3899         (mono_class_create_generic): In types T? set cast_class to T
3900
3901         * class-internals.h (MonoDefaults): new nullable default class
3902         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3903         new methods.
3904
3905 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3906
3907         * metadata.c (select_container): New.  Refactor code to select the
3908         appropriate GenericContainer given the type of generic parameter
3909         we are looking for.
3910         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3911         not a MonoGenericContext.  Use select_container.  Update parameters.
3912         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3913         and MONO_TYPE_MVAR.
3914         (unwrap_arrays): Remove duplicate tests.
3915         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3916         generic instantiated class to find any arguments that are generic
3917         parameters.
3918         (mono_type_create_from_typespec_full): Use find_generic_param to
3919         avoid evicting some generic instantiations from the typespec
3920         cache.
3921
3922 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3923
3924         * reflection.c: fixed writing of doubles on ARM FPA.
3925
3926 2005-12-02  Robert Jordan  <robertj@gmx.net>
3927
3928         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3929
3930 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3931
3932         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3933         least on SUSE 10 they are not the same (on debian, they are just the
3934         same thing).
3935
3936 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3937
3938         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3939         DeclaringType for VARs and MVARs.
3940         * class.c (set_generic_param_owner): Fix initialization of owner
3941         fields.
3942
3943 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3944
3945         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3946
3947 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3948
3949         * threadpool.c: workaround for a bug that shows up on the Mac:
3950         select()+connect() on a blocking socket is not like it should
3951         be, so we proceed to connect() in that case, wasting the I/O
3952         threadpool thread until connect succeedes. Fixes bug #75436.
3953
3954 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3955
3956         * threadpool.c: fix typo when setting file descriptor states.
3957
3958 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3959
3960         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3961         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3962         create a temporary signature container.
3963         (mono_metadata_parse_generic_param): Update to changes.
3964         (mono_type_create_from_typespec_full): Update to changes.
3965         * loader.c (method_from_memberref): Don't use a
3966         MonoGenericContainer while parsing a memberref signature.
3967         (method_from_methodspec): Remove dead-store of the 'container'
3968         variable.  It's overwritten before use.
3969
3970         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3971         checks tighter.
3972         (mono_metadata_parse_generic_param): Likewise.
3973         * loader.c (find_method_in_class): Does not need a
3974         MonoGenericContainer.  Use 'mono_method_signature' rather than
3975         'mono_method_signature_full'.
3976         (find_method, mono_get_method_constrained, method_from_memberref):
3977         Update to changes.
3978
3979         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3980         owner-less generic-parameters are never evicted from the typespec
3981         cache.
3982
3983         * loader.c (method_from_memberref): Don't use the current context
3984         when parsing signatures.
3985         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3986
3987         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3988         side-effects in g_assert.
3989         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3990         that we don't potentially lose information.
3991
3992 2005-11-26  Dick Porter  <dick@ximian.com>
3993
3994         * icall.c:
3995         * threads.c: icalls to implement basic (ie, not named)
3996         System.Threading.Semaphore.
3997
3998 2005-11-24  Dick Porter  <dick@ximian.com>
3999
4000         * process.c
4001         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4002         Use GetProcessId() if it's available.
4003
4004 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
4005
4006         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
4007
4008 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4009             Ankit Jain  <jankit@novell.com>
4010
4011         * loader.c (mono_get_method_from_token): Initialize 'method' field
4012         of all generic parameters before parsing the signature.  Remove
4013         code that "fixed"-up MVAR references.
4014
4015 2005-11-23  Ankit Jain  <jankit@novell.com>
4016
4017         * metadata.c (mono_metadata_has_generic_params):
4018         (mono_metadata_load_generic_param_constraints):
4019         (mono_metadata_load_generic_params): Move duplicate code ...
4020         (mono_metadata_get_generic_param_row): ... here. Returns the
4021         first row-id in GenericParam table for a given owner (token).
4022         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
4023         prototype.
4024
4025 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4026             Ankit Jain  <jankit@novell.com>
4027
4028         * metadata.c (mono_metadata_class_equal): Pass signature_only when
4029         comparing VARs too.
4030         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
4031         type->data.generic_param only if the type is an MVAR.
4032         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
4033         leak owner-less VARs and MVARs into managed space.
4034
4035 2005-11-21  Martin Baulig  <martin@ximian.com>
4036
4037         * class-internals.h
4038         (MonoMethod): Moved the `generic_container' here from
4039         `MonoMethodNormal' since we now also need it for
4040         `MonoMethodPInvoke';
4041         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
4042         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
4043         an union containing both `MonoMethodNormal' and
4044         `MonoMethodPInvoke'.
4045
4046         * loader.c
4047         (mono_get_method_from_token): Allow implementing generic methods
4048         as interncalls.
4049
4050         * threads.c
4051         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
4052         icall.
4053
4054 2005-11-17  Dick Porter  <dick@ximian.com>
4055
4056         * icall.c: 
4057         * process.h: 
4058         * process.c: Split the Process Start_internal icall into
4059         ShellExecuteEx_internal and CreateProcess_internal, which are
4060         called depending on whether UseShellExecute is true.  Fixes bug
4061         76670.
4062
4063         * appdomain.c (MONO_CORLIB_VERSION): Incremented
4064
4065 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
4066
4067         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
4068         'msize' parameters, use the information in 'mspec' instead.
4069         (emit_object_to_ptr_conv): Ditto.
4070
4071         * marshal.c (emit_struct_conv): Handle explicit layout structs with
4072         fields out of order. Fixes #76733.
4073
4074 2005-11-17  Ankit Jain  <jankit@novell.com>
4075
4076         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
4077
4078 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
4079
4080         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
4081           bug #76575.
4082
4083 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4084
4085         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
4086         for types with non-auto layout. Fixes #76717.
4087
4088 2005-11-16  Ankit Jain  <jankit@novell.com>
4089
4090         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4091         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
4092         if generic_context is null.
4093           (mono_metadata_generic_param_equal): param->owner can be null.
4094           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4095         null.
4096
4097 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4098
4099         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4100         the correct value.
4101
4102 2005-11-15  Martin Baulig  <martin@ximian.com>
4103
4104         * object.c (set_value): Use mono_class_from_mono_type() instead of
4105         the hack for generic instances; fixes #76136.
4106
4107 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
4108
4109         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4110         fields.
4111
4112         * image.c (load_metadata_ptrs): Initialize the new fields.
4113
4114         * reflection.c (create_dynamic_mono_image): Ditto.
4115
4116         * reflection.c (build_compressed_metadata): Use the new fields.
4117
4118         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4119         icall.
4120
4121         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4122         icall.
4123         
4124 2005-11-15  Ankit Jain  <jankit@novell.com>
4125             Raja R Harinath  <harinath@gmail.com>
4126
4127         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4128         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4129         new per-generic_container cache if the cached MonoType's context matches
4130         the current context.
4131           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4132         to the expected context.
4133           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4134
4135 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4136
4137         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4138         we changed the signature of an icall.
4139         * icall.c: Modify to mono_double_ParseImpl return true/false 
4140         depending on the success, instead of throwing the exception. This will
4141         help us in Double.TryParse methods.
4142         
4143 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4144
4145         * marshal.c (emit_marshal_object): Throw an exception when
4146         marshalling 'object' instead of crashing. Fixes #76696.
4147
4148 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4149
4150         * class-internals.h: Add prototype for mono_type_get_full_name ().
4151
4152 2005-11-11  Dick Porter  <dick@ximian.com>
4153
4154         * threads.c (mono_thread_manage): Make sure the main thread has
4155         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4156
4157 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4158
4159         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4160         console about the missing type.
4161         (mono_loader_set_error_method_load): Ditto.
4162
4163 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4164
4165         * mono-config.c (mono_get_config_dir): Set the system defaults if
4166         none is specified.
4167
4168         * assembly.c (mono_set_dirs): New API entry point to set the
4169         assembly and the config directory in one call
4170
4171 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4172
4173         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4174         the ftnptr was created from a delegate in a domain other than the
4175         current domain. Fixes #75377.
4176
4177         * exception.h exception.c: Add mono_get_exception_not_supported ().
4178
4179 2005-11-08  Martin Baulig  <martin@ximian.com>
4180
4181         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4182
4183 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4184
4185         * security-manager.h: Added definitions to deal with strongname key 
4186         pairs bigger (and smaller) than 1024 bits.
4187         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4188         adjust wrt the public key length being used.
4189
4190 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4191
4192         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4193           Windows build (r51396-51397).
4194
4195 2005-11-03  Martin Baulig  <martin@ximian.com>
4196
4197         * class.c (mono_class_setup_vtable_general): Also add generic
4198         methods to the vtable; fixes #76581.
4199
4200 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4201
4202         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4203         sure that we lookup GetString method from the System.Text.Encoding
4204         class, not the derived class or we get an empty method.
4205
4206         Fixed class #76612.
4207
4208 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4209
4210         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4211         if it has been previously set (embedders). 
4212
4213         Make mono_set_rootdir available also on Unix.
4214
4215 005-10-24  Robert Jordan  <robertj@gmx.net>
4216
4217         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4218
4219 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4220
4221         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4222         only calls which are made to native code use this flag.
4223
4224         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4225
4226 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4227
4228         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4229         Add support for FieldBuilders.
4230
4231 2005-10-29  Martin Baulig  <martin@ximian.com>
4232
4233         * mono-debug.c
4234         (mono_debug_using_mono_debugger): New public method; returns
4235         whether we're running inside the debugger.
4236
4237 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4238
4239         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4240         for Method/Constructor/FieldBuilders.
4241
4242 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4243
4244         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4245         and fields as well.
4246
4247 2005-10-26  Martin Baulig  <martin@ximian.com>
4248
4249         * mono-debug-debugger.c
4250         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4251
4252 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4253
4254         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4255         integer to isspace.
4256
4257 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4258
4259         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4260         when passing valuetypes byref. Fixes #76502.
4261
4262 2005-10-19  Jackson Harper  <jackson@ximian.com>
4263
4264         * profiler.c: Don't put a . in front of types that are not in a
4265         namespace.
4266
4267 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4268
4269         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4270
4271 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4272
4273         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4274         #76436.
4275         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4276
4277 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4278
4279         * assembly.c metadata-internals.h icall.c: Define an additional
4280         parameter for mono_assembly_name_parse_full, so we can avoid creating
4281         S.R.AssemblyName.Version when no version info wasn't passed.
4282         
4283 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4284
4285         * class.c (mono_type_get_full_name): Reimplement method that was
4286         removed. 
4287
4288         * image.c: Some docs
4289
4290 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4291
4292         * profiler.c (output_newobj_profile): Fix printing of Total memory
4293         on x86.
4294
4295 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4296
4297         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4298
4299 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4300
4301         * threads.c: remove debug output.
4302
4303 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4304
4305         * threads.c (mono_thread_manage): Fix crashes if more than 64
4306         threads need to be aborted. Hopefully fixes #75899.
4307
4308         * assembly.c (mono_stringify_assembly_name): New helper function.
4309
4310         * class.c: Use mono_stringify_assembly_name instead of the similar
4311         static function.
4312
4313         * assembly.h assembly.c: Add support for calling a postload search 
4314         hook if an assembly cannot be loaded.
4315
4316         * appdomain.c: Register new search hooks which call the AssemblyResolve
4317         events in AppDomain. Fixes #75231
4318
4319 2005-10-07  Martin Baulig  <martin@ximian.com>
4320
4321         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4322         methods without debug info.
4323
4324 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4325
4326         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4327         wrappers.
4328
4329 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4330
4331         * file-io.c: now that we return symlinks, use lstat and, when the file
4332         is a symbolic link, stat, to get the file attributes. Also avoid the
4333         conversion to/from utf16/external.
4334
4335 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4336
4337         * class.c (mono_class_layout_fields): Compute klass->has_references
4338         correctly if an embedded valuetype is not yet initialized. Fixes
4339         #76331.
4340
4341 2005-10-04  Martin Baulig  <martin@ximian.com>
4342
4343         * metadata.c
4344         (mono_metadata_load_generic_param_constraints): New public
4345         function; splitted the constraints loading out from
4346         mono_metadata_load_generic_params().
4347
4348         * class.c (mono_class_create_from_typedef): Call
4349         mono_metadata_load_generic_param_constraints() after setting up
4350         the type and creating our parent; fixes #75329.
4351
4352 2005-10-04  Martin Baulig  <martin@ximian.com>
4353
4354         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4355         non-dynamic parent classes.
4356
4357 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4358
4359         * file-io.c : win32 build fix (ETXTBSY seems not found).
4360
4361 2005-10-04  Martin Baulig  <martin@ximian.com>
4362
4363         * reflection.c
4364         (mono_image_get_methodspec_token): Make the cache actually work;
4365         fixes #75974.
4366
4367 2005-10-04  Martin Baulig  <martin@ximian.com>
4368
4369         * class.c (mono_class_name_from_token): Removed the unneccessary
4370         `MonoGenericContext *' argument.
4371
4372 2005-10-04  Martin Baulig  <martin@ximian.com>
4373
4374         * loader.c
4375         (method_from_methodspec): Make the caching work again; fixes the
4376         performance regression from #76262.
4377
4378 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4379
4380         * file-io.c:
4381         * file-io.h:
4382         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4383         GetFileSystemEntries that performs the same work but without going
4384         into io-layer, locking, etc.
4385
4386 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4387
4388         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4389         ThreadState_Stopped as well. Fixes #76047.
4390
4391 2005-09-29  Martin Baulig  <martin@ximian.com>
4392
4393         * class.c
4394         (inflate_generic_context): If the new context has a `gmethod', set
4395         its `container' that that gmethod's `container'.
4396
4397         * metadata.c
4398         (mono_metadata_parse_generic_param): Simplify things;
4399         `generic_container = generic_context->container;' is just fine.
4400
4401         * loader.c (method_from_methodspec): Code cleanups.
4402
4403 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4404
4405         * decimal.c: fix warning (and let gcc generate correct
4406         code on ARM with optimizations).
4407
4408 2005-09-28  Martin Baulig  <martin@ximian.com>
4409
4410         * loader.c
4411         (method_from_memberref): Added `MonoGenericContext *class_context'
4412         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4413         (method_from_methodspec): If we're a memberref, use the enclosing
4414         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4415
4416 2005-09-28  Martin Baulig  <martin@ximian.com>
4417
4418         * object.c (mono_runtime_invoke_array): Added support for
4419         MONO_TYPE_GENERICINST; fixes #75917.
4420
4421 2005-09-27  Martin Baulig  <martin@ximian.com>
4422
4423         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4424         `k->byval_arg.type' to determine the actual type.
4425
4426         * loader.c (method_from_methodspec): Removed some hacks.
4427
4428 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4429
4430         * class-internals.h (mono_field_is_deleted): Do the test for
4431         rtspecialname before we check the actual name of the field. This
4432         prevents us from dereferencing a pointer into the string table,
4433         saving us from accessing a few pages
4434
4435         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4436         macros. This will allow a deadlock debugger to easily be plugged
4437         in.
4438
4439 2005-09-27  Martin Baulig  <martin@ximian.com>
4440
4441         * loader.c (method_from_methodspec): Create a "signature"
4442         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4443
4444 2005-09-27  Martin Baulig  <martin@ximian.com>
4445
4446         * class.c
4447         (inflate_generic_class): Correctly set the new context's
4448         container.
4449
4450         * loader.c
4451         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4452         instead of a `MonoGenericContext *'.
4453         (mono_method_signature_full): Take a `MonoGenericContainer *'
4454         instead of a `MonoGenericContext *'.
4455
4456         * metadata.c
4457         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4458         instead of a `MonoGenericContext *'.
4459         (mono_metadata_parse_method_signature_full): Likewise.
4460
4461 2005-09-26  Martin Baulig  <martin@ximian.com>
4462
4463         * class.c
4464         (mono_class_from_generic_parameter): Set `klass->generic_container'
4465         (mono_class_from_generic_parameter): Likewise.
4466         (mono_bounded_array_class_get): We inherit the generic container
4467         from the element class.
4468
4469         * loader.c
4470         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4471         argument rather than computing it here.
4472         (method_from_memberref): Correctly set the generic context before
4473         parsing the signature.  Fixes #75681.
4474
4475 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4476
4477         * object.c (mono_class_has_special_static_fields): Fix warnings.
4478
4479 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4480
4481         * assembly.c: Add parse_public_key function, to
4482         par the public keys. Also added mono_assembly_name_parse_full,
4483         to define it the parsed key should be freed or not.
4484         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4485         to parse a long format assembly name.
4486         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4487         private, since calling it to preserve the key requires
4488         freeing it manually.
4489         
4490 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4491
4492         * locales.c : removed HAVE_ICU part.
4493
4494 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4495
4496         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4497         field_is_special_static if the klass has no special static fields.
4498
4499         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4500         (MonoCachedClassInfo): Likewise.
4501
4502         * object.c (mono_class_has_special_static_fields): New helper function.
4503
4504 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4505
4506         * class.c (mono_class_create_from_typedef): Don't call 
4507         interfaces_from_typedef_full for enums.
4508         (mono_class_create_from_typedef): Compute the base types of enums directly
4509         without calling mono_class_setup_fields ().
4510         (mono_class_find_enum_basetype): New helper function.
4511
4512         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4513         one place inside the string heap.
4514         
4515 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4516
4517         * class.c: locking fixes, code cleanups, some docs added.
4518         Allocate some data structures in the image mempool.
4519
4520 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4521
4522         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4523         the example code.
4524         
4525 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4526
4527         * class-internals.h, class.c, reflection.c: reduce memory taken by
4528         MonoClass.
4529
4530 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4531
4532         * metadata.c, metadata.h, loader.h: documentation updates, code and
4533         API cleanups.
4534
4535 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4536
4537         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4538         the example code.
4539
4540         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4541         page faults caused by the runtime while reading metadata.
4542
4543 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4544
4545         * socket-io.c: the field names were changed 3 months ago and no one
4546         realized until bug #76077 got filed!
4547
4548 2005-09-20  Martin Baulig  <martin@ximian.com>
4549
4550         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4551
4552 2005-09-20  Martin Baulig  <martin@ximian.com>
4553
4554         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4555         write the rank into the class entry.
4556
4557 2005-09-20  Martin Baulig  <martin@ximian.com>
4558
4559         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4560
4561 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4562
4563         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4564
4565         * icall.c (custom_attrs_defined_internal): New icall.
4566
4567         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4568         function.
4569         (mono_custom_attrs_construct_by_type): New helper function.
4570
4571 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4572
4573         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4574         terminate the resulting string. Fixes #76123.
4575
4576 2005-09-16  Martin Baulig  <martin@ximian.com>
4577
4578         * mono-debug.c
4579         (mono_debug_add_method): Ignore inflated methods for the moment.
4580
4581 2005-09-14  Martin Baulig  <martin@ximian.com>
4582
4583         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4584
4585 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4586
4587         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4588         return a success/failure indication.
4589         (mono_metadata_interfaces_from_typedef_full): Ditto.
4590         (get_constraints): Ditto.
4591
4592 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4593
4594         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4595         
4596         * marshal.c (emit_marshal_array): Add support for returning string
4597         arrays from delegates. Fixes #76063.
4598
4599         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4600
4601 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4602
4603         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4604         icall.
4605
4606 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4607
4608         * reflection.c icall.c: Fix after mono_get_exception_type_load
4609         signature change.
4610
4611         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4612         (mono_assembly_load_reference): Use the new helper.
4613
4614         * class-internals.h (MonoLoaderError): New structure containing 
4615         information about type loading errors.
4616
4617         * class-internals.h loader.c: Add APIs to store per-thread loader
4618         error information.
4619
4620         * loader.c class.c: Set the loader error if needed.
4621
4622         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4623
4624 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4625
4626         * decimal.c: fixed to handle the broken ARM fp format.
4627
4628 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4629
4630         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4631         broken.
4632
4633 2005-09-06  Martin Baulig  <martin@ximian.com>
4634
4635         * domain.c (supported_runtimes): Added v2.0.50727.
4636
4637 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4638
4639         * culture-info.h: reduce the size of some structures.
4640
4641 2005-09-05  Martin Baulig  <martin@ximian.com>
4642
4643         Reflect latest API changes in the August CTP.
4644
4645         * icall.c
4646         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4647         ("MonoType.HasGenericArguments"): Removed.
4648         ("MonoMethod.BindGenericParameters"): Renamed to
4649         "MakeGenericMethod".
4650         ("MethodBuilder.BindGenericParameters"): Renamed to
4651         "MakeGenericMethod".    
4652
4653 2005-09-05  Martin Baulig  <martin@ximian.com>
4654
4655         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4656
4657 2005-09-05  Martin Baulig  <martin@ximian.com>
4658
4659         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4660
4661         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4662         generic_container is non-NULL.
4663
4664 2005-09-05  Martin Baulig  <martin@ximian.com>
4665
4666         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4667
4668         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4669
4670 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4671
4672         * reflection.c (encode_locals,
4673         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4674         for large generic types.
4675
4676 2005-09-05  Martin Baulig  <martin@ximian.com>
4677
4678         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4679
4680         * class.c (mono_dup_array_type): New public method.
4681         (mono_metadata_signature_deep_dup): New public method.
4682         (dup_type): Correctly duplicate array and function types.
4683
4684 2005-09-05  Martin Baulig  <martin@ximian.com>
4685
4686         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4687
4688         * reflection.c (get_default_param_value_blobs): Handle generic types
4689         and generic methods.
4690
4691 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4692
4693         * class.c: Fixed error reporting (method/class were inversed) for 
4694         inheritance demands.
4695         * security-manager.c|h: Added the AppDomain when calling the managed
4696         System.Security.SecurityManager.InheritanceDemand method.
4697
4698 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4699
4700         * reflection.c (encode_marshal_blob): 'marshaltype' and
4701         'marshaltyperef' are alternate sources for the custom marshaler
4702         name.
4703
4704 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4705
4706         * class.c: fix creation of array classes with rank == 1
4707         (patch by Ankit Jain <jankit@novell.com>).
4708
4709 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4710
4711         * object.c: fix check for creating the bound data for arrays vs
4712         szarrays.
4713
4714 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4715
4716         * object.c: configuration file name is now based on the executable name,
4717         not the image name. Fixes bug #75931.
4718
4719 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4720
4721         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4722         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4723
4724 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4725
4726         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4727
4728 2005-08-24  Ankit Jain  <jankit@novell.com>
4729             Raja R Harinath  <rharinath@novell.com>
4730
4731         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4732           called by it recursively.
4733           (mono_class_init): Remove special case in pending_init handling, since it's
4734           superseded by the fix to mono_class_from_typeref.
4735
4736 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4737
4738         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4739         BROKEN_THREAD_START stuff.
4740
4741 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4742
4743         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4744         trampoline.
4745
4746         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4747         
4748         * object.c (mono_delegate_ctor): Replace the original function address with
4749         a delegate trampoline.
4750
4751 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4752
4753         * icall.c: add boolean argument to base64_to_byte_array and 
4754         InternalFromBase64String to control whether a whitespace-only string
4755         is allowed (or should casue a FormatException to be thrown). We need
4756         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4757         to match the MS behaviour in both profiles.
4758         * appdomain.c: Bump corlib version.
4759
4760 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4761
4762         This patch implements a big portion of publisher policy
4763         support, used to bind assembly versions and redirect
4764         one assembly from version A to version B.
4765
4766         * assembly.c:
4767         New GSList loaded_assembly_bindings, for storing the cached
4768         assembly bindings.
4769         (assembly_binding_maps_name): New static function for checking if a 
4770         assembly binding information maps an assembly name.
4771         (mono_assembly_binding_info_free): New function for freeing
4772         assembly binding information resources.
4773         (get_publisher_policy_info): New static function for retrieving 
4774         assembly binding information from a MonoImage.
4775         (compare_versions): New static function for comparing an assembly
4776         binding information data and the version of an assembly name.
4777         (check_policy_versions): New static function for checking if an
4778         assembly binding info mapping an assembly name is valid for it.
4779         (mono_assembly_load_publisher_policy): New static function for
4780         loading the 'policy.major.minor.MyAssembly' image for an assembly
4781         with an assembly name 'aname'.
4782         (mono_assembly_bind_version): New static function for updating
4783         assembly redirection.
4784         (mono_assembly_apply_binding): New static function for applying
4785         assembly binding.
4786         (search_binding_loaded): New static function for searching 
4787         loaded assembly binding infos in the cache domain.
4788         (mono_assembly_load_full): Don't apply assembly binding for
4789         reflection only assemblies.
4790
4791         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4792         which contains information about assembly binding. Also
4793         declare signature for mono_config_parse_publisher_policy ()
4794         function, used to retrieve pub policy info.
4795         
4796         * mono-config.c:
4797         (publisher_policy_start): New static function used to parse publisher 
4798         policy config files.
4799         (publisher_policy_parser): New static MonoParseHandler containing 
4800         the functions used when parsing config files.
4801         (mono_config_parse_publisher_policy): New function for parsing
4802         publisher policy files.
4803         
4804 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4805
4806         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4807
4808         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4809
4810         * object.c (mono_get_addr_from_ftnptr): New helper function.
4811
4812         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4813
4814         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4815
4816 2005-08-19  Dick Porter  <dick@ximian.com>
4817
4818         * threads.c, threads.h, appdomain.c, appdomain.h,
4819         profiler-private.h, monitor.c, object.c, object-internals.h,
4820         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4821         store the thread ID, so it can hold a 64 bit value if needed.
4822
4823 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4824
4825         * reflection.c (mono_reflection_create_dynamic_method): Store the
4826         handle class into the method references as well so ldtoken works in
4827         dynamic methods.
4828
4829         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4830         types.
4831
4832 2005-08-19  Ankit Jain <jankit@novell.com>
4833
4834         Fix #75847.
4835         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4836           here rather than using the method signature of a arbitrary function
4837           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4838           two arguments.
4839           Hack done with Harinath.
4840
4841 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4842
4843         * threadpool.c: disable printing stack traces when we get a exception
4844         in a threadpool thread. I need to do more testing to figure out which
4845         cases actually print this. Fixes bug #75828.
4846
4847 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4848
4849         * icall.c: there might be ignored whitespace after the last '='. This
4850         fixes length computation and bug #75840.
4851
4852 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4853
4854         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4855         well. Fixes #75809.
4856
4857         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4858         #75784.
4859         
4860         * reflection.c (create_custom_attr_data): Ditto.
4861
4862 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4863
4864         * locales.c, culture-info.h : removed RegionLCIDMap.
4865         * culture-info-tables.h : regenerated.
4866
4867 2005-08-16  Martin Baulig  <martin@ximian.com>
4868
4869         * class.c (mono_type_get_name_recurse): Small fix.
4870
4871 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4872
4873         * locales.c : indentation fixie.
4874
4875 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4876
4877         * object-internals.h,
4878           locales.h,
4879           locales.c,
4880           culture-info.h,
4881           icall.c : added RegionInfo table support.
4882         * culture-info-table.h : regenerated for region support.
4883
4884 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4885
4886         * reflection.c (resolve_object): handle all kinds of MonoMethod
4887         including generic ones
4888
4889 2005-08-12  Ankit Jain <jankit@novell.com>
4890
4891         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4892           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4893
4894 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4895
4896         * process.c: Don't close a thread handle when it's NULL. This is a
4897         workaround for bug #75733.
4898
4899 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4900
4901         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4902
4903 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4904
4905         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4906
4907 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4908
4909         * threadpool.c: if a work item in the thread pool has a callback that
4910         catches a exception, don't propagate it after invoking the callback.
4911         Fixes bug #75336.
4912
4913 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4914
4915         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4916
4917         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4918
4919         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4920
4921         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4922
4923 2005-08-03  Ankit Jain  <jankit@novell.com>
4924
4925         Fix #75683.
4926         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4927           PInvoke calling convention is 0.
4928
4929 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4930
4931         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4932         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4933
4934 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4935
4936         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4937         to handle threads not started by the GC (patch by Michael Meeks
4938         <michael.meeks@novell.com>).
4939
4940 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4941
4942         * reflection.c: Make buffer used in emitting types larger for some
4943         big generic types (patch by Michal Moskal).
4944
4945 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4946
4947         * mono-debug.c: Fix some (not all) alignment problems.
4948
4949 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4950
4951         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4952         Invoke mono_image_load_from_data_full passing the refonly
4953         parameter.
4954
4955         * assembly.c
4956         (mono_assembly_open_from_bundle): Add the refonly argument, 
4957         in order to pass it to other methods it calls to.
4958         (do_mono_assembly_open): Add the refonly argument, in order 
4959         to pass it to other methods it calls to.
4960         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4961         the refonly parameter to it.
4962
4963         * image.c: Add loaded_images_refonly_hash and
4964         loaded_images_refonly_guid_hash to cache the reflection
4965         only loaded images.
4966         (mono_images_init): Initialize the hash tables used for
4967         caching the reflection only images.
4968         (load_modules): Invoke mono_image_open_full passing the refonly
4969         parameter to load the modules the correct way.
4970         (build_guid_table): Add the refonly argument, to re-build the 
4971         correct hash table.
4972         (do_mono_image_open): Added the refonly argument, in order to
4973         define it for the loaded image.
4974         (mono_image_loaded_full): New function, which receives an
4975         additional parameter to look for the image in the refonly or
4976         non-refonly section.
4977         (mono_image_loaded): Updated, using mono_image_loaded_full.
4978         (mono_image_loaded_by_guid_full): The same case that happens
4979         with mono_image_loaded_full.
4980         (mono_image_loaded_by_guid): Likewise.
4981         (register_image): Use the ref_only variable inside MonoImage
4982         to decide in which hash table store the current image.
4983         (mono_image_open_from_data_full): Rename
4984         mono_image_open_from_data to mono_image_open_from_data_full,
4985         adding the refonly argument, to define the ref_only variable 
4986         inside MonoImage.
4987         (mono_image_open_from_data): Return 
4988         mono_image_open_from_data_full.
4989         (mono_image_open_full): Rename mono_image_open to
4990         mono_image_open_full, receiving the new refonly argument,
4991         to pass it to inner methods.
4992         (mono_pe_file_open): Update this function, to open
4993         a MonoImage as a non-refonly image.
4994         (mono_image_close): Use the refonly variable inside
4995         MonoImage to remove the image from the correct caches.
4996
4997         * image.h: Add the signatures of mono_image_open_full,
4998         mono_image_open_from_data_full, mono_image_loaded_full,
4999         mono_image_loaded_by_guid_full.
5000
5001         * metadata-internals.h: Add the ref_only field to 
5002         MonoImage.
5003         
5004 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5005
5006         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
5007         Fix the last behavior, which used to load the assemblies and
5008         extract MonoReflectionAssemblyName information, instead of
5009         extract it from the metadata tables. Needed for Reflection
5010         Only assemblies.
5011         
5012 2005-07-29  Martin Baulig  <martin@ximian.com>
5013
5014         * mono-debug-debugger.c
5015         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
5016         not initialized.
5017
5018         * mono-debug.c
5019         (mono_debug_address_from_il_offset): Check whether we have
5020         debugging support before attempting to take the lock.
5021         (mono_debug_source_location_from_address): Likewise.
5022         (mono_debug_source_location_from_il_offset): Likewise.
5023         (mono_debug_il_offset_from_address): Likewise.
5024         (mono_debug_address_from_il_offset): Likewise.
5025
5026 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
5027
5028         * class.c (mono_class_from_name_case): Add support for dynamic images.
5029         Fixes #75650.
5030
5031         * object.c (mono_class_compute_gc_descriptor): Add a workaround
5032         for #75479.
5033
5034 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5035         
5036         * reflection.c (mono_method_get_object): Fix warning.
5037
5038 2005-07-28  Martin Baulig  <martin@ximian.com>
5039
5040         * mono-debug.c
5041         (mono_debug_add_wrapper): Also write the wrapper type.
5042
5043 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5044
5045         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
5046         
5047         * class.c (mono_class_init): Avoid reading nested classes if the AOT
5048         data indicates the class has none.
5049
5050 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
5051
5052         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
5053         loader lock with the debugger lock. Prevents deadlocks for beagle.
5054
5055         Beagle can now run on an smp box for a weekend without any
5056         issues. Woohoo!
5057
5058 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
5059
5060         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
5061         in a module. Fixes #75629.
5062
5063 2005-07-26  Martin Baulig  <martin@ximian.com>
5064
5065         * mono-debug.c (mono_debug_add_wrapper): New static method.
5066         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
5067         interncall or a wrapper.
5068
5069         * mono-debug.h (MonoDebugWrapperData): New public typedef.
5070         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
5071         (MONO_DEBUGGER_VERSION): Bump to 51.
5072
5073         * mono-debug-debugger.c
5074         (mono_debugger_add_type): Removed this empty function.
5075         (mono_debugger_add_method): Likewise.
5076
5077 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
5078
5079         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
5080         before accessing method->slot.
5081
5082 2005-07-21  Jb Evain  <jbevain@gmail.com>
5083
5084         * reflection.c (method_encode_clauses/class): Handle filters clauses.
5085         Fixes #75010.
5086
5087 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
5088
5089         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5090         #75587.
5091
5092 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
5093
5094         * image.h image.c: Add mono_image_get_guid () API function.
5095
5096 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
5097
5098         There were issues when multiple threads tried to load
5099         assemblies. A deadlock was created between assemblies_mutex and
5100         mono_domain_assemblies_lock. This fixes the issue by making the
5101         assembly ref counting be lock free. See bug 75586.
5102         
5103         * image.c (mono_image_close): The add ref function here was using
5104         Interlocked operations while the unref was using a mutex and a
5105         --. I don't think this was ever a bug that would be exposed in a
5106         non-pendantic way (ie, by an embedder doing a ref on one thread
5107         and an unref on another), but for the sake of correctness, this is
5108         now Interlocked.
5109
5110         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5111         (mono_assembly_load_reference): Call mono_assembly_addref rather
5112         than touching the refcount ourselves.
5113         (mono_assembly_close): Use InterlockedDecrement to unref the
5114         assembly. Don't acquire the lock unless it is actually needed.
5115
5116 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5117
5118         * class.c (mono_class_layout_fields): Fix calculation of has_references
5119         for generic types.
5120
5121 2005-07-12  Martin Baulig  <martin@ximian.com>
5122
5123         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5124
5125         * metadata.c
5126         (mono_type_hash): Provide better hashing for generic instances.
5127         (mono_generic_inst_hash): Improve hashing.
5128         (mono_generic_class_hash): Likewise.
5129
5130         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5131         generic instances.
5132
5133 2005-07-12  Martin Baulig  <martin@ximian.com>
5134
5135         * reflection.c (mono_reflection_create_runtime_class): Remove the
5136         hack for generic type definitions and non-`Run' assemblies.
5137         (mono_reflection_bind_generic_parameters): Also use
5138         `klass->wastypebuilder' to check for TypeBuilders.
5139
5140 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5141
5142         * class.c (mono_class_layout_fields): Fix calculation of has_references
5143         for generic types.
5144
5145         * class.c (inflate_generic_class): Fix a leak.
5146         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5147         for generic types.
5148
5149 2005-07-11  Martin Baulig  <martin@ximian.com>
5150
5151         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5152         on error.
5153
5154 2005-07-11  Martin Baulig  <martin@ximian.com>
5155
5156         * loader.c (find_method): Also lookup in
5157         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5158
5159 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5160
5161         * appdomain.c (mono_domain_unload): Don't free the error message
5162         before passing it to mono_get_exception_...
5163
5164         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5165         
5166 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5167
5168         * threads.c: try to better guess an available RT signal (bug #75387).
5169
5170 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5171
5172         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5173         and CACHE_OBJECT.
5174
5175 2005-07-07  Martin Baulig  <martin@ximian.com>
5176
5177         * class.c (mono_type_get_name_full): Return NULL for
5178         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5179         fixes #75408.
5180
5181 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5182
5183         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5184         exit the appdomain as well being aborted.
5185
5186         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5187         change back to the root domain after calling managed code. This enables
5188         appdomains using threadpools to be unloaded.
5189
5190 2005-07-07  Martin Baulig  <martin@ximian.com>
5191
5192         * class-internals.h
5193         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5194         into `MonoDynamicGenericClass' since we only need it for dynamic
5195         types.
5196
5197         * reflection.c (mono_class_bind_generic_parameters): We don't need
5198         to compute the `parent' here.
5199
5200 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5201
5202         * culture-info-table.h : regenerated.
5203
5204 2005-07-06  Martin Baulig  <martin@ximian.com>
5205
5206         * icall.c
5207         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5208
5209         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5210
5211 2005-07-06  Martin Baulig  <martin@ximian.com>
5212
5213         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5214         we're doing a signature-only comparision; fixes #74945.
5215
5216 2005-07-06  Martin Baulig  <martin@ximian.com>
5217
5218         * class-internals.h (MonoGenericClass): Moved some things out into
5219         a new `MonoInflatedGenericClass' type.  
5220         (MonoInflatedGenericClass): New type; the `klass' of a
5221         `MonoGenericClass' is now computed lazyly in
5222         mono_get_inflated_generic_class().      
5223
5224         * class.c (mono_get_inflated_generic_class): New public function.
5225         (mono_class_inflate_generic_method): Removed the unused
5226         `MonoClass *' argument.
5227         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5228         all the methods.
5229         (mono_class_create_generic): Make this static and merge it with
5230         mono_class_create_generic_2(); we're now called automatically from
5231         mono_get_inflated_generic_class().
5232
5233         * loader.c (mono_method_signature): Call
5234         mono_get_inflated_method() here.
5235
5236 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5237
5238         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5239         type of fields with RVA.
5240
5241         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5242         for this pseudo class.
5243         (my_mono_class_from_generic_parameter): Likewise.
5244         (mono_class_init): Allow interfaces to have cctors.
5245
5246 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5247
5248         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5249         lazily for AOT methods.
5250
5251 2005-07-05  Martin Baulig  <martin@ximian.com>
5252
5253         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5254         returns FALSE for a successful match, not TRUE.
5255
5256 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5257
5258         * loader.c (mono_method_get_index): Optimize this a bit.
5259
5260 2005-07-04  Martin Baulig  <martin@ximian.com>
5261
5262         * class.c
5263         (class_compute_field_layout): Move the check for generic type
5264         definitions into mono_class_layout_fields().  Fixes #74684.
5265         (mono_class_from_generic_parameter): Correctly compute
5266         `klass->parent'; fixes #75457.
5267
5268         * reflection.c (register_assembly, register_module): Make sure
5269         `domain->rejobject_hash' is already created.
5270
5271 2005-07-02  Martin Baulig  <martin@ximian.com>
5272
5273         * class-internals.h
5274         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5275         `MonoDynamicGenericClass'.      
5276
5277 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5278
5279         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5280         returned by a field getter is null, since null is a valid value.
5281
5282 2005-07-01  Martin Baulig  <martin@ximian.com>
5283
5284         * reflection.c (mono_reflection_generic_class_initialize): Update
5285         the `dgclass->fields [i].parent' to the correct class.
5286         (mono_image_get_fieldref_token): Use the declaring type, not the
5287         reflected type.
5288
5289 2005-07-01  Martin Baulig  <martin@ximian.com>
5290
5291         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5292
5293 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5294
5295         * threads.c (thread_cleanup): assert that thread != NULL
5296         (wait_for_tids_or_state_change): We were using the wrong variable
5297         when accessing wait->threads. `i' was always out of the bounds of
5298         the array.
5299
5300 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5301
5302         * loader.c: map user32 and kernel32 to libMonoSupportW
5303
5304 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5305
5306         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5307
5308 2005-06-28  Martin Baulig  <martin@ximian.com>
5309
5310         * loader.c (method_from_methodspec): Fix #75334.
5311
5312 2005-06-28  Martin Baulig  <martin@ximian.com>
5313
5314         Fix #74953 - Arrays now implement the generic IList<T> interface
5315         on the 2.0 platform.
5316
5317         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5318
5319         * reflection.c (mono_class_bind_generic_parameters): New public
5320         function; similar to mono_reflection_bind_generic_parameters(),
5321         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5322
5323         * domain.c (mono_init_internal): Try to initialize.
5324         `mono_defaults.generic_array_class' here; this'll only succeed if
5325         we're using the 2.0 corlib.
5326
5327         * icall.c
5328         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5329         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5330         (mono_lookup_internal_call): Added support for nested classes.
5331
5332         * loader.c
5333         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5334         we're an interncall and have generic arguments.
5335
5336         * class.c
5337         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5338         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5339         instance of System.Array.InternalArray<T> for arrays, so they
5340         implement the generic IList<T> interface.
5341
5342 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5343
5344         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5345         (chastamar@yahoo.com). Fixes #75374.    
5346
5347 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5348
5349         * culture-info-table.h: regenerated.
5350
5351 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5352
5353         * icall.c: handle spaces correctly for base64 strings.
5354
5355 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5356
5357         * *.c: Kill some warnings.
5358
5359 2005-06-23  Duncan Mak  <duncan@novell.com>
5360
5361         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5362         that this builds on Solaris 10 (x86).
5363
5364 2005-06-23  Martin Baulig  <martin@ximian.com>
5365
5366         * class.c
5367         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5368         generic type definitions.
5369
5370 2005-06-23  Martin Baulig  <martin@ximian.com>
5371
5372         Fix #75331.
5373
5374         * metadata.c (mono_class_get_overrides): Renamed to
5375         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5376         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5377         pass it to mono_get_method_full().
5378
5379 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5380
5381         * reflection.c (mono_reflection_create_runtime_class): take the
5382         mono_domain_lock in this method. Prevents deadlocks
5383
5384 2005-06-22  Martin Baulig  <martin@ximian.com>
5385
5386         * loader.c (method_from_methodspec): Fix #75330.
5387
5388 2005-06-22  Martin Baulig  <martin@ximian.com>
5389
5390         * reflection.c (type_get_qualified_name): Use
5391         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5392         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5393         argument; use it if we don't have an assembly name.
5394
5395 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5396
5397         * object.c: In mono_message_init, set "copy out" flag for in
5398         parameters with the [Out] flag.
5399
5400 2005-06-21  Martin Baulig  <martin@ximian.com>
5401
5402         * class.c
5403         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5404         and MONO_TYPE_PTR.
5405
5406 2005-06-21  Martin Baulig  <martin@ximian.com>
5407
5408         * class.c (mono_class_init): Don't initialize `class->fields' for
5409         generic instances since they're initialized again in
5410         compute_field_layout(). 
5411         (compute_field_layout): Set the field's `generic_info' here; fix
5412         #75320. 
5413
5414 2005-06-21  Martin Baulig  <martin@ximian.com>
5415
5416         * class-internals.h
5417         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5418
5419         * metadata.c (mono_metadata_generic_method_equal): Also
5420         distinguish the `generic_class'; fixes #75334.
5421
5422 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5423
5424         * domain.c:
5425         * appdomain.c:
5426         * domain-internals.h:
5427         * reflection.c: 'domain_assemblies' field is now protected by its own
5428         lock. Don't call into managed code to run the AssemblyLoad event if we
5429         now there are no registered delegates for it.
5430
5431 2005-06-20  Martin Baulig  <martin@ximian.com>
5432
5433         * class.c (mono_class_is_assignable_from): Use a custom version of
5434         mono_class_has_parent() to make things work for generic instances;
5435         fix #75300.
5436
5437 2005-06-20  Martin Baulig  <martin@ximian.com>
5438
5439         * loader.c (method_from_methodspec): Apply a patch from
5440         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5441
5442 2005-06-20  Martin Baulig  <martin@ximian.com>
5443
5444         * class.c (mono_class_init): Reverted Zoltan's last change; it
5445         breaks generics.
5446
5447 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5448
5449         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5450
5451 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5452
5453         * socket-io.c: fix the index in the socket array for writable/error
5454         sockets. Fixes bug #75306.
5455
5456 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5457
5458         * class.c (mono_class_init): Allow interfaces to have static ctors.
5459
5460 2005-06-17  Martin Baulig  <martin@ximian.com>
5461
5462         * loader.c (method_from_methodspec): Use `context->container' when
5463         parsing the `gmethod->inst'.
5464
5465 2005-06-17  Martin Baulig  <martin@ximian.com>
5466
5467         * class.c (mono_type_get_name_recurse): Don't add the assembly
5468         name for type arguments.
5469
5470 2005-06-15  Martin Baulig  <martin@ximian.com>
5471
5472         * reflection.c (mono_image_get_inflated_method_token): Encode
5473         correct klass; fixes #75260.
5474
5475 2005-06-13 Michal Moskal <malekith@nemerle.org>
5476
5477         * icall.c: Make GetCorrespondingMethod/Constructor take
5478         MonoReflectionMethod method not MonoMethod. Removed
5479         MonoType.GetCorrespondingField, and make
5480         MonoGenericType.GetCorrespondingField take name not
5481         MonoClassField.
5482
5483 2005-06-13  Michal Moskal <malekith@nemerle.org>
5484
5485         * reflection.c (field_encode_signature, encode_locals):
5486          Make sizes of buffers for types larger (for big generic types).
5487          (create_generic_typespec,
5488          mono_reflection_sighelper_get_signature_local,
5489          mono_reflection_sighelper_get_signature_field):
5490          Add asserts for too small buffers.
5491
5492 2005-06-15  Martin Baulig  <martin@ximian.com>
5493
5494         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5495         if our parent is not a dynamic type.
5496
5497 2005-06-15  Martin Baulig  <martin@ximian.com>
5498
5499         * class-internals.h (MonoTypeNameFormat): New enum.
5500
5501         * class.c
5502         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5503         (mono_type_get_full_name): Removed.
5504         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5505         argument instead of the boolean's.
5506
5507         * icall.c (ves_icall_System_MonoType_getFullName):
5508         Added `gboolean assembly_qualified'.    
5509
5510         * reflection.h
5511         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5512
5513         * reflection.c (mono_reflection_parse_type): Parse the new type
5514         name format.
5515
5516 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5517
5518         * icall.c: no need to convert from utf16 to utf8 and then back again
5519         after the call to GetLogicalDrives.
5520
5521 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5522
5523         * icall.c: frombase64. Fix problems exposed by new tests.
5524
5525 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5526
5527         * icall.c: added internal calls for converting char [] and strings in
5528         base64 into byte [].
5529
5530 2005-06-10  Martin Baulig  <martin@ximian.com>
5531
5532         * class.c (mono_class_create_generic_2): Read the nested classes
5533         from the metadata rather than from `gklass->nested_classes' since
5534         `gklass' might not be initialized yet.
5535
5536 2005-06-09  Duncan Mak  <duncan@novell.com>
5537
5538         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5539         all public headers. Fixes #74919.
5540
5541 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5542
5543         * domain.c: The key for proxy_vtable_hash is now a pointer
5544         array. Added new GHashFunc and GCompareFunc functions for this.
5545
5546         * class.h: The list of interfaces in MonoRemoteClass is known in
5547         advance and can't grow (we create a new MonoRemoteClass if needed),
5548         so now the interface array can be allocated together with
5549         MonoRemoteClass.
5550         
5551         * object.c: Added a new method create_remote_class_key.
5552         Fixed mono_remote_class so it does not depend on
5553         mono_upgrade_remote_class.
5554         Removed extend_interface_array.
5555         Added new method clone_remote_class(), which makes a copy of a remote
5556         class and adds a new interface or class to it.
5557         mono_upgrade_remote_class() now creates a new remote class (or gets
5558         it from the cache) if an vtable upgrade is needed. In this way
5559         we make sure that other objects sharing the same remote class
5560         don't get the new vtable with unwanted interfaces.
5561         
5562         * object-internals.h:
5563         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5564         
5565         * marshal.c: Track changes in mono_upgrade_remote_class().
5566
5567 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5568         * icall.c: Add runtime methods for obtaining members of inflated
5569         class, which were created from supplied non-inflated members. It
5570         is used in internal Get{Method,Constructor,Field} methods in
5571         System.Type
5572
5573 2005-06-09  Martin Baulig  <martin@ximian.com>
5574
5575         * reflection.c
5576         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5577
5578 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5579         * reflection.c (mono_image_basic_init): Define
5580         Version in MonoDynamicAssembly. 
5581         
5582 2005-06-08  Martin Baulig  <martin@ximian.com>
5583
5584         Fix #75136.
5585
5586         * loader.c
5587         (mono_method_signature_full): New public method; takes a
5588         `MonoGenericContext *'.
5589         (find_method): Use mono_method_signature_full() and pass the
5590         klass'es context to it.
5591
5592         * class.c (mono_class_is_inflated_method): Use
5593         mono_method_signature_full() and pass the context to it.
5594
5595 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5596
5597         * object.c: add proper locking in mono_remote_class_vtable(),
5598         fixes possible memory corruption.
5599
5600 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5601
5602         * marshal.c (mono_remoting_marshal_init): set
5603         initialized after initialization.
5604
5605 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5606
5607         * locales.c : hush.
5608
5609 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5610
5611         * object.c (extend_interface_array): fix really silly
5612         memory corrupting / comparison bug.
5613
5614 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5615
5616         * reflection.c: Functions added to support the creation
5617         of CustomAttributeData, which includes Attribute data
5618         used by ReflectionOnly methods.
5619
5620         * reflection.h:  mono_reflection_get_custom_attrs_data and
5621          mono_custom_attrs_data_construct added (functions exposed).
5622
5623          * icall.c: Added mono_reflection_get_custom_attrs_data
5624          as icall.
5625         
5626 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5627
5628         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5629         lupus's request.
5630
5631 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5632
5633         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5634
5635         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5636         dynamic DllImportAttribute.
5637
5638         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5639         dynamic DllImportAttribute.
5640
5641         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5642         Fixes #75162.
5643
5644 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5645
5646         * threads.c: avoid segfault when an unstarted thread is aborted.
5647
5648 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5649
5650         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5651         Returns the name and version of the runtime for reporting.
5652
5653 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5654
5655         * appdomain.c: bump corlib version.
5656         * object-internals.h: new field in MonoReflectionAssembly.
5657
5658 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5659
5660         * object-internals.h: Carlos forgot to add this field.
5661
5662 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5663
5664         * icall.c: Added create_version to create instances
5665         of Version of MonoReflectionAssemblyName. This change helps
5666         the AssemblyName tests to keep running fine.
5667         
5668 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5669   
5670         * object.c (mono_method_return_message_restore): A somehow less
5671         intrusive fix for #75138.
5672
5673 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5674
5675         * object.c (mono_method_return_message_restore): Fix computation
5676         of expected number of out args.
5677
5678 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5679
5680         * reflection.c (mono_image_get_method_info): Fix the case when the
5681         charset is empty.
5682
5683 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5684
5685         * object.c: Added missing null check in
5686           mono_method_return_message_restore.
5687
5688 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5689
5690         * reflection.c (mono_image_get_method_info): Handle the case when
5691         dllentry is empty.
5692
5693 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5694
5695         * object.c: When creating the vtable for a proxy, take into account
5696         all inherited interfaces, not only the ones registered in
5697         iclass->interfaces. This fixs bug #74996.
5698         Also, in mono_method_return_message_restore, verify that the array
5699         of out args has the expected lengh.
5700
5701 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5702
5703         * socket-io.c: update the timeout in Poll when the call is interrupte.
5704
5705 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5706
5707         * socket-io.c: support abort/suspend in Select_internal after last
5708         change.
5709
5710 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5711
5712         * threadpool.c: remove warning.
5713
5714 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5715
5716         * icall.c:
5717         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5718         removing the 1024 limit from select(). Runtime part of the fix for
5719         bug #71203.
5720
5721 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5722
5723         * socket-io.c: when resolving the addresses for the same
5724         host returned by gethostname(), get the local IPs from the interface
5725         list. Loopback addresses are discarded if the are interfaces up with
5726         non-loopback ones. Fixes bug #63265.
5727
5728 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5729
5730         * appdomain.c, verify.c, object-internals.h, reflection.c:
5731         bumped corlib number to 36, and added new extra_flags field
5732         to ReflectionMethodBuilder and friends.  Fixes #75060.
5733
5734 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5735
5736         * gc.c: register a new weak link only if the object is non-null
5737         (fixes bug#75047).
5738
5739 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5740
5741         * culture-info.h : short time pattern too.
5742
5743 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5744
5745         * culture-info.h : expand long time pattern string length.
5746
5747 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5748
5749         * culture-info-table.h : update (more French date format; #72788).
5750
5751 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5752
5753         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5754         the method is static. Fixes #75029.
5755
5756 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5757
5758         * reflection.c: Update the table_idx field of method builders after
5759         saving the module, since it can change. This is a workaround for
5760         bug #74914. 
5761
5762 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5763
5764         * culture-info-table.h : update (additional French date format).
5765
5766 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5767
5768         * icall.c (ves_icall_type_Equals): Revert last change.
5769         
5770         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5771
5772         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5773
5774 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5775
5776         * class-internals.h: Added executioncontext_class field to 
5777         MonoDefaults structure.
5778         * domain.c: Cache System.Threading.ExecutionContext class in 
5779         mono_defaults.
5780         * object.c: Capture the ExecutionContext for asynchroneous calls in
5781          mono_async_result_new.
5782         * object-internals.h: Added execution_context and original_context 
5783         fields to MonoAsyncResult. Added execution_context to MonoThread.
5784         * security-manager.c|.h: Added mono_get_context_capture_method to 
5785         return the capture method (if required by the security manager or by
5786         the framework version used).
5787         * threadpool.c: Apply capture (if present) ExecutionContext in 
5788         mono_async_invoke and revert to original context after it completes.
5789
5790 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5791
5792         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5793
5794 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5795
5796         * culture-info-table.h : zh-CHT related workaround.
5797
5798 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5799
5800         * marshal.c (emit_marshal_custom): Add some error checking and call the
5801         methods in the ICustomMarshaler interface. Fixes #74875.
5802         
5803         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5804         native->managed wrappers.
5805
5806 2005-05-12  Martin Baulig  <martin@ximian.com>
5807
5808         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5809         here and use the loader lock.
5810
5811         * mono-debug.c: Properly lock when the debugger is not attached.
5812         (mono_debug_init): Release the initial lock if we're not running
5813         in the debugger.
5814
5815 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5816
5817         * marshal.c (emit_marshal_custom): Pass through NULL values without
5818         calling the custom marshalling routines.
5819
5820         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5821         conversion in structures. Fixes #74882.
5822
5823 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5824
5825         * culture-info-table.h : zh-* cultures were missing.
5826
5827 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5828
5829         * threads.c: Added a new event background_change_event which is signaled
5830         when a thread changes its background mode.
5831         Moved here several checks previously done in managed code. The checks
5832         require the thread lock, and using the thread lock in managed code
5833         can result in deadlocks.
5834         Merged Start_internal and Thread_internal into a single method. Now 
5835         Thread_internal does all work of creating and starting a thread.
5836         Added icalls for setting and getting the state of the object. Moved from
5837         managed code to avoid locking there.
5838         Added wait_for_tids_or_state_change() which is called instad of
5839         wait_for_tids when waiting for non-backround threads to end. This method
5840         will return if one of the threads ends or the background_change_event
5841         is signaled.
5842         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5843         the background mode. This method signals the background_change_event
5844         event.
5845         * icall.c:
5846         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5847         removed Start_internal.
5848         
5849 2005-05-11  Martin Baulig  <martin@ximian.com>
5850
5851         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5852         to order of some fields to get proper alignment on 64-bit machines.
5853
5854 2005-05-11  Martin Baulig  <martin@ximian.com>
5855
5856         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5857         changes as they're broken and completely fuck up the debugger.
5858
5859         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5860
5861 2005-05-10  Martin Baulig  <martin@ximian.com>
5862
5863         * reflection.c (mono_reflection_generic_class_initialize): Don't
5864         call mono_class_setup_parent() here.
5865
5866 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5867
5868         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5869         send/receive timeout use an integer in milliseconds. We were using a
5870         struct timeval.
5871
5872 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5873
5874         * locales.c:
5875         (internal_get_cultures): reserve the first slot of the array for the
5876         InvariantCulture, which will be filled in managed code.
5877
5878 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5879
5880         * reflection.c (mono_image_fill_module_table): Initialize the
5881         GENERATION field as well.
5882
5883 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5884
5885         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5886         Monitor.Enter on the object.
5887
5888 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5889
5890         * threads.c: Enable the wait for running threads when exiting.
5891         * icall.c: Suspend all threads before exiting.
5892
5893 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5894
5895         * assembly.c (mono_assembly_load_reference): Fix warning.
5896
5897 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5898
5899         * threadpool.c: changed the default number of threads per cpu. From now
5900         on, the default will be 20 + (5 * number of cpus) instead of 50.
5901
5902 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5903
5904         * loader.c (mono_method_get_signature_full): Add locking here.
5905
5906 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5907
5908         * appdomain.c: Moved methods for parsing and freeing assembly
5909         names to assembly.c.
5910         * assembly.c, domain-internals.h: Created public methods for parsing
5911         assembly names. Fixed mono_assembly_load_with_partial_name:
5912         it now finds the best match, taking into account the version,
5913         token and culture specified in the partial name. Also return
5914         the latest version if no version information is specified.
5915
5916 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5917
5918         * threadpool.c: replace check for SocketAsyncCall class.
5919
5920 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5921
5922         * threadpool-internals.h:
5923         * Makefile.am: added threadpool-internals.h
5924
5925         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5926         that happen in threadpool threads (tested on MS).
5927         (mono_thread_pool_remove_socket): new function that dispatch any pending
5928         AIO call on a socket that is closing. By now only epoll really needs it,
5929         as select/poll wake up when the socket closes.
5930
5931
5932         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5933
5934 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5935
5936         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5937
5938 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5939
5940         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5941
5942 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5943
5944         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5945         has an abort request, convert it into a suspend request.
5946
5947 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5948
5949         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5950         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5951         is not supported yet.
5952
5953 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5954
5955         * image.c: register assemblies loaded from data (bundles) in the loaded
5956         assemblies hash. Fixes bug #74772.
5957
5958 2005-04-29  Martin Baulig  <martin@ximian.com>
5959
5960         * class.c (mono_type_get_name_recurse): Update to the new naming
5961         schema from the latest .NET 2.x beta2.
5962         (mono_class_setup_vtable_general): If we're a generic instance,
5963         copy the vtable from our generic type definition and inflate all
5964         the methods in it.
5965
5966         * loader.c (find_method): Update to the new naming schema from the
5967         latest .NET 2.x beta2.
5968
5969 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5970
5971         * class.c (mono_class_init): Add a mono_loader_unlock to the
5972         #74734 fix.
5973
5974 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5975
5976         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5977         suspend_all_other_threads () call for the time being, since it can hang.
5978
5979         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5980         the background threads to exit, since it can also hang.
5981
5982         * class.c (mono_class_init): Applied patch from Ankit Jain 
5983         (radical@gmail.com). Avoid pending init errors when a field refers
5984         to a nested class using a typeref. Fixes #74734.
5985
5986         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5987         this for dynamic modules.
5988
5989 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5990
5991         * threads.c: don't wait for threads that are in the process of aborting
5992         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5993         and waiting for background threads to finish. This makes xsp and
5994         mod-mono-server exit without random length delays and/or hangs.
5995
5996 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5997
5998         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5999
6000 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
6001
6002         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
6003         dynamic types to prevent infinite loops. Fixes #74727.
6004
6005         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
6006         ..._is_assignable_to.
6007
6008 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
6009
6010         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
6011
6012 2005-04-25  Martin Baulig  <martin@ximian.com>
6013
6014         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
6015
6016         * domain.c
6017         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
6018
6019         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
6020
6021         * reflection.c (build_compressed_metadata): Set metadata header
6022         version to 2.0.
6023
6024 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
6025
6026         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
6027         number into an integral and a decimal part. Fixes #70473.
6028
6029         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
6030
6031 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
6032
6033         * culture-info-table.h : reflected the latest locale-builder output.
6034
6035 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6036
6037         * threadpool.c: check for SuspendRequested too when deciding if
6038         mono_thread_interruption_checkpoint should be called.
6039
6040 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6041
6042         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
6043         * threads.c: remove interruption_mutex and use Interlocked instead. When
6044         suspending all the threads, wait for all the suspended events at once.
6045         If we're shutting down and get an APC that is going to be queued,
6046         call mono_thread_execute_interruption immediately, as the thread might
6047         be sleeping on a pthread condition or mutex.
6048
6049         * icall.c: call mono_runtime_set_shutting_down before suspending the
6050         threads.
6051
6052         Fixes bug #74693. And now xsp is happier when exiting.
6053
6054 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
6055
6056         * loader.c (mono_stack_walk): Fix #74690.
6057
6058 2005-04-22  Martin Baulig  <martin@ximian.com>
6059
6060         * mono-debug.h (MonoDebugMethodJitInfo): Added
6061         `MonoDebugMethodJitInfo *jit'.
6062
6063         * mono-debug.c (mono_debug_read_method): Cache the
6064         MonoDebugMethodJitInfo in `address->jit'.
6065         (mono_debug_free_method_jit_info): New public method.
6066
6067 2005-04-22  Martin Baulig  <martin@ximian.com>
6068
6069         * class.c (mono_class_is_assignable_from): Disallow
6070         type parameter -> interface.
6071
6072 2005-04-21  Dick Porter  <dick@ximian.com>
6073
6074         * threads.c (mono_thread_create): Turn an assertion into an error.
6075
6076 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
6077
6078         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
6079         
6080         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
6081         Fix some gcc 4.0 warnings.
6082
6083 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
6084
6085         * file-io.c: fix alt dir separator char on unix systems
6086         and cleanup (fixes bug #71214).
6087
6088 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
6089
6090         * marshal.c: Use CALLVIRT instead of CALL when dispatching
6091         a call to a remote domain, since the method may be an
6092         interface method in the client domain. This fixes bug #74192.
6093
6094 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6095
6096         * threadpool.c: recv/send are now performed before going back to managed
6097         code to save one transition.
6098
6099 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6100
6101         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6102
6103         * metadata/threadpool.c: removed hack to workaround the bug above.
6104
6105         Fixes bug #74618.
6106
6107 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
6108
6109         * reflection.c reflection.h: Fix handling of parameter defaults in
6110         dynamic methods. Also fixes handling of parameter attributes.
6111         Fixes #74609.
6112
6113         * mono-debug.c (mono_debug_close_image): Fix warning.
6114
6115 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6116
6117         * socket-io.h: replaced old unused field with new 'blocking'.
6118         * threadpool.c: restore socket blocking state on windows(tm).
6119
6120 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6121
6122         * icall.c: don't return the codebase in the AssemblyName[] returned by
6123         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6124         * object-internals.h: Removed FIXME (fields were presents) and fixed
6125         versioncompat declaration.
6126
6127 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6128
6129         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6130         not closed, so don't cleanup when it happens.
6131
6132 2005-04-13  Chris Toshok  <toshok@ximian.com>
6133
6134         * mono-debug-debugger.h: change prototype for
6135         mono_debugger_lookup_type.
6136
6137         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6138         this function, although it should probably be named
6139         mono_debugger_init_type.
6140
6141 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6142
6143         * threadpool.c: fix non-AIO case.
6144
6145 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6146
6147         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6148         the built-in profiler to measure just JIT compilation times.
6149
6150 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6151
6152         * threadpool.c: the epollfd might be closed by another thread at
6153         any time, so ignore EBADF at treat it as a "we're closing" sign.
6154
6155 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6156
6157         * threadpool.c: release the semaphores with a count equals to the number
6158         of working threads in both IO and regular pools. Fixed typo that messed
6159         up the count of IO pool threads. Don't initialize the pipe handles if
6160         we're using epoll.
6161
6162 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6163
6164         * threadpool.c: some systems don't like a NULL when deleting the socket
6165         from epoll.
6166
6167 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6168
6169         * threadpool.c: fix semaphore allocation.
6170
6171 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6172
6173         * threadpool.c: added epoll() based implementation for asynchronous IO
6174         that is used instead of the default poll() when available.
6175         It can be disabled by setting MONO_DISABLE_AIO.
6176
6177 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6178
6179         * threadpool.c: windows needs 'closesocket' and instead of returning
6180         0 when the stream is closed while in select, it returns -1. Fixes bug
6181         #74573.
6182
6183 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6184
6185         * class.c (class_compute_field_layout): Fix the regression caused by
6186         the previous try.
6187
6188 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6189
6190         * threadpool.c: separate pool for socket async. IO.
6191         * threadpool.h: mono_max_worker_threads is not a global any more.
6192
6193 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6194
6195         * class.c (class_compute_field_layout): Fix #74549.
6196
6197 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6198
6199         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6200         use 2 connected sockets instead.
6201
6202 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6203
6204         * mono-config.c: Add new entry point for mkbundle
6205         mono_config_parse_memory. 
6206
6207 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6208
6209         * threadpool.c: removed another unused function.
6210
6211 2005-04-08  Ankit Jain  <radical@corewars.org>
6212
6213         * reflection.c (get_default_param_value_blobs): Add 'types'
6214         parameter to get the types encoded in the constant table.
6215         (mono_param_get_objects): Use the type from the constant table,
6216         not the type of the parameter, when creating default values.
6217         Handle null default values correctly.
6218
6219 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6220
6221         * file-io.c:
6222         * file-io.h:
6223         * threadpool.c:
6224         * threadpool.h:
6225         * icall.c:
6226         * socket-io.c: removed dead code for async IO.
6227
6228 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6229
6230         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6231
6232         * threadpool.c: intercept socket async. calls and pass them to a thread
6233         that is polling and dispatching the job items to the threadpool as
6234         socket become ready. Fixes bugs #71217, #71933.
6235
6236         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6237         between char and short/ushort arrays.
6238
6239         * socket-io.c: remove dead code.
6240
6241 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6242
6243         * locales.c,
6244           icall.c : removed InternalToUpper_Comp() and
6245           InternalToLower_Comp().
6246
6247 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6248
6249         * char-conversions.h : The tables were incorrectly generated. Should
6250           be generated against invariant culture.
6251
6252 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6253
6254         * object.c (mono_runtime_invoke_array): Fix return value when 
6255         passing pre-created valuetype objects to ctors.
6256
6257         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6258         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6259         Fixes #74338.
6260
6261 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6262
6263         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6264         only used with --security and hides the wrong corlib version error.
6265
6266 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6267
6268         * class.c: Changed mono_class_name_from_token so that types
6269         outside of a namespace don't have an initial period.  Improved
6270         the g_warning message used in _mono_class_get when loading
6271         fails.
6272         * assembly.c: In mono_assembly_load_reference, when an assembly
6273         can't be found, "No such file or directory" is misleading and
6274         unhelpful because a few paths were checked for the presence of
6275         the assembly.  When that happens (ENOENT), display a nicer
6276         message indicating the directories that were searched.  In all
6277         cases, the warning is made easier to read for non-hackers.
6278
6279 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6280
6281         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6282         project/solution.
6283         * appdomain.h|domain.c: Removed inline from functions.
6284         * appdomain.c: Reduced warnings when compiling on windows.
6285         * icall.c: Fixed output_debug declaration to gunichar2*.
6286         * mono-config.c: Reduced warnings when compiling on windows.
6287         * rand.c: Added missing "windows.h". Added missing return value.
6288         * rawbuffer.c: Added missing winsock2.h for windows.
6289         * sysmath.h: Added mono-compiler.h header to allow/ease 
6290         compilation with non-GCC compilers.
6291         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6292         Removed cast warnings.
6293
6294         Adapted from the work of J Lothian (for VC6).
6295
6296 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6297
6298         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6299         from default_path.
6300
6301 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6302
6303         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6304         the 2.0 profile.
6305
6306 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6307
6308         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6309         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6310         stuff, and it would probably use $(prefix)/share rather than
6311         $(prefix)/lib.
6312
6313 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6314
6315         * console-io.c: added 2 includes that might be missing.
6316
6317 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6318
6319         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6320         profile.
6321
6322         * reflection.c (create_custom_attr): Allocate the params array using
6323         alloca so it gets GC tracking.
6324
6325 2005-03-23  Chris Toshok  <toshok@ximian.com>
6326
6327         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6328         out some spew.
6329
6330 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6331
6332         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6333         changes to pick up any changes in prefix, etc.
6334
6335 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6336
6337         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6338         
6339         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6340         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6341
6342 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6343
6344         * class-internals.h object-internals.h class.c reflection.c: Extend the
6345         mono_lookup_dynamic_token () function to return the class of the
6346         token as well. 
6347
6348         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6349         well. Fixes #73848.
6350
6351 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6352
6353         * security-manager.c: Skip inheritance checks for intra-corlib
6354         class inheritance and method overrides. This skips a lot of checks
6355         and (anyway) permissions cannot work until corlib is loaded.
6356
6357 2005-03-23  Martin Baulig  <martin@ximian.com>
6358
6359         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6360         MONO_TYPE_GENERICINST.  
6361
6362 2005-03-23  Martin Baulig  <martin@ximian.com>
6363
6364         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6365
6366 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6367
6368         * class.c: added locking comments to some functions.
6369         Cache the interface offsets arrays (saves about 20 KB
6370         of runtime memory in a typical app).
6371         Reduce the time overhead in mono_class_setup_supertypes ().
6372
6373 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6374
6375         * icall.c: speedup and fix leaks in GetMethodsByName and
6376         GetPropertiesByName.
6377
6378 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6379
6380         * reflection.c: some locking fixes.
6381
6382 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6383
6384         * metadata.c: added missing break in case statement.
6385
6386 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6387
6388         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6389         typedbyref return values. Fixes #73941.
6390
6391 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6392
6393         * security-manager.c|h: Added demandunmanaged method and 
6394         suppressunmanagedcodesecurity class to MonoSecurityManager.
6395         Renamed aptc class to allowpartiallytrustedcallers.
6396
6397 2005-03-17  Martin Baulig  <martin@ximian.com>
6398
6399         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6400
6401 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6402
6403         * file-io.c: disabled file async. IO using aio_*. It uses the
6404         threadpool now. Workaround for bug #73718.
6405
6406 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6407
6408         * assembly.h, mono-config.c: added code to deal with bundled configs
6409         for bundled assemblies.
6410
6411 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6412
6413         * *.c, private.h: cleanup, removing old private.h header file.
6414
6415 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6416
6417         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6418         and throw_on_unmappable_char attributes.
6419
6420 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6421
6422         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6423         _ProcessName_internal.
6424
6425 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6426
6427         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6428         #73631.
6429
6430         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6431         are no longer used.
6432
6433 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6434
6435         * object.c (compute_class_bitmap): Add support for generics. Fixes
6436         #73527.
6437
6438 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6439
6440         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6441
6442 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6443
6444         * filewatcher.c: commented out the code for windows watcher, as we don't
6445         use it (we use the managed implementation instead).
6446
6447 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6448
6449         * object-internals.h (MonoThread): Remove 'unused1' field.
6450
6451         * appdomain.c: Bump corlib version.
6452
6453         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6454
6455         * reflection.c (mono_reflection_create_runtime_class): Remove the
6456         AssemblyBuilder.Save optimization since it causes too many problems.
6457
6458 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6459
6460         * exception.c|h: Added mono_get_exception_reflection_type_load to
6461         create a ReflectionTypeLoadException object.
6462         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6463         to return NULL is a InheritanceDemand fails during reflection. Updated
6464         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6465         ReflectionTypeLoadException if an InheritanceDemand fails during 
6466         reflection. Added icall mapping for GetLinkDemandSecurity.
6467         * security-manager.c|h: Added ves_icall_System_Security_
6468         SecurityManager_GetLinkDemandSecurity internal call to return the
6469         class and methods permissions set for a LinkDemand. Removed unused
6470         fields in MonoSecurityManager.
6471
6472 2005-03-10  Martin Baulig  <martin@ximian.com>
6473
6474         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6475         it's a generic instance.
6476
6477 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6478
6479         * reflection.c (mono_get_object_from_blob): Applied patch from
6480         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6481
6482         * class.c (mono_class_is_assignable_from): Another try at fixing 
6483         #73469 without breaking anything.
6484
6485 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6486
6487         * class.c: (mono_class_is_assignable_from): Revert the last changes
6488         since they don't work with generics.
6489         
6490         * class.c (mono_class_is_assignable_from): Fix build bustage.
6491
6492         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6493         the managed IsAssignableFrom method. Fixes #73469.
6494
6495         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6496         function.
6497
6498 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6499
6500         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6501         memory when the remoting callback does not sets the out arguments.
6502         Fixes #73007.
6503
6504         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6505         by mistake.
6506
6507         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6508
6509         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6510
6511         * appdomain.c: Bump corlib version.
6512
6513 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6514
6515         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6516         function.
6517
6518         * threads.c (mono_thread_attach): Detect threads which are not started
6519         by the GC pthread wrappers.
6520
6521 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6522
6523         * icall.c: Added new icall for RNG.
6524         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6525         single handle on Linux to access /dev/urandom and fix #73183.
6526
6527 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6528
6529         * object.c: setting the new vtable in a transparent proxy object must
6530         not change the GC descriptor.
6531
6532 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6533
6534         * object.c: fixed compilation without GCJ support.
6535         * reflection.c: for runtime-created types ensure klass->has_references
6536         is correct (bug #73215).
6537
6538 2005-03-02  Martin Baulig  <martin@ximian.com>
6539
6540         * class.c (mono_class_is_assignable_from): Make this work if
6541         `oklass' is a generic instance; fixes #72831.
6542
6543 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6544
6545         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6546         with hasthis set.
6547         
6548         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6549
6550         * marshal.c: Reorganize native->managed marshalling code to also use
6551         the emit_marshal_... functions.
6552
6553 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6554
6555         * object.c: typed allocs have issues with bitmap sizes > 30,
6556         so check for max_set >= 30.
6557
6558 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6559
6560         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6561         managed code. Fixes #73012.
6562
6563         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6564
6565         * metadata.c reflection.c: Load/Emit elem_mult as well.
6566         
6567         * metadata.h (MonoMarshalSpec): Add comment.
6568
6569         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6570
6571         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6572         num_elem to -1 if not given.
6573
6574         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6575
6576         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6577         given values.
6578
6579 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6580
6581         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6582
6583 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6584
6585         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6586
6587         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6588
6589 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6590
6591         * object.c: generalized the reference bitmap creation
6592         and added hooks for the new GC.
6593         * class-internals.c: removed the gc_bitmap field from MonoClass.
6594
6595 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6596
6597         * domain.c: help the compiler to produce better code
6598         in mono_jit_info_table_find ().
6599
6600 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6601
6602         * object.c: make all allocations look typed.
6603
6604 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6605
6606         * socket-io.c: load Mono.Posix if it's not loaded already
6607         (fixes bug#73033).
6608
6609 2005-02-24  Martin Baulig  <martin@ximian.com>
6610
6611         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6612         * reflection.c (dup_type): Likewise.
6613
6614 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6615
6616         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6617         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6618
6619 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6620
6621         * domain.c, threads.c, object-internals.h: make the critical thread
6622         local vars use the fast access mode (even when we're compiled in
6623         a lib). Provide accessors to be used by the jit during codegen.
6624
6625 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6626
6627         * appdomain.c: Changed hook functios behavior to include
6628         support for the reflection only assemblies. Some icalls were changed
6629         to support the mentioned assemblies too. Signatures of static methods
6630         try_assembly_resolve and real_load now have an additional parameter:
6631         refonly.
6632
6633         * assembly.c: General changes to mono_assembly_ methods to support
6634         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6635         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6636         suffix, to support an additional gbool parameter to specify whether
6637         the assembli is reflection only or not. Created some new hook functions 
6638         to add support for reflection only assemblies. Signatures of static 
6639         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6640         have now an additional parameter: refonly.
6641
6642         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6643         indicating whether the assembly is reflection only or not.
6644
6645         * exception.c: Add mono_get_exception_invalid_operation.
6646
6647         * icall.c: Throw an InvalidOperationException when trying to invoke
6648         a property/method/event, or trying to set/get the value of a field.
6649         Also add an icall to retrieve the ref_only flag to the
6650         MonoReflectionAssembly.
6651
6652 2005-02-23  Chris Toshok  <toshok@ximian.com>
6653
6654         Part of fix for #72827.
6655         * mono-debug.c (mono_debug_add_method): add lexical block data to
6656         the info we write.  Kind of a hack at the moment - we copy the
6657         lexical block info from the MonoDebugMethodInfo to the
6658         MonoDebugMethodJitInfo here, before writing it.
6659         (mono_debug_read_method): read the lexical block info.
6660
6661         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6662
6663         * debug-mono-symfile.h: add lexical block support.
6664
6665         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6666         support.
6667
6668 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6669
6670         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6671
6672         * object.c (mono_runtime_free_method): Call mono_free_method () and
6673         put the TODOs there.
6674
6675         * loader.c (mono_free_method): Free up most memory allocated for 
6676         dynamic methods.
6677
6678 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6679
6680         * reflection.c: properly flag a Type argument to a
6681         named custom attr value (bug #72248).
6682
6683 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6684
6685         * reflection.c: reduce code duplication in named custom
6686         attribute encoding.
6687
6688 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6689
6690         * reflection.c: properly encode custom attrs of type object
6691         (bug #72649).
6692
6693 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6694
6695         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6696
6697 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6698
6699         * socket-io.c: load System.dll if it's not loaded already
6700         (bug #72850 and #70477).
6701
6702 2005-02-21  Martin Baulig  <martin@ximian.com>
6703
6704         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6705         generic instances.
6706
6707 2005-02-21  Martin Baulig  <martin@ximian.com>
6708
6709         * reflection.c (mono_image_build_metadata): We also need to
6710         "fixup" the MethodImpl table after we computed the final method
6711         indices.  Call fixup_methodimpl() to do that.
6712         (fixup_methodimpl): New private method.
6713
6714 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6715
6716         * assembly.c: special case mscorlib.dll (bug#72536),
6717         patch from Carlos Alberto Cortez.
6718
6719 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6720
6721         * threads-types.h threads.c: Fix build bustage.
6722
6723         * threads.c: Use a union for long<->double conversions.
6724
6725         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6726         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6727
6728         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6729         containing the checkpoint call with NOT_TAKEN.
6730         
6731         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6732         checkpoint before pushing the arguments, so they won't have to be
6733         spilled to stack.
6734
6735 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6736
6737         * domain.c, assembly.c, domain-internals.h: make some data
6738         const and relocation-free.
6739
6740 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6741
6742         * object.c, appdomain.c, class-internals.h: introduce the
6743         MonoClassRuntimeInfo structure to hold the info needed to
6744         use a class at runtime. Made mono_class_vtable() lock-free
6745         for all the appdomains.
6746
6747 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6748
6749         * metadata-internals.h, image.c: introduce a per-image mempool to
6750         be used for memory that has the same lifetime as the image.
6751
6752 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6753
6754         * domain.c: In mono_init_internal(), instead of selecting the first
6755         runtime version supported by an executable, get a list of all
6756         supported versions and select the one for which an mscorlib exists
6757         (since even if the runtime supports a given version, it doesn't mean
6758         that the framework for that version is installed).
6759         Modified get_runtimes_from_exe to support this behavior.
6760         In supported_runtimes, added information about additional system
6761         assembly versions.
6762         
6763         * assembly.c: Added support for more than one system assembly version
6764         per runtime version. Updated the assembly list.
6765         In mono_assembly_remap_version, removed the initial version check,
6766         since we don't know to which version we need to compare until we
6767         get the version set on which the assembly is based.
6768         Moved the code for loading corlib into the new method
6769         mono_assembly_load_corlib(), so it can be used by the initialization
6770         code.
6771         
6772         * domain-internals.h: Updated data structures and added declaration
6773         for mono_assembly_load_corlib.
6774
6775 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6776
6777         * reflection.c (resolve_object): Fix the creation of the signature in 
6778         the SignatureHelper case.
6779
6780         * assembly.c (mono_assembly_remap_version): Fix binary search.
6781         
6782 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6783  
6784         * class.c: Added inheritance check when a method is overloaded (from a
6785         virtual method or when implementing an interface) and when a class is
6786         inherited. Added functions to set a failure for a class and to 
6787         retreive the exception from a failure.
6788         * class-internals.h: Added fields to MonoClass to keep the exception
6789         information status for inheritance (or other exceptions) to be thrown
6790         later (i.e. not at load time).
6791         * object.c: Throw the inheritance SecurityException when a type is to 
6792         be created with either class or method inheritance violations.
6793         * reflection.c|h: Fix when getting declsec from a class. Removed 
6794         unrequired code for class. Improved sanity in parameter naming.
6795         * security-manager.c|h: Added functions to check for class and method
6796         inheritance.
6797
6798 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6799
6800         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6801         and has_finalize in dynamic types as well.
6802
6803 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6804
6805         * culture-info-table.h : fixed currency format for en-GB (and so on).
6806
6807 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6808
6809         * gc.c: ensure the GC handles never have 0 as a value.
6810
6811 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6812
6813         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6814         a pointer to a struct to unmanaged code. Fixes #72625.
6815
6816 2005-02-16  Martin Baulig  <martin@ximian.com>
6817
6818         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6819
6820 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6821
6822         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6823
6824 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6825
6826         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6827
6828         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6829         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6830         etc. Fixes #71471.
6831
6832         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6833
6834         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6835
6836 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6837
6838         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6839         changes to make the current context a field in MonoThread.
6840
6841 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6842
6843         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6844         the last change.
6845         
6846         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6847         extracted from mono_marshal_get_native_wrapper.
6848
6849         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6850         to create wrappers around native functions.
6851
6852         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6853         delegates for arbitrary function pointers. Fixes #71472.
6854
6855 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6856
6857         * threads.c: cleaned up the code a little.
6858
6859 2005-02-15  Martin Baulig  <martin@ximian.com>
6860
6861         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6862         the data table.
6863
6864         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6865         allocate larger chunks if needed.
6866
6867 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6868
6869         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6870         in by mistake.
6871
6872 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6873
6874         * domain.c: keep the domains in an array and ensure the domain ids
6875         are kept small, so they can be used as indexes to domain-specific data
6876         with a small memory overhead.
6877
6878 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6879
6880         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6881
6882 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6883
6884         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6885
6886 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6887
6888         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6889
6890         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6891         values.
6892
6893         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6894         
6895 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6896
6897         * domain-internals.h: add the hashtable here.
6898
6899         * class-internals.h: Remove `info' from MonoMethod
6900
6901         * domain.c: Add a new hashtable, jit_trampoline_hash
6902
6903 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6904
6905         * object.c: don't set the value of static fields
6906         (fixes bug#72494).
6907
6908 2005-02-11  Martin Baulig  <martin@ximian.com>
6909
6910         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6911         (mono_debug_add_method): Silently ignore the method if it's too big.
6912         (mono_debug_add_type): Likewise.
6913
6914 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6915
6916         * threads.c, appdomain.c: remove #ifdefs from the code.
6917
6918 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6919
6920         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6921         common security informations. This allows us to stay in unmanaged code
6922         when doing LinkDemand and it's special cases (except for the first 
6923         time for initialization). The flags a very much used with --security.
6924         * reflection.c|h: Added code to get declarative security attributes 
6925         for LinkDemand and InheritanceDemand. This required to refactor the
6926         existing code for Demand.
6927         * security-manager.c|h: Added new method fields for the special cases
6928         of LinkDemand.
6929
6930 2005-02-10  Martin Baulig  <martin@ximian.com>
6931
6932         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6933         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6934
6935 2005-02-10  Martin Baulig  <martin@ximian.com>
6936
6937         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6938         debugging code; this is almost a complete rewrite.
6939
6940         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6941
6942 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6943
6944         * domain.c, object.h: expose mono_string_equal () and 
6945         mono_string_hash ().
6946         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6947         it's implemented in managed code.
6948
6949 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6950
6951         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6952         lo leak objects between appdomains.
6953
6954 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6955
6956         * assembly.c: old compilers compilation fix from 
6957         robertj@gmx.net (Robert Jordan).
6958
6959 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6960
6961         * class-internals.h: Little reminder for the future.
6962
6963         * debug-helpers.c: Fix up wrapper_type_names
6964
6965 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6966
6967         * image.c, metadata-internals.h: when loading an image from a file,
6968         mmap all of it and use the same codepaths as when using a
6969         in-memory image: the code is simpler and we use less memory
6970         (both writable and readonly).
6971
6972 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6973
6974         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6975         API to alloc runtime data structures that need to be tracked by the
6976         GC and contain pointers.
6977         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6978         make the code more readable and eventually use a different GC.
6979
6980 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6981
6982         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6983         for out arguments.
6984         
6985 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6986
6987         * object.c: In release_type_locks(), don't release the cctor lock
6988         if it has already been released. This fixes a crash in the
6989         thread5 test.
6990
6991 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6992
6993         * gc.c, marshal.c, icall.c: register a delegate for finalization
6994         only when the native function pointer has been allocated for it.
6995
6996 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6997
6998         * object.c: cleaned up some code, allocate objects that are
6999         pointer free with the atomic malloc variant. Allocate memory
7000         for static data from the mempool if it's pointer-free.
7001         Allocate the bounds array at the end of the array data, when needed.
7002         * object-internals.h, object.h: move a private function in a private
7003         header.
7004         * class.c: handle missing case in tracking references in fields.
7005
7006 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7007
7008         * class.c, class-internals.h: keep track if a type has
7009         reference fields in either the instance or static fields.
7010
7011 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
7012
7013         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
7014         and renamed to MonoRuntimeInfo. Added fields to store the expected
7015         framework assembly version. Changed mono_get_framework_version and
7016         mono_get_runtime_version for a single mono_get_runtime_info method.
7017         
7018         * assembly.c: Added method to remap system assembly versions to the
7019         current executing runtime version. Removed old mapping code.
7020         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
7021         
7022         * icall.c, reflection.c: Track api changes.
7023
7024 2005-02-06  Miguel de Icaza  <miguel@novell.com>
7025
7026         * loader.c (method_from_memberref): Improve error reporting,
7027         produce the class name instead of the typeref/typedef index. 
7028
7029 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
7030
7031         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
7032
7033 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7034
7035         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
7036         stdcall and charset name mangling.  Reorganize the code and add
7037         some tracing stuff.
7038
7039 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7040
7041         * monodiet.c: More iters!
7042
7043         * marshal.c: Iter usage.
7044
7045         * icall.c: Iter usage.
7046
7047         * object.c: Use iters.
7048
7049         * debug-helpers.c: More iters
7050
7051 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7052
7053         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
7054         under win32.
7055
7056 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7057
7058         * mono-debug-debugger.c: use iters
7059
7060         * class.c, class-internals.h: mono_class_setup_events is static
7061         now
7062
7063         * All callers: use iters
7064
7065 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7066
7067         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
7068         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
7069
7070 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7071
7072         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
7073
7074         * marshal.h: Add prototypes for ldfld/stfld_remote.
7075
7076         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
7077         this is called during startup.
7078         
7079 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
7080
7081         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
7082         MonoThreadsSync struct private in monitor.c. Changed the way
7083         MonoThreadsSync is allocated so it's faster and there is no
7084         need to keep track of it with a finalizer and it uses less memory.
7085         This also finally allows us to allocate mono objects as ptrfree when
7086         there are no reference fields.
7087
7088 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7089
7090         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7091         disappearing link to the GC interface and use them to simplify
7092         the gchandles code.
7093
7094 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7095
7096         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7097         stfld_remote which call mono_load/store_field_new. This allows methods
7098         calling ldfld/stfld wrappers to be AOTed.
7099
7100         * console-io.c: Include sys/filio.h under solaris.
7101         
7102         * console-io.c: Include curses.h if needed correctly.
7103
7104 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7105         
7106         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7107         method->klass as well.
7108
7109         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7110
7111         * class.c (mono_class_init): Switch on lazy initialization of 
7112         methods.
7113
7114         * class.c (mono_class_get_finalizer): Handle the case when the 
7115         finalizer is inherited.
7116
7117 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7118
7119         * console-io.c: <curses.h> is needed by term.h on solaris.
7120
7121 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
7122
7123         * icall.c, class-internals.h, monodiet.c, class.c: Remove
7124         mono_class_setup_properties where possible. Remove this ftn from
7125         the header file, and make it static.
7126
7127 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7128
7129         * loader.c: Add missing setup_... call.
7130
7131         * class.c: Add missing setup_... calls.
7132
7133         * class.c (mono_class_init): Switch on lazy initialization of 
7134         the generic vtable.
7135         
7136         * class.c (mono_class_init): Fix generics broken by the recent changes.
7137
7138         * monodiet.c (handle_type): Add missing setup_... calls.
7139
7140         * class.c: Back out garbage in previous patch.
7141         
7142         * class.c: Add missing setup_... calls.
7143
7144         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7145         mono_class_setup_methods () if possible.
7146
7147         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7148
7149         * class-internals.h (MonoCachedClassInfo): New structure.
7150
7151         * class.c: Initialize properties and events fields of MonoClass lazily.
7152
7153         * class.c: Add infrastructure for lazily initializing the methods and
7154         vtable fields of MonoClass. Not yet used.
7155
7156         * class.c (mono_class_get_finalizer): New helper function.
7157
7158         * class.c: Add infrastructure for loading some class related data from
7159         an AOT file.
7160
7161         * object.c: Add infrastructure for initializing the vtable from data
7162         in the AOT file.
7163
7164         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7165
7166         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7167         appropriate initialization function before accessing parts of the
7168         MonoClass structure.
7169
7170         * marshal.c: Fix warnings.
7171         
7172         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7173
7174         * mono-debug-debugger.c (get_exception_message): Use 
7175         mono_class_get_method_from_name_flags ().
7176
7177 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7178
7179         * reflection.c, appdomain.c: Replace a few manual searches that
7180         Zoltan missed. (Paolo approved this part of my initial patch).
7181
7182 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7183
7184         * profiler.c: disable recording statistical events at report time.
7185
7186 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7187
7188         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7189         to byteswap arrays of enum values, too (bug #72080).
7190
7191 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7192
7193         * appdomain.c (set_domain_search_path): Allow this to be called if
7194         domain->setup is not yet set.
7195
7196         * loader.c (mono_method_get_index): New helper function.
7197
7198         * loader.c reflection.c: Use mono_method_get_index ().
7199
7200         * class.c (mono_class_get_method_from_name_flags): New helper method.
7201
7202         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7203         this.
7204
7205         * class.c (mono_class_get_cctor): New helper method.
7206
7207         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7208         mono_class_get_method () to look up methods.
7209
7210 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7211
7212         * console-io.c: Fix the build, this should work on Windows.
7213
7214 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7215
7216         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7217         be set to null to keep things valid
7218
7219 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7220
7221         * icall.c: added Console 2.0 icalls.
7222         * Makefile.am: added console-io.[ch]
7223         * console-io.[ch]: internal calls for Console 2.0 API.
7224
7225 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7226
7227         * class.c: make sure we consider all the interfaces
7228         when calculating max_interface_id (bug found by
7229         Jeroen Frijters running ikvm).
7230
7231 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7232
7233         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7234         valuetype fields to null.
7235
7236         * object.c (set_value): Ditto. Fixes #71669.    
7237
7238 2005-01-31  Martin Baulig  <martin@ximian.com>
7239
7240         * metadata.c (mono_metadata_has_generic_params): New public
7241         function; checks whether something is a generic method.
7242
7243 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7244
7245         * appdomain.c: fix infinite recursion when adding assemblies.
7246
7247 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7248
7249         * object.c: Fix small typo to return all items for Environment.
7250         GetCommandLineArgs.
7251
7252 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7253
7254         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7255         reflection.c: more domain and assembly-unload related fixes
7256         and memory leaks plugs.
7257
7258 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7259
7260         * 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.
7261
7262 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7263
7264         * loader.c (mono_method_signature): Make this method lazy
7265         (mono_get_method_from_token): Don't computate the signature here.
7266
7267         Doing this saves quite a bit of memory. I got 90 kb on starting up
7268         monodoc. It should also save some disk reads on startup.
7269
7270         * *: MonoMethod->signature might be NULL now. You *MUST* use
7271         mono_method_signature.
7272
7273 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7274
7275         * object.c (mono_runtime_get_main_args): Return an array from the
7276         current domain here. Fixes #71938.
7277
7278 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7279
7280         * monitor.c: formatting changes to comply with the
7281         mono coding style and remove #ifdefs from the code.
7282
7283 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7284
7285         * metadata.c, private.h: remove some unneeded data
7286         and use a more compact representation for table schemas.
7287
7288 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7289
7290         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7291         to get a better distribution in hash tables.
7292         * *.c: use mono_aligned_addr_hash() where appropriate.
7293         * assembly.c: make var static.
7294
7295 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7296
7297         * domain-internals.h: Put MonoJitInfo on a diet.
7298
7299         * domain.c: Fix a warning.
7300
7301 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7302
7303         * gc.c: rework the gc handles code to reuse handles
7304         when freed.
7305
7306 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7307
7308         * domain.c: fixed long standing bug in mono_string_equal() which
7309         was brought to light with the ldstr changes.
7310
7311 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7312
7313         * reflection.c: Remove warning by adding missing include for marshal.h
7314
7315 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7316
7317         * domain.c, object.c: change the ldstr_table to hold
7318         MonoString* as keys: makes the runtime isinterned lookup
7319         faster and simplifies memory management.
7320
7321 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7322  
7323         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7324         possible to add imperative security checks before calling the icall.
7325         * reflection.c: Return security attributes on the original MonoMethod
7326         (and not the wrapped one). This fix permissions on icalls.
7327
7328 2005-01-25  Dick Porter  <dick@ximian.com>
7329
7330         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7331         the check for mktime() support actually test the mktime() return
7332         value.  "Fixes" bug 71682, though the output is still different to
7333         MS.
7334
7335 2005-01-25  Martin Baulig  <martin@ximian.com>
7336
7337         * class.c (mono_class_is_assignable_from): Make this work for
7338         generic instances.
7339
7340 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7341
7342         * marshal.c (mono_string_utf8_to_builder)
7343         (mono_string_builder_to_utf16): We might not have ownership of the
7344         string. In thise case, we need to create a new buffer.
7345
7346         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7347         be null, in which case, use the default capacity.
7348
7349 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7350
7351         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7352         GC events to the profiler.
7353
7354 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7355
7356         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7357         if you don't want the GC to run.
7358
7359 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7360
7361         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7362         start providing a GC API and keeping different implementations in
7363         their own file.
7364         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7365
7366 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7367
7368         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7369         mmap rather than allocating a huge buffer.
7370         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7371         above.
7372
7373 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7374
7375         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7376         and CheckExecutionRights.
7377         * reflection.c|h: Keep the index of the declarative security to be 
7378         used, instead of the pointer, when AOT compiler is used. Also add 
7379         class initialization when requesting demands.
7380         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7381         CheckExecutionRights. Both properties are now FALSE by default, and
7382         unmodifiable, unless the --security option is used.
7383
7384 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7385
7386         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7387         reflection.c: properly refcount images and assemblies, many leaks fixed.
7388
7389 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7390
7391         * threadpool.c: increase the timeout for threads in the thread pool to
7392         10s.  Fixes bug #67159.
7393
7394 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7395
7396         * class-internals.h: Sun's compiler insists on explicit
7397         signed on bit fields to handle then correctly.
7398
7399 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7400
7401         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7402         Make the size of the array fit only the number of invalid path
7403         chars that we have.
7404
7405         * class.c (_mono_class_get): Improve the error reporting when a
7406         class referenced is not found, to assist debugging. 
7407
7408 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7409
7410         * threads.c: fix off-by-one error.
7411         * domain.c: free data allocated in the domain.
7412
7413 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7414
7415         * reflection.c (mono_method_body_get_object): Fill out exception info
7416         as well.
7417
7418         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7419         structure.
7420         
7421 2005-01-19  Martin Baulig  <martin@ximian.com>
7422
7423         * loader.c (mono_get_method_constrained): Make this work again.
7424
7425 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7426
7427         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7428         guint16 to match the managed side.
7429
7430         * reflection.c (mono_reflection_body_get_object): Fill out local
7431         variables array.
7432
7433         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7434         as well.
7435
7436         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7437         'local_var_sig_token'.
7438
7439 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7440
7441         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7442         System.Drawing.
7443
7444         * reflection.c (mono_method_body_get_object): Handle abstract and
7445         runtime methods.
7446
7447 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7448
7449         * marshal.c, loader.c, class-internals.h, reflection.c:
7450         store the emthod data for a wrapper in an array instead of a list.
7451
7452 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7453
7454         * marshal.c: change the code to allocate memory more
7455         conservatively for method wrappers.
7456
7457 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7458
7459         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7460         fields from MonoClass to the marshal info structure where they belong.
7461
7462 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7463
7464         * class.c, object.c, class-internals.h, marshal.c: rearrange
7465         some fields and tweak some types to lower memory usage.
7466
7467 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7468
7469         * threads.c (signal_thread_state_change): Handle the case when the
7470         target thread is the current thread.
7471
7472         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7473
7474         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7475         emit_ptr_to_object_conv. 
7476
7477         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7478         marshalling. Fixes #71352.
7479
7480 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7481
7482         * metadata.h, blob.h: move table enum to blob.h so it can be included
7483         in any header.
7484         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7485         cut the size of MonoImage/MonoDynamicImage.
7486
7487 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7488
7489         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7490
7491 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7492
7493         * reflection.c, reflection.h, icall.c: add a function to check
7494         if an attribute type is defined for a metadata object.
7495
7496 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7497
7498         * object-internals.h: Added some needed fields from StringBuilder class.
7499         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7500
7501 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7502
7503         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7504         threads before shutting down the runtime.
7505
7506         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7507
7508 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7509
7510         * object-internal.h, threads.c: implement stacksize and 
7511         parameterized thread start functionality (requires
7512         matching corlib). Marked broken code for later removal.
7513
7514 2005-01-12  Martin Baulig  <martin@ximian.com>
7515
7516         * class-internals.h (MonoGenericClass): Moved the `initialized'
7517         flag to MonoDynamicGenericClass, removed `init_pending'.
7518         (MonoGenericInst): Added `is_reference' flag.
7519
7520 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7521
7522         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7523         inside the MSDOS header. Fixes #71201.
7524
7525         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7526         gc thread.
7527         (mono_domain_finalize): Ditto.
7528
7529 2005-01-12  Martin Baulig  <martin@ximian.com>
7530
7531         * class.c (mono_get_shared_generic_class): Use the cache for
7532         non-dynamic generic classes.
7533
7534         * class-internals.h (mono_class_create_generic_2): Removed
7535         function prototype, this function is now static inside class.c.
7536
7537         * class.c (mono_class_create_generic_2): Made this static, only
7538         call it from mono_class_init() and mono_class_setup_parent().
7539         (collect_implemented_interfaces_aux): Call mono_class_init() on
7540         the interfaces we collect.
7541         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7542
7543 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7544
7545         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7546         it a real thread handle.
7547
7548         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7549         MonoJitExceptionInfo, since each catch clause needs its own variable.
7550         
7551 2005-01-11  Dick Porter  <dick@ximian.com>
7552
7553         * image.c (mono_pe_file_open): New variant on mono_image_open()
7554         that does not set up the CLI metadata; used for FileVersionInfo so
7555         it can get the data for windows binaries too.
7556         
7557         * process.c (process_read_string_block): Don't read off the end of
7558         the StringTable block.
7559
7560         These both fix bug 70766.
7561
7562 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7563
7564         * gc.c: set some fields to NULL at GC cleanup time.
7565         * threads.c: if we quit the main thread, call exit ().
7566
7567 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7568
7569         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7570
7571 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7572
7573         * threads.h, threads.c, object.c: added accessor and settor for
7574         main_thread. Handle it specially when exiting from it: wait
7575         for other foreground threads to exit.
7576
7577 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7578
7579         * process.c, verify.c: remove some bloat.
7580
7581 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7582
7583         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7584         the calling convention to cdecl under win32.
7585
7586 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7587
7588         * object.c (mono_object_get_size): New function to get the size of
7589         an object instance.
7590
7591         * profiler.c (simple_allocation): Use above.
7592
7593 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7594
7595         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7596         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7597         get an appdomain by it's id and we can't assume the root's id is 0).
7598         * domain-internals.h: Change the function prototype to match.
7599         * icall.c: Change the icall table for AppDomain.
7600
7601 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7602
7603         * locales.c (string_invariant_compare_char): Only compute
7604         GUnicodeTypes in the case where we need them.  Test for ordinality
7605         first and return if so.
7606
7607         From the commit:
7608
7609                 /*
7610                  * FIXME: here we must use the information from c1type and c2type
7611                  * to find out the proper collation, even on the InvariantCulture, the
7612                  * sorting is not done by computing the unicode values, but their
7613                  * actual sort order.
7614                  */
7615
7616 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7617
7618         * loader.c: for P/Invoke methods, allow the "Internal" shared
7619         library name to refer to the calling process symbol namespace.
7620
7621 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7622
7623         * Makefile.am: Add the security manager to the build.
7624         * security-manager.c|h: New. Initialization of the security manager.
7625
7626 2005-01-07  Dick Porter  <dick@ximian.com>
7627
7628         * threads.c: 
7629         * monitor.c: Update thread state during Monitor and WaitHandle
7630         waits.  Fixes bug 71031.
7631
7632 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7633
7634         * reflection.c (property_encode_signature): Correctly handle when the
7635         property has no methods.
7636
7637 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7638
7639         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7640         
7641         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7642         fields from mb, not rmb. Fixes #71017.
7643
7644         * marshal.c (emit_ptr_to_str_conv): Add support for 
7645         ByValTStr -> string conversion. Fixes #71015.
7646
7647         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7648
7649         * mempool.c (mono_mempool_contains_addr): New helper function.
7650
7651 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7652
7653         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7654         HasSematics encoded fields.
7655         
7656         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7657         invalid string marshalling.
7658
7659         * metadata.c: Fix warnings.
7660         
7661 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7662
7663         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7664         profiler support.
7665
7666 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7667
7668         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7669         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7670         tests.
7671
7672 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7673
7674         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7675         so methods containing these can be AOTed.
7676
7677 2005-01-03  Martin Baulig  <martin@ximian.com>
7678
7679         * loader.c (find_method): Removed the hack for generic instances.
7680         (method_from_memberref): If our parent is a generic instance, pass
7681         its generic type definition to find_method() and then inflate the
7682         method.
7683         (mono_get_method_constrained): Pass the generic type definition to
7684         find_method() and inflate the method later.
7685
7686         * class-internals.h (MonoStats): Added `generic_class_count'.
7687
7688         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7689         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7690
7691         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7692         generic type definitions.
7693
7694 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7695
7696         * loader.c icall.c: Fix warnings.
7697
7698 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7699
7700         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7701         blittable types. Fixes #70864.
7702
7703 2004-12-29  Martin Baulig  <martin@ximian.com>
7704
7705         * icall.c
7706         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7707
7708         * reflection.c (mono_method_get_object): Create a
7709         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7710         call mono_get_inflated_method().
7711
7712         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7713
7714 2004-12-27  Martin Baulig  <martin@ximian.com>
7715
7716         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7717         (MonoMethodInflated): Added `inflated' field.
7718
7719         * class.c (mono_class_inflate_generic_method): Don't really
7720         inflate the method here; just set the `is_inflated' flag in the
7721         MonoMethod.
7722         (mono_class_get_inflated_method): Actually inflate the method here
7723         if it's not already inflated; we use the MonoMethodInflated's new
7724         `inflated' field as a cache.
7725
7726 2004-12-26  Martin Baulig  <martin@ximian.com>
7727
7728         * class.c
7729         (inflate_generic_class): Moved some code out of inflate_generic_type().
7730         (mono_class_inflate_generic_method): If we're already inflated,
7731         inflate the context and use the declaring method; ie. make sure
7732         the declaring method of an inflated method is always the generic
7733         method definition.
7734         (mono_class_create_from_typedef): Create
7735         `class->generic_container->context->gclass'.
7736
7737 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7738
7739         * metadata-internals.h, marshal.c, reflection.c: More
7740         MonoGHashTable->GHashTable.
7741
7742         * domain-internals.h, class.c: Change MonoGHashTable's into
7743         GHashTables for some cases where no gc stuff is used
7744
7745         All users: update apis
7746
7747 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7748
7749         * metadata.c (builtin_types): Make this `const'. Makes this get
7750         put into the shareable section.
7751         (mono_metadata_init): Casts to make gcc happy.
7752
7753 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7754
7755         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7756
7757 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7758
7759         * icall.c: Added an internal call to retrieve the position and length
7760         of assembly-level declarative security attributes (RequestMinimum, 
7761         RequestOptional and RequestRefuse). This is used by the Assembly class
7762         to re-create the corresponding permission sets.
7763
7764 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7765
7766         * marshal.c: fix the stelemref wrapper to be type correct
7767         (and faster).
7768
7769 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7770
7771         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7772         to do key & 0x7fffffff. Hashtable already does this. It just
7773         results in longer code.
7774
7775 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7776
7777         * appdomain.c: Bump corlib version.
7778         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7779         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7780         * reflection.c|h: Add functions to get declarative security infos
7781         (blob position and length) for assemblies, classes and methods.
7782
7783 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7784
7785         * reflection.c: sort the constant table (bug #70693).
7786
7787 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7788
7789         * object-internals.h, threads.c, domain.c: add accessors for
7790         the MonoThread and MonoDomain tls keys.
7791
7792 2004-12-18  Martin Baulig  <martin@ximian.com>
7793
7794         * class.c (inflate_generic_type): If we're inflating a generic
7795         instance, set `ngclass->context->container = context->container';
7796         ie. the container we inflated into.
7797
7798         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7799         inflate_generic_type() changes.
7800
7801 2004-12-17  Martin Baulig  <martin@ximian.com>
7802
7803         * class-internals.h
7804         (MonoGenericClass): Replaced `MonoType *generic_type' with
7805         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7806         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7807         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7808
7809 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7810
7811         * exception.c (mono_exception_from_token): New helper function.
7812
7813 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7814
7815         * assembly.c (mono_assembly_load_with_partial_name): Call 
7816         mono_assembly_loaded before invoking the preload hooks. Fixes
7817         #70564.
7818
7819         * object-internals.h (MonoThread): Change culture_info and 
7820         ui_culture_info into an array.
7821
7822         * threads.c: Cache culture info objects from more than one appdomain.
7823
7824         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7825         current UI culture.
7826
7827 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7828
7829         * threads.h threads.c appdomain.c: Clear the culture_info field of
7830         all threads during unloading if they point to an object in the dying
7831         appdomain.
7832
7833 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7834
7835         * culture-info.h (TextInfoEntry): New struct
7836         * object-internals.h: sync with managed
7837         * locales.c: fill the `text_info_data' field
7838         * culture-info-tables.h: update
7839
7840 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7841
7842         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7843         collector.
7844
7845 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7846
7847         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7848         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7849
7850 2004-12-12  Martin Baulig  <martin@ximian.com>
7851
7852         * mono-debug-debugger.c (write_type): If we're an enum and the
7853         builtin types have already been initialized, call mono_class_init().
7854
7855 2004-12-11  Martin Baulig  <martin@ximian.com>
7856
7857         * metadata.c (mono_metadata_load_generic_params): Added
7858         `MonoGenericContainer *parent_container' argument; automatically
7859         compute `container->is_method'; pass the correct owner to
7860         get_constraints().      
7861
7862         * reflection.c (compare_genericparam): Sort the GenericParam table
7863         according to increasing owners. 
7864
7865 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7866
7867         * profiler.c: allow disabling the default profiler.
7868
7869 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7870
7871         * decimal.c, icall.c: allow disabling System.Decimal support.
7872
7873 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7874
7875         * reflection.c: Add support for null attribute arguments.
7876
7877 2004-12-09  Martin Baulig  <martin@ximian.com>
7878
7879         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7880         names to get rid of compiler warnings.
7881
7882 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7883
7884         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7885         mono_marshal_load_type_info (). Fixes #69625.
7886         (mono_marshal_get_ptr_to_struct): Likewise.
7887
7888 2004-12-08  Martin Baulig  <martin@ximian.com>
7889
7890         * mono-debug.h: Bumped version number to 47.
7891
7892         * mono-debug-debugger.c
7893         (mono_debugger_event_handler, mono_debugger_event): Take two
7894         guint64 arguments insteed of a gpointer and a guint32.  
7895
7896 2004-12-08  Martin Baulig  <martin@ximian.com>
7897
7898         * debug-mono-symfile.h
7899         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7900         `address' to `native_offset'.
7901
7902 2004-12-08  Martin Baulig  <martin@ximian.com>
7903
7904         * class.c (mono_class_create_from_typespec): Only inflate if we
7905         either have `context->gclass' or `context->gmethod'.
7906
7907 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7908
7909         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7910
7911         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7912
7913         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7914
7915         * reflection.c (mono_assembly_get_object): Remove the workaround put
7916         in for the release.
7917         
7918         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7919
7920         * appdomain.c: Bump corlib version.
7921
7922         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7923         be visible in other appdomains.
7924
7925 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7926
7927         * threads.c: Interlocked inc and dec for longs were messed up,
7928         use a KISS based impl for this. Fixes 70234
7929
7930 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7931
7932         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7933
7934 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7935
7936         * icall.c: fix to follow policy not to allow struct
7937         arguments in icalls.
7938
7939 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7940
7941         * process.c: make the patch that handles spaces in file paths work
7942         on mono/windows too.
7943
7944 2004-12-06  Martin Baulig  <martin@ximian.com>
7945
7946         * class.c (mono_class_create_generic): Call
7947         mono_class_setup_supertypes() if we're dynamic.
7948         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7949
7950 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7951
7952         * object-internals.h: Add new fields to MonoThread.
7953
7954         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7955
7956         * icall.c threads-types.h threads.c: Add new icalls.
7957
7958         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7959
7960         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7961         managed side.
7962
7963         * appdomain.c: Bump corlib version.
7964
7965         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7966         internal assemblies. Fixes #69181.
7967
7968 2004-12-05  Martin Baulig  <martin@ximian.com>
7969
7970         * class.c (mono_class_inflate_generic_signature): Make this a
7971         no-op if `context' is NULL or we don't have any type parameters;
7972         also copy `sentinelpos'.        
7973
7974 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7975
7976         * image.c: Add unbox_wrapper_cache.
7977
7978         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7979
7980         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7981         function generator.
7982         
7983         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7984         Fixes #70173.
7985
7986         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7987         
7988 2004-12-04  Martin Baulig  <martin@ximian.com>
7989
7990         * loader.c (mono_method_get_signature_full): New public function;
7991         like mono_method_get_signature(), but with an additional
7992         `MonoGenericContext *' argument.
7993
7994         * class.c (mono_class_inflate_generic_signature): Formerly known
7995         as inflate_generic_signature(); make this public.
7996
7997 2004-12-04  Martin Baulig  <martin@ximian.com>
7998
7999         * metadata.c
8000         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
8001         instead of a `MonoGenericContainer *'.  
8002         (mono_metadata_parse_array_full): Likewise.
8003         (mono_metadata_parse_signature_full): Likewise.
8004         (mono_metadata_parse_method_signature_full): Likewise.
8005         (mono_metadata_parse_generic_inst): Likewise.
8006         (mono_metadata_parse_generic_param): Likewise.
8007         (mono_metadata_parse_mh_full): Likewise.
8008         (mono_type_create_from_typespec_full): Likewise.
8009
8010 2004-12-03  Martin Baulig  <martin@ximian.com>
8011
8012         * class-internals.h (MonoGenericContainer): Replaced the
8013         `MonoGenericContext * pointer with a `MonoGenericContext'
8014         structure and made it the first element.
8015
8016 2004-12-03  Martin Baulig  <martin@ximian.com>
8017
8018         * class.c
8019         (inflate_generic_type): Set the `context->container' when creating
8020         a new MonoGenericContext.
8021         (mono_class_inflate_generic_method): Likewise.
8022         (mono_class_create_from_typespec): Just use `context->container'
8023         to get the container.
8024
8025         * loader.c (method_from_methodspec): Set `context->parent' from
8026         `context->container' - and if that's a method container, use its
8027         parent.  Also set the `context->container' when creating a new
8028         MonoGenericContext.
8029         (mono_get_method_from_token): Use just `context->container' to get
8030         the container.
8031
8032         * metadata.c (do_mono_metadata_parse_generic_class): Also set
8033         `gclass->context->container'.
8034
8035         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
8036         the `context->container' when creating a new MonoGenericContext.
8037
8038 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
8039
8040         * reflection.c (compare_genericparam): Sort params with identical
8041         owner by their number. Fixes gen-111 on sparc.
8042
8043 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8044
8045         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
8046         around the domain changes.
8047
8048         * appdomain.c (mono_domain_unload): Handle the case when the thread
8049         calling Unload is itself being aborted during unloading. Fixes #70022.
8050
8051         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
8052
8053         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
8054         checkpoint_func as an icall so it gets a wrapper.
8055         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
8056         in the cross-appdomain wrappers too.
8057
8058         * threads.c (mono_thread_has_appdomain_ref): Make this public.
8059
8060         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
8061
8062         * reflection.c: Fix some memory leaks.
8063         
8064 2004-12-02  Martin Baulig  <martin@ximian.com>
8065
8066         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
8067
8068         * metadata.c (generic_class_cache): New static hashtable.
8069         (mono_metadata_lookup_generic_class): New public method.
8070
8071 2004-12-02  Martin Baulig  <martin@ximian.com>
8072
8073         * class.c (mono_class_create_from_typedef): Call
8074         mono_class_setup_parent() and mono_class_create_mono_type() before
8075         parsing the interfaces.
8076
8077 2004-12-02  Martin Baulig  <martin@ximian.com>
8078
8079         * metadata.c (generic_inst_cache): New static hashtable.
8080         (mono_metadata_lookup_generic_inst): New public function.
8081         (mono_metadata_inflate_generic_inst): New public function.
8082         (mono_metadata_parse_generic_inst): New public function.
8083         (do_mono_metadata_parse_generic_class): Use the new
8084         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
8085         since this'll also use the cache.
8086
8087         * reflection.c (mono_reflection_bind_generic_method_parameters):
8088         Use mono_metadata_lookup_generic_inst() to use the new cache.
8089
8090         * class.c (inflate_mono_type): Use
8091         mono_metadata_inflate_generic_inst() to inflate a generic
8092         instance; this'll also use the new cache.
8093
8094         * loader.c (method_from_methodspec): Use
8095         mono_metadata_parse_generic_inst() and
8096         mono_metadata_inflate_generic_inst() rather than parsing it
8097         manually, so we can use the new cache.
8098
8099 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8100
8101         * threads.c (wait_for_tids): Do not incorrectly free threads when 
8102         the wait times out.
8103
8104 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8105
8106         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8107         iter->args based on whether parameters are passed in registers (i.e.
8108         MONO_ARCH_REGPARMS is defined)
8109
8110 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
8111
8112         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8113         the exception message. Fixes #70070.
8114         (method_from_methodspec): Fix warnings.
8115
8116 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8117
8118         * process.c: (complete_path) return the path quoted
8119
8120 2004-12-01  Martin Baulig  <martin@ximian.com>
8121
8122         * class-internals.h (MonoGenericInst): New structure.
8123         (MonoGenericClass): Replaced `type_argc', `type_argv' and
8124         `is_open' with `MonoGenericInst *inst'.
8125         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8126         `is_open' with `MonoGenericInst *inst'.
8127
8128 2004-11-30  Martin Baulig  <martin@ximian.com>
8129
8130         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8131
8132         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8133         to `generic_class_cache'.
8134
8135         * metadata.c
8136         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8137         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8138         (mono_generic_inst_is_valuetype): Renamed to
8139         mono_generic_class_is_valuetype().
8140
8141         * class-internals.h
8142         (MonoGenericInst): Renamed to MonoGenericClass.
8143         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8144         (MonoClass): Renamed `generic_inst' to `generic_class'.
8145         (MonoGenericContext): Renamed `ginst' to `gclass'.
8146
8147         * object-internals.h
8148         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8149
8150         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8151         mono_reflection_generic_class_initialize().
8152
8153         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8154         now known as "System.Reflection.MonoGenericClass".
8155         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8156
8157 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8158
8159         * class-internals.h: Added a flag field to MonoClass to cache the
8160         declarative security attributes actions associated with the class.
8161         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8162         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8163         applicable to the JITted method.
8164         * reflection.c|h: Added functions to extract (as flags) which security
8165         actions are available (declaratively) for a method, class or assembly.
8166         * metadata.c|h: Added functions to search the declarative security
8167         table in the metadata.
8168         
8169 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8170
8171         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8172         EXPORTEDTYPES are already in the class name cache, so there is no
8173         need to add extra code here to look at them. Just removes a bit of
8174         cruft.
8175
8176         (ves_icall_System_Environment_get_TickCount): No need for #if
8177         WINDOWS. We already have the code in io-layer.
8178
8179 2004-11-28  Martin Baulig  <martin@ximian.com>
8180
8181         * loader.c
8182         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8183         Fixes gen-112.cs.
8184
8185 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8186
8187         * assembly.c (do_mono_assembly_open): Instead of having a
8188         conditional WITH_BUNDLE, incorporate support for bundles here, by
8189         having a global `bundles' variable holding a pointer to the actual
8190         bundles. 
8191
8192         (mono_register_bundled_assemblies): New API call used by the
8193         bundle code. 
8194
8195         See mkbundle.1 for details.
8196         
8197 2004-11-27  Martin Baulig  <martin@ximian.com>
8198
8199         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8200         the vtable for generic methods.
8201
8202 2004-11-26  Martin Baulig  <martin@ximian.com>
8203
8204         * metadata.c
8205         (mono_metadata_generic_method_hash): New public function.
8206         (mono_metadata_generic_method_equal): Likewise.
8207
8208         * class-internals.h
8209         (MonoGenericContainer): Added `GHashTable *method_hash'.
8210
8211         * reflection.c (ReflectionMethodBuilder): Added
8212         `MonoGenericContainer *generic_container'.
8213         (reflection_methodbuilder_to_mono_method): Don't create a new
8214         MonoGenericContainer each time we're called.
8215         (mono_reflection_bind_generic_method_parameters): Use
8216         `container->method_hash' to cache the results so we don't create a
8217         different method if we're called several times with the same
8218         arguments.
8219
8220         * loader.c (method_from_methodspec): Use the new
8221         `container->method_hash' here, too.
8222
8223 2004-11-26  Martin Baulig  <martin@ximian.com>
8224
8225         * class.c (inflate_generic_signature): Correctly compute
8226         `res->has_type_parameters'.
8227         (mono_class_vtable): Use the `has_type_parameters' flag to
8228         determine whether we're a generic method.
8229
8230         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8231
8232 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8233
8234         * object.c (mono_runtime_run_main): Fix a small memory leak.
8235
8236 2004-11-25  Martin Baulig  <martin@ximian.com>
8237
8238         * class.c (set_generic_param_owner): Fixed the loop.
8239
8240 2004-11-25  Martin Baulig  <martin@ximian.com>
8241
8242         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8243         generic methods.
8244
8245 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8246
8247         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8248         names. Fixes #69787.
8249
8250 2004-11-24  Martin Baulig  <martin@ximian.com>
8251
8252         * class.c (mono_class_create_generic_2): If we don't have a
8253         `ginst->parent', inflate `gklass->parent' to get our parent.
8254
8255 2004-11-24  Martin Baulig  <martin@ximian.com>
8256
8257         * reflection.c (compare_genericparam): Correctly sort the
8258         GenericParam table; fixes #69779.
8259
8260 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8261
8262         * reflection.c: When writing a PE file, don't create a huge
8263         buffer in memory. Just write the arrays we have to the file.
8264         This reduces memory usage.
8265
8266         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8267         globally.
8268
8269 2004-11-17  Martin Baulig  <martin@ximian.com>
8270
8271         * class.c (mono_class_init): Don't setup `class->parent' for
8272         dynamic instances; moved this to mono_class_generic_2().
8273         (mono_class_create_generic): Also set `klass->inited' for dynamic
8274         generic instances.
8275         (mono_class_create_generic_2): Don't do anything for dynamic
8276         generic instances.  Set `klass->parent' here and also call
8277         mono_class_setup_parent() here. 
8278
8279         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8280         `MonoType *parent' argument; set `ginst->parent' before calling
8281         mono_class_create_generic_2(), so we set the correct parent.
8282
8283 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8284
8285         * reflection.c: allow getting attributes from ModuleBuilder
8286         (used by ikvm).
8287
8288 2004-11-17  Martin Baulig  <martin@ximian.com>
8289
8290         * class.c (mono_class_create_from_typedef): If a type parameter is
8291         inherited from an outer class, set its owner to that class.
8292
8293 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8294
8295         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8296           for (int*) written size. This fixes bug #69592.
8297
8298 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8299
8300         * icall.c: Added IsAuthenticodePresnet internal call.
8301         * image.c|h: New function that check a MonoImage for an Authenticode
8302         signature in the certificate PE data directory.
8303         * security.c|h: New internal call to ask the runtime if an 
8304         Authenticode signature seems referenced in the PE header.
8305
8306 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8307
8308         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8309
8310         * reflection.c (mono_image_create_pefile): Free the assembly streams
8311         after writing out the assembly file.
8312
8313         * object.c (mono_runtime_run_main): Fix small memory leak.
8314
8315         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8316         property access modifiers. Fixes #69389.
8317
8318 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8319
8320         * domain.c, object.c, object-internals.h, domain-internals.h,
8321         object.h, marshal.c: keep dynamic code info per domain.
8322
8323 2004-11-15  Martin Baulig  <martin@ximian.com>
8324
8325         * class.c (mono_type_get_name_recurse): Put type arguments in
8326         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8327         see bug #68387.
8328
8329 2004-11-15  Martin Baulig  <martin@ximian.com>
8330
8331         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8332         (mono_class_setup_vtable): When computing `the_cname' for a
8333         generic instance, don't include the namespace since we'd otherwise
8334         add it twice.
8335
8336 2004-11-15  Martin Baulig  <martin@ximian.com>
8337
8338         * class.c (mono_class_create_generic): Changed return type to void.
8339         (mono_class_create_generic_2): New public function; setup
8340         `class->method', `class->field' and `class->interfaces' here
8341         instead of in mono_class_init().
8342
8343         * class.h (mono_class_create_generic): Moved to class-internals.h.
8344
8345 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8346
8347         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8348         rather than writing to memory, write to this file. Right now,
8349         we are just writting into a buffer, and copying that. However
8350         we can avoid the buffer later.
8351
8352         (mono_dynamic_stream_reset): new function
8353
8354         * icall.c, object-internals.h: update for the above.
8355
8356 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8357
8358         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8359         have been using gc'd memory. First it is slower, unlikely
8360         the comment in the source code said, secondly, it increases
8361         our footprint to do it in the gc.
8362
8363         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8364         the method so that it does not have to copy to managed code.
8365
8366 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8367
8368         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8369
8370 2004-11-12  Martin Baulig  <martin@localhost>
8371
8372         * reflection.c (mono_image_create_token): Allow generic method
8373         definitions here, since they may appear in an `.override'; see
8374         gen-98/gen-99 for an example.
8375
8376 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8377
8378         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8379         #69365.
8380
8381         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8382         descriptive.
8383
8384 2004-11-11  Martin Baulig  <martin@ximian.com>
8385
8386         * class.c (mono_class_setup_vtable): In an explicit interface
8387         implementation, the method name now includes the arity.
8388
8389 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8390
8391         * object.c (mono_array_full_copy): Fix warning.
8392
8393 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8394
8395         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8396         mono_class_get_method_from_name() instead.
8397         
8398         * class-internals.h: Added two new types of wrappers. 
8399         Added MonoRemotingTarget enum. Added new trampoline function type, which
8400         takes an additional MonoRemotingTarget value as parameter, so it is
8401         possible to request a trampoline for a specific target.
8402         
8403         * class.c: Added new mono_class_get_method_from_name() method.
8404         
8405         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8406         general remoting sinks and one specific for cross domain calls.
8407         
8408         * debug-helpers.c: Added new wrapper names.
8409         
8410         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8411         of a remote class.
8412         
8413         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8414         
8415         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8416         with several other methods (mono_marshal_get_xappdomain_dispatch,
8417         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8418         and others) can generate a fast remoting wrapper for cross domain calls.
8419         More information can be found in docs/remoting.
8420         Other changes: Removed mono_find_method_by_name, and used
8421         mono_class_get_method_from_name instead.
8422         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8423         is stored in the remoting invoke hashtable.
8424         
8425         * marshal.h: published the new method for getting the xdomain wrapper,
8426         and also added a method for getting the adequate wrapper for a given
8427         method and target.
8428         
8429         * object-internals.h, object.c: Added a couple of methods for capying and
8430         cloning arrays.
8431         Modified mono_install_remoting_trampoline, which takes the new remoting
8432         trampoline that has a remoting target as parameter.
8433         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8434         will return the most suitable vtable for the target.
8435         Added mono_remote_class_vtable, which returns the vtable of a remote class
8436         (which can be the normal remoting vtable or the xdomain vtable).
8437         
8438         * threads.c: the xdomain invoke and dispatch wrappers must also be
8439         protected against interruptions.
8440
8441 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8442
8443         * icall.c: use memmove in BlockCopyInternal when the source and
8444         destination arrays are the same.
8445
8446 2004-11-09  Martin Baulig  <martin@ximian.com>
8447
8448         * class-internals.h (MonoGenericContainer): Removed `method' and
8449         `signature', replaced them with `is_method' and `is_signature'
8450         flags.  Added `context'.
8451
8452         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8453         instead of a `MonoGenericContainer *'.
8454
8455         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8456         for dynamic type parameters.
8457         (mono_metadata_load_generic_params): Setup `container->context'.
8458
8459         * reflection.c (mono_reflection_setup_generic_class): Setup
8460         `tb->generic_container->context'.
8461         (do_mono_reflection_bind_generic_parameters): Use
8462         mono_class_inflate_generic_type() to correctly inflate types,
8463         rather than using our own hack just for MONO_TYPE_VAR.
8464
8465 2004-11-09  Martin Baulig  <martin@ximian.com>
8466
8467         * class.c (mono_class_inflate_generic_method): Small fix; don't
8468         crash here.
8469
8470         * icall.c
8471         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8472         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8473         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8474         (ves_icall_Type_BindGenericParameters): Likewise.
8475         (ves_icall_Type_get_IsGenericInstance): Likewise.
8476         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8477         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8478         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8479         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8480
8481 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8482
8483         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8484         assembly versions and public key tokens. Fixes #69113.
8485
8486 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8487
8488         * metadata.c: fix bug introduced with the type cache changes
8489         on 2004-11-06.
8490
8491 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8492
8493         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8494         the MonoClass pointer instead of the token in exception clauses.
8495         * reflection.c: updates for the above and make the code not depend
8496         on the structure of MonoExceptionClause.
8497
8498 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8499
8500         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8501         Add support for dynamic assemblies. Fixes #69114.
8502
8503         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8504
8505 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8506
8507         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8508         since most only those methods use it. the code member of
8509         MonoMethodPInvoke was dead, so that can be removed too. Also,
8510         remove inline_count (again, not used), and move slot so that it
8511         can share bits with some other flags. This saves 8 bytes in the
8512         structure and gives us about 50 kb back for mcs helloworld.cs
8513
8514         * *.[ch]: Do naming changes for the above.
8515
8516         * loader.c (mono_method_get_header): Lazily init the header
8517         on first access.
8518         (mono_get_method_from_token): don't init the header here
8519         (mono_free_method): the header may never be allocated
8520
8521         Overall, this saves 150 kb of unmanaged allocations
8522         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8523         memory at runtime.
8524         
8525         * loader.c, loader.h (mono_method_get_header): new accessor.
8526
8527         * *.[ch]: use the above method. Prepares us to lazily load
8528         the header.
8529
8530         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8531         three warnings, which are actual bugs (see 69206).
8532
8533         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8534         unused. Saves a cool 4 bytes / method.
8535
8536 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8537
8538         * metadata.c (builtin_types): Add types for System.Object here.
8539         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8540         for a class or valuetype from klass->this_arg or klass->byval_arg.
8541
8542         On mcs for a hello world, this gets us down from 21836 MonoType's
8543         to 14560.
8544
8545         (mono_metadata_free_type): Account for the above change.
8546
8547 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8548
8549         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8550         exception instead of asserting if name is null.
8551         (ves_icall_System_AppDomain_GetData): Ditto.
8552
8553 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8554
8555         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8556         EnumBuilder.
8557
8558         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8559         Return NULL when the domain does not have entry_assembly set.
8560
8561         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8562         Add a 'resource_modules' argument.
8563         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8564
8565         * reflection.c (mono_reflection_create_runtime_class): Move setting
8566         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8567         for enums too.
8568
8569         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8570         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8571         Throw an ArgumentNullException if 'ptr' is null.
8572
8573         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8574         assemblies here. Fixes #69020.
8575
8576 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8577
8578         * reflection.c (build_compressed_metadata): Fix the previous patch for
8579         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8580         the stack.
8581
8582 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8583
8584         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8585         the cultures is false. Fixes #69090.
8586
8587         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8588         detected by valgrind.
8589         
8590         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8591         TypeResolve multiple times for the same type. Fixes #65577.
8592
8593 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8594
8595         * marshal.c: Avoid using ldftn to call managed functions. It is
8596         much slower than just a call.
8597
8598         * reflection.c (mono_module_get_object): free the basename we
8599         allocate here from glib.
8600         
8601         * reflection.c (ensure_runtime_vtable): make sure to free
8602         overrides.  Also, we were allocating an array of MonoMethod not an
8603         array of MonoMethod*.
8604
8605         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8606
8607         * image.c (mono_image_close): free image->guid here.
8608
8609 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8610
8611         * reflection.c: Fix some spec conformance issues with the PE file
8612         structures so mcs compiled apps run on the Net 2.0 beta.
8613
8614 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8615
8616         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8617         Implement this. Fixes #67264.
8618
8619         * debug-helpers.h debug-helpers.c marshal.c: Move 
8620         mono_find_method_by_name to debug-helpers.c.
8621
8622 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8623
8624         * object.c (mono_release_type_locks): type_initialization_hash is
8625         a GHashTable.
8626
8627         * reflection.c object.c object-internals.h: Fix warnings.
8628
8629         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8630         without accessors. Fixes #61561.
8631
8632         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8633         application base from the root domain if not set. Fixes #65641.
8634         (mono_runtime_init): Fix warning.
8635
8636 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8637
8638         * appdomain.c: call mono_thread_pool_init.
8639         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8640         of worker threads based on the number of CPUs and the environment
8641         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8642         for non-windows (windows) systems.
8643
8644 2004-10-27  Chris Toshok  <toshok@ximian.com>
8645
8646         * mono-debug-debugger.c (write_class): don't call mono_class_init
8647         here, as even with the check for (!klass->init_pending), we get
8648         into a situation where we're hitting cycles in class
8649         initialization.  Fixes #68816.
8650
8651 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8652
8653         * image.c: Avoid overwriting values in the loaded_images_hash when an
8654         assembly is loaded multiple times. Fixes #61152.
8655
8656         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8657         so multiple satellite assemblies for the same name can be loaded.
8658         Fixes #68259.
8659
8660         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8661         not NULL.
8662
8663         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8664         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8665
8666         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8667         pending finalizers are not invoked after the appdomain has been 
8668         unloaded. Fixes #67862.
8669
8670 2004-10-22  Martin Baulig  <martin@ximian.com>
8671
8672         * mono-debug-debugger.c
8673         (mono_debugger_runtime_invoke): Don't box valuetypes.
8674
8675 2004-10-22  Chris Toshok  <toshok@ximian.com>
8676
8677         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8678         don't hide private methods.
8679
8680 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8681
8682         * icall.c: Allows the runtime to "share" (when known) the public key
8683         token of an assembly. This avoid the need to recalculate the token 
8684         (from the public key) in managed code.
8685
8686 2004-10-21  Chris Toshok  <toshok@ximian.com>
8687
8688         * debug-helpers.c (append_class_name): argh, revert last patch.
8689         
8690 2004-10-21  Chris Toshok  <toshok@ximian.com>
8691
8692         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8693         not '/', so that it matches what the debugger uses to look up
8694         methods.
8695
8696 2004-10-21  Martin Baulig  <martin@ximian.com>
8697
8698         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8699         public method; this is called each time an exception is thrown and
8700         allows the debugger to use exception catch points.
8701
8702 2004-10-21  Martin Baulig  <martin@ximian.com>
8703
8704         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8705         the stack pointer and the exception object in some struct and pass
8706         that to the debugger.
8707
8708 2004-10-21  Chris Toshok  <toshok@ximian.com>
8709
8710         * mono-debug-debugger.c (do_write_class): add instance/static
8711         event support.  We don't expose "raise" or "other" yet.
8712         (event_is_static): new method.
8713
8714 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8715
8716         * mono-debug-debugger.c
8717         (mono_debugger_handle_exception): Remove
8718         bogus return value for fussy compilers.
8719
8720 2004-10-20  Martin Baulig  <martin@ximian.com>
8721
8722         * mono-debug-debugger.c
8723         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8724         (mono_debugger_handled_exception): Likewise.
8725
8726 2004-10-20  Martin Baulig  <martin@ximian.com>
8727
8728         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8729         MONO_DEBUGGER_EVENT_EXCEPTION.
8730
8731         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8732         public function to send the debugger a notification for an
8733         exception and inform it about a catch/finally clause.
8734
8735 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8736
8737         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8738         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8739         fix 2.95 build. 
8740
8741         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8742
8743 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8744
8745         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8746         marshalled as [In,Out]. Fixes #58325.
8747
8748 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8749
8750         * reflection.c (mono_method_body_get_object): Implement some fields.
8751
8752 2004-10-12  Martin Baulig  <martin@ximian.com>
8753
8754         * reflection.c (mono_reflection_bind_generic_parameters): Small
8755         fix, correctly retrieve our parent from a generic instance.
8756
8757 2004-10-12  Martin Baulig  <martin@ximian.com>
8758
8759         * metadata.c (mono_metadata_generic_param_equal): We always have
8760         an owner.
8761
8762         * class.c
8763         (mono_class_from_generic_parameter): We need to have an owner.
8764         (my_mono_class_from_generic_parameter): Likewise.
8765
8766         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8767         mono_reflection_create_generic_class() and added a new
8768         mono_reflection_setup_generic_class().  
8769         (mono_reflection_initialize_generic_param): If we're a nested
8770         generic type and inherited from the containing class, set our
8771         owner to the outer class.
8772
8773 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8774
8775         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8776
8777         * reflection.c (mono_method_body_get_object): New function to create
8778         a MethodBody object.
8779
8780         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8781
8782 2004-10-11  Martin Baulig  <martin@ximian.com>
8783
8784         * metadata.c (_mono_metadata_type_equal): Renamed to
8785         do_mono_metadata_type_equal() and made static.
8786
8787 2004-10-11  Martin Baulig  <martin@ximian.com>
8788
8789         * appdomain.c: Bump corlib version number to 28.
8790
8791 2004-10-10  Martin Baulig  <martin@ximian.com>
8792
8793         * class-internals.h
8794         (MonoGenericInst): Added `MonoGenericContainer *container'.
8795         (MonoGenericMethod): Likewise.
8796         (MonoGenericContext): Likewise.
8797         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8798
8799         * metadata.c
8800         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8801         (do_mono_metadata_parse_generic_inst): Likewise.
8802         (mono_metadata_parse_type_full): New public method.  This is the actual
8803         mono_metadata_parse_type() implementation - with an additional
8804         `MonoGenericContainer *' argument.
8805         (mono_metadata_parse_array_full): Likewise.
8806         (mono_metadata_parse_signature_full): Likewise.
8807         (mono_metadata_parse_method_signature_full): Likewise.
8808         (mono_metadata_parse_mh_full): Likewise.
8809         (mono_type_create_from_typespec): Likewise.
8810         (mono_metadata_interfaces_from_typedef_full): New public method;
8811         this is similar to the other _full() methods, but we take a
8812         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8813         (mono_metadata_parse_generic_param): Take an additional
8814         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8815         from that container.
8816         (mono_metadata_generic_param_equal): New static method to compare
8817         two type parameters.
8818         (_mono_metadata_type_equal): New static method; takes an
8819         additional `gboolean signature_only' argument - if true, we don't
8820         compare the owners of generic parameters.
8821         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8822         with a TRUE argument - do a signature-only comparision.
8823
8824         * loader.c: Use the new _full() methods and pass the
8825         MonoGenericContainer to them.
8826
8827         * object-internals.h (MonoReflectionTypeBuilder): Added
8828         `MonoGenericContainer *generic_container' field.
8829         (MonoReflectionMethodBuilder): Likewise.
8830
8831 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8832
8833         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8834         case initial images of dynamic assemblies.
8835
8836         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8837
8838         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8839
8840         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8841         length of event->other array.
8842         (typebuilder_setup_events): Ditto.
8843
8844         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8845         'assembly_by_name' and add an 'assemblies' list.
8846
8847         * assembly.h assembly.c: Add a new search hook for determining whenever
8848         an assembly is already loaded. Use this instead of searching in the
8849         loaded_assemblies list.
8850
8851         * domain.c appdomain.c: Implement the new search hook so loaded 
8852         assemblies are now scoped by appdomain. Fixes #67727.
8853
8854 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8855
8856         * threads.c (mono_thread_attach): Initialize synch_lock field so
8857         mono_thread_detach works again.
8858
8859         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8860         'lib' too. Fixes #63130.
8861
8862 2004-10-06  Jackson Harper  <jackson@ximian.com>
8863
8864         * culture-info-tables.h: regenerated.
8865
8866 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8867
8868         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8869         implemented by other interfaces in the result. Fixes #65764.
8870         
8871         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8872         Handle unloadable modules without crashing.
8873
8874         * image.c (load_modules): Revert the previous patch since modules must
8875         have a fixed index inside the array.
8876         
8877         * image.c (load_modules): Don't include native modules in the modules
8878         array.
8879
8880 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8881
8882         * reflection.h: Add param_defaults field.
8883
8884         * reflection.c: Add support for parameter defaults in dynamic methods.
8885         Fixes #64595.
8886
8887         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8888         an empty string when a type has no namespace. Fixes #64230.
8889
8890 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8891
8892         * tabledefs.h: Added "internal" security actions to support non-CAS
8893         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8894         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8895
8896 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8897
8898         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8899         constructor of abstract class. Fixes #61689.
8900
8901 2004-10-04  Martin Baulig  <martin@ximian.com>
8902
8903         * class-internals.h (MonoGenericContainer): New type.
8904         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8905         `MonoGenericContainer *generic_container'.
8906         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8907         `MonoGenericContainer *generic_container'.
8908
8909         * metadata.c (mono_metadata_load_generic_params): Return a
8910         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8911         removed the `num' argument.
8912
8913 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8914
8915         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8916         for dynamic images.
8917
8918         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8919         machine fields.
8920
8921         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8922
8923         * reflection.c: Save pe_kind and machine values into the generated
8924         image file.
8925
8926         * appdomain.c: Bump corlib version number.
8927
8928         * object-internals.h: Reorganize layout of LocalBuilder.
8929
8930         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8931         New helper function.
8932
8933         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8934         created MonoType for dynamic types. Fixes #66180.
8935
8936 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8937
8938         * threadpool.c: the ares hashtable needs a critical section around it.
8939         this prevents some nasty segfaults
8940
8941 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8942
8943         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8944         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8945         bug 67324).
8946         
8947 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8948
8949         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8950         
8951 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8952
8953         * image.c: Always canonicalize image file names, to avoid loading
8954         the same assembly twice when referenced using a relative path.
8955
8956 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8957
8958         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8959
8960         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8961
8962         * marshal.c: Fix warnings.
8963
8964 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8965
8966         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8967         attempting to marshal the delegate_trampoline as the method_addr.
8968         This patch has a static hashtable of marshalled delegates so that 
8969         we can map delegate_trampoline addresses back to delegates.  This
8970         allows a delegate passed to managed code to be passed back into native
8971         code.  Fixes #67039
8972
8973 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8974
8975         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8976
8977         * reflection.c (method_encode_code): Align method headers properly.
8978         Fixes #66025.
8979
8980 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8981
8982         * marshal.c: In the runtime invoke wrapper, reset the abort
8983         exception if it is cached. This avoids the automatic rethrowal of 
8984         the exception after the catch of the wrapper. Also check for pending
8985         interruptions before calling the managed method. This is done using
8986         the new method emit_thread_force_interrupt_checkpoint, since the
8987         normal checkpoint method is ignored when running the invoke wrapper.
8988         * object.c: If the abort exception is rethrown, set the abort_exc
8989         field of the thread, so it will be rethrown aftere every catch.
8990         * threadpool.c: Only run an interruption checkpoint if what has been
8991         requested is a stop of the thread (aborts will be ignored).
8992         * threads.c: By default, a thread will now never be interrumped while
8993         running the runtime invoke wrapper (this ensures that runtime_invoke
8994         will always return to the caller if an exception pointer is provided).
8995         There is a new special method mono_thread_force_interruption_checkpoint()
8996         to force an interruption checkpoint even if running a protected
8997         wrapper, which is used by the same runtime invoke wrapper to do a check
8998         at a safe point.
8999
9000 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9001
9002         * object.c, object-internals.h: Implemented mono_release_type_locks,
9003         which releases the cctor locks held by a thread.
9004         * threads.c, threads.h: In thread_cleanup, release cctor locks held
9005         by a thread. Added mono_thread_exit() method to be used to safely stop
9006         a thread.
9007
9008 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9009
9010         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9011         Move null check before dereference.  Avoid indexing beyond the end
9012         of the 'modules' array.
9013
9014 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9015
9016         * metadata-internals.h (MonoImage): Add module_count field.
9017         * image.c (load_modules): Set image->module_count.
9018         (mono_image_load_file_for_image): Use image->module_count.
9019         * reflection.c (mono_image_load_module): Append to image->modules array 
9020         of dynamic assembly.
9021         (mono_module_get_object): Fix loop to actually increment index.
9022         Use image->module_count.
9023         * assembly.c (mono_assembly_load_references): Use image->module_count.
9024         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9025         Likewise.
9026
9027 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9028
9029         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
9030         Avoid assert on generic types.
9031
9032 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
9033
9034         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
9035
9036         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
9037
9038         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
9039         function to convert a MarshalSpec structure to its managed counterpart.
9040
9041         * reflection.c: Fix warnings.
9042         
9043         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
9044         field.
9045
9046         * icall.c (mono_create_icall_signature): Fix build.
9047
9048 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
9049
9050         * icall.c: Add MakePointType icall.
9051
9052         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
9053         warnings.
9054
9055 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9056
9057         * threadpool.c: reuse allocated slots in the queue.
9058
9059 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
9060
9061         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
9062
9063         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
9064
9065         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
9066         previous change.
9067
9068         * tabledefs.h: Add constants for pinvoke attributes BestFit and
9069         ThrowOnUnmappableChar.
9070
9071         * icall.c (ves_icall_Type_GetPacking): New icall.
9072
9073 2004-09-24  Martin Baulig  <martin@ximian.com>
9074
9075         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
9076
9077 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9078
9079         * appdomain.c:
9080         (mono_domain_set): allow setting a domain that is being unloaded.
9081         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
9082         being unloaded.
9083
9084 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9085
9086         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
9087         the GetCustomAttributes icall.
9088
9089 2004-09-23  Martin Baulig  <martin@ximian.com>
9090
9091         * object-internals.h (MonoReflectionGenericParam): Replaced
9092         'has_ctor_constraint', `has_reference_type' and `has_value_type'
9093         with `guint32 attrs'.
9094
9095 2004-09-23  Martin Baulig  <martin@ximian.com>
9096
9097         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9098
9099 2004-09-23  Martin Baulig  <martin@ximian.com>
9100
9101         * object-internals.h (GenericParameterAttributes): New enum.
9102
9103 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9104
9105         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9106         
9107         * class.c (init_events): Fill out event->other field.
9108
9109         * class.c: Fix warnings.
9110
9111         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9112
9113 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9114
9115         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9116         walk which doesn't supply the IL offset.
9117
9118 2004-09-22  Martin Baulig  <martin@ximian.com>
9119
9120         * reflection.c (mono_reflection_setup_internal_class): If we're
9121         System.ValueType, System.Object or System.Enum, set
9122         `klass->instance_size' and create the vtable.
9123         (mono_reflection_create_internal_class): If we're an enum type,
9124         get the base class from our current corlib.
9125
9126 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
9127
9128         * reflection.h (MonoResolveTokenError): New type.
9129
9130         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9131         icall.
9132
9133         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9134
9135 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9136
9137         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9138         Support also calling constructors, but only for already allocated objects.
9139
9140 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9141
9142         * reflection.c (type_get_qualified_name): If the klass is null
9143         return the typename to avoid a NullRefEx.
9144         (encode_cattr_value): Get the qualified name of the boxed type,
9145         not the underlying enumtype.  Fixes #62984.
9146
9147 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9148
9149         * marshal.c: Fix problems with previous checkin.
9150
9151 2004-09-21    <vargaz@freemail.hu>
9152
9153         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9154         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9155
9156         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9157
9158 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9159
9160         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9161         should only return a type for pointers, arrays, and passbyref types.
9162         Fixes bug #63841.
9163
9164 2004-09-21  Martin Baulig  <martin@ximian.com>
9165
9166         * domain.c (mono_debugger_check_runtime_version): New public
9167         function.
9168
9169         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9170
9171 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9172
9173         * reflection.c: Added missing sort to the declarative security 
9174         attributes table. MS implementation stops seeing the attributes if the
9175         token number regress in the table (as shown by ildasm and permview).
9176
9177 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9178
9179         * object-internals.h (MonoReflectionModule): Add 'token' field.
9180         
9181         * reflection.c (mono_reflection_get_token): Add support for Module
9182         and Assembly.
9183         (mono_module_get_object): Set 'token' field.
9184         (mono_module_file_get_object): Set 'token' field.
9185
9186         * icall.c: Add new Assembly and Module icalls.
9187
9188         * appdomain.c: Bump corlib version.
9189
9190 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9191
9192         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9193         tokens of metadata objects.
9194
9195         * reflection.h reflection.c (mono_reflection_get_token): New function
9196         to obtain the token of a metadata object.
9197
9198         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9199
9200 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9201
9202         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9203         
9204         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9205
9206 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9207
9208         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9209         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9210         AssemblyBuilder to access the permissions set in the class lib.
9211         * reflection.c: Added security attributes encoding step in 
9212         mono_image_build_metadata.
9213         * tabledefs.h: Added new security actions defined in 2.0:
9214         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9215
9216 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9217
9218         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9219         macro parameter.
9220
9221 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9222  
9223         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9224           finalized. There where random SIGSEVs at program termination, when
9225           an object being finalized was trying to do a string comparison and
9226           the current culture was already finalized.
9227  
9228 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9229
9230         * threads.c: call thread_cleanup before finishing the thread if we get
9231         there.
9232
9233 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9234
9235         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9236         assemblies from the parent. Fixes #65665.
9237
9238 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9239
9240         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9241         modifiers.
9242
9243 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9244
9245         * reflection.h: add prototype for mono_get_dbnull_object
9246         * reflection.c: add prototypes for get_default_param_value_blobs 
9247         and mono_get_object_from_blob for fussier compilers
9248
9249 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9250  
9251         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9252         false deadlock checks in class initialization.
9253  
9254 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9255
9256         * image.c (mono_image_addref): Fix comment.
9257
9258         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9259         possible.
9260
9261 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9262
9263         * reflection.c (mono_param_get_objects): Modified to return
9264         ParameterInfo.DefaultValue object.
9265
9266         (get_default_param_value_blobs):
9267         (mono_get_object_from_blob):
9268         (mono_get_dbnull_object): New helper routines. 
9269
9270         * object.c (mono_get_constant_value_from_blob): New helper routine
9271         carved out from get_default_field_value ()
9272
9273         * object-internals.h (mono_get_constant_value_from_blob): Added
9274         function declaration.
9275
9276 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9277
9278         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9279         referenced assemblies. Fixes #62135.
9280
9281         * exception.h exception.c (mono_get_exception_file_not_found2): New
9282         helper function.
9283
9284 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9285
9286         * class.h class.c: Add mono_type_get_underlying_type ().
9287
9288 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9289
9290         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9291         Fix GetTypes() to support dynamically created assemblies.
9292
9293 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9294
9295         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9296         
9297         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9298         previous patch.
9299
9300         * reflection.h reflection.c loader.c: Allow dynamic construction of
9301         pinvoke methods. Fixes #65571.
9302         
9303         * reflection.c (mono_reflection_get_type): Revert previous change since
9304         it causes regressions.
9305
9306 2004-09-08  Martin Baulig  <martin@ximian.com>
9307
9308         * class.c (class_compute_field_layout): Don't call
9309         mono_class_layout_fields() for open generic instances.
9310
9311 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9312         * threads.c appdomain.c: fix typo in GC macro
9313
9314 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9315
9316         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9317         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9318
9319 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9320
9321         * image.c (mono_image_close): Applied patch from 
9322         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9323         assembly is loaded multiple times from data.
9324         
9325         * image.c (mono_image_open): Fix warning.
9326
9327 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9328
9329         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9330         once. Fixes #58334.
9331         
9332         * reflection.c (mono_reflection_create_runtime_class): Initialize
9333         klass->nested_classes. Fixes #61224.
9334
9335 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9336
9337         * threads.c: sched_yield() on exit, to allow threads to quit.
9338
9339 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9340
9341         * object.c (mono_unhandled_exception): Remove leftover debug code.
9342
9343 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9344
9345         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9346
9347 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9348
9349         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9350         
9351         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9352
9353 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9354
9355         * marshal.c (emit_marshal_array): Null terminate string arrays.
9356         
9357         * marshal.c (raise_auto_layout_exception): Fix warning.
9358
9359         * reflection.c (mono_param_get_objects): Initialize the default value
9360         with DBNull.Value, not null. Fixes #62123.
9361
9362 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9363
9364         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9365         throw an exception with a cute explanation.
9366
9367 2004-09-06  Dick Porter  <dick@ximian.com>
9368
9369         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9370         Close the new process's thread handle, as we don't use it.  The
9371         handle stays around forever otherwise.
9372
9373 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9374
9375         * object.c (arith_overflow): Fix warning.
9376
9377         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9378         calling conventions in method refs. Fixes #65352.
9379
9380         * reflection.c: Fix warnings.
9381
9382 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9383
9384         * icall.c: Add a new icall for Array.Clear
9385
9386 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9387
9388         * object.c: When allocating an array, we have to throw
9389         an overflow exception if any of the lengths are < 0.
9390
9391 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9392
9393         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9394         properly. Also move implementation of string array marshalling to 
9395         managed code. Fixes #42316.
9396
9397 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9398
9399         * assembly.c: provide more information when loading an assembly fails.
9400
9401 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9402
9403         * filewatcher.c: don't expect the development fam package to be
9404         installed.
9405
9406 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9407
9408         * marshal.c: Make a copy of the signature cookie since it will be
9409         freed by the caller.
9410         
9411         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9412
9413         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9414
9415         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9416         marshal specs.
9417
9418         * marshal.c: More refactoring.
9419         
9420         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9421         smaller functions.
9422
9423 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9424
9425         * object.c: In mono_message_invoke, fill the output parameter array after
9426           calling the managed method (it was done before the call). This fixes
9427           bug #59299.
9428
9429 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9430
9431         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9432         as well.
9433
9434 2004-09-02  Martin Baulig  <martin@ximian.com>
9435
9436         * class.c (mono_class_instance_size): Don't allow generic type
9437         definitions or open generic instances.
9438         (mono_class_array_element_size): If we're a value type, call
9439         mono_class_instance_size() on the original class.
9440
9441         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9442         handle generic instances.
9443
9444         * mono-debug-debugger.c (write_type): Handle generic instances
9445         like classes.
9446
9447 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9448
9449         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9450         the allocation request fails. Fixes #65089.
9451
9452         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9453         
9454         * object.c (mono_runtime_free_method): New function to free a dynamic
9455         method.
9456
9457         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9458         delegate trampoline.
9459
9460         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9461         with hasthis as dynamic,
9462
9463         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9464
9465         * domain.c (mono_jit_info_table_remove): New function to remove an
9466         entry from the jit info table.
9467
9468         * class-internals.h (MonoMethod): Add 'dynamic' field.
9469
9470         * loader.c: Fix warnings.
9471
9472 2004-09-01  Martin Baulig  <martin@ximian.com>
9473
9474         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9475         instead of mono_debugger_lock() because the latter one is a no-op
9476         unless running in the debugger.
9477
9478 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9479
9480         * class.c (class_compute_field_layout): Classes with auto-layout or
9481         reference fields are not blittable.
9482         
9483 2004-09-01  Dick Porter  <dick@ximian.com>
9484
9485         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9486         mono_image_get_filename() to get the assembly location.
9487
9488         * icall.c:
9489         * metadata.h: Fix compile warnings
9490
9491 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9492
9493         * class.c (class_compute_field_layout): System.Object is blittable.
9494
9495         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9496         as in/out. Fixes #59909.
9497
9498 2004-09-01  Martin Baulig  <martin@ximian.com>
9499
9500         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9501         mono_metadata_generic_inst_is_valuetype() if we're a generic
9502         instance to check whether our underlying type is a reference type.
9503
9504 2004-09-01  Martin Baulig  <martin@ximian.com>
9505
9506         * metadata.c (mono_type_size): If we're a generic instance, call
9507         mono_class_value_size() for value types.
9508
9509 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9510
9511         * marshal.c: Implement more custom marshalling functionality. Fixes
9512         #64915.
9513
9514 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9515
9516         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9517
9518 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9519
9520         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9521
9522         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9523
9524         * icall.c: Fix some warnings.
9525
9526         * threads.c (abort_appdomain_thread): Fix unref errors.
9527         (mono_thread_current): Fix THREAD_DEBUG define.
9528
9529 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9530
9531         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9532
9533         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9534
9535 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9536
9537         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9538         string arrays.
9539
9540 2004-08-28  Martin Baulig  <martin@ximian.com>
9541
9542         * metadata.c
9543         (mono_metadata_generic_inst_is_valuetype): New public function.
9544
9545         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9546         mono_metadata_generic_inst_is_valuetype() if we're a generic
9547         instance to check whether our underlying type is a valuetype.
9548
9549 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9550
9551         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9552         #63768.
9553
9554 2004-08-25  Martin Baulig  <martin@ximian.com>
9555
9556         * loader.c (mono_get_method_from_token): Abstract methods can also
9557         be generic and thus have type parameters.
9558
9559         * metadata-internals.h
9560         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9561
9562         * reflection.c (mono_image_get_generic_param_info): Don't create a
9563         metadata row, just add an entry to the `gen_params' array.
9564         (build_compressed_metadata): Sort the `gen_params' array and then
9565         actually create the metadata.
9566
9567 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9568
9569         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9570
9571 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9572
9573         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9574
9575 2004-08-24  Martin Baulig  <martin@ximian.com>
9576
9577         * class.cs (mono_class_is_subclass_of): Like an interface, a
9578         generic instance also derives from System.Object.
9579
9580 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9581
9582         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9583         custom modifiers to be in any order. Fixes #61990.
9584
9585 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9586
9587         * object.c: Register mono_object_new_fast icall.
9588         
9589         * object.c (mono_class_get_allocation_ftn): Return to calling
9590         mono_object_new_fast, since it seems faster to compute the object 
9591         size in unmanaged code than passing it as a parameter.
9592
9593         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9594
9595         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9596         this function with Boehm as the oom handler, so we don't have to check
9597         the result of GC_malloc.
9598
9599         * object.c: Remove checks for oom.
9600
9601         * object.h object.c (mono_class_get_allocation_ftn): New function to
9602         return the icall which can be used to allocate an instance of a given
9603         class. 
9604
9605         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9606
9607         * class-internals.h: Add 'enabled' field.
9608
9609 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9610
9611         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9612
9613 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9614         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9615         value 0x0010.
9616
9617 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9618
9619         * appdomain.c: use the Tls function for appdomain too,
9620         at Zoltan's request. Actually return in mono_context_get
9621
9622         * appdomain.c, profiler.c, threads.c: use __thread
9623
9624 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9625
9626         * appdomain.c threads.c: Call GC_CreateThread on windows.
9627
9628         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9629         multiple libraries since this don't work on windows.
9630
9631 2004-08-18  Martin Baulig  <martin@ximian.com>
9632
9633         * class-internals.h
9634         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9635         MonoMethodHeader.
9636
9637         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9638         MonoMethodNormal since we also need it for abstract and interface
9639         methods.
9640
9641         * reflection.c
9642         (build_compressed_metadata): Sort the GenericParam table.
9643         (mono_image_create_token): Added `gboolean create_methodspec'
9644         argument; this is false when generating a MethodImpl token.
9645         (reflection_methodbuilder_to_mono_method): Abstract and interface
9646         methods may also have generic parameters.
9647
9648 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9649
9650         * appdomain.c: thread local alloc
9651
9652 2004-08-17  Martin Baulig  <martin@ximian.com>
9653
9654         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9655
9656         * icall.c
9657         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9658         argument.
9659
9660         * class.c (mono_type_get_full_name): New public function.
9661         (mono_type_get_name): Don't include the type arguments.
9662
9663 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9664
9665         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9666         for inclusion into the mono executable.
9667
9668 2004-08-16  Martin Baulig  <martin@ximian.com>
9669
9670         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9671         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9672
9673 2004-08-14  Martin Baulig  <martin@ximian.com>
9674
9675         * class.c (dup_type): Also copy the `byref' field.
9676
9677 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9678
9679         * reflection.c (create_dynamic_mono_image): Revert the last change 
9680         since it breaks bootstrap.
9681
9682 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9683
9684         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9685
9686         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9687         not free them with g_free.
9688
9689 2004-08-11  Martin Baulig  <martin@ximian.com>
9690
9691         * reflection.c (mono_reflection_setup_internal_class): Also call
9692         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9693
9694 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9695
9696         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9697         called during default (first) AppDomain creation. Keep track of
9698         Evidence when loading assemblies.
9699
9700 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9701
9702         * opcodes.c, opcodes.h: reduce runtime relocations.
9703
9704 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9705
9706         * culture-info.h, locales.c: fixes and chages to sue the new
9707         optimized format of the locale data.
9708         * culture-info-tables.h: regenerated.
9709
9710 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9711         
9712         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9713
9714 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9715
9716         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9717         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9718         * domain-internals.h: icall declaration.
9719         * icall.c: icall registration.
9720         * object-internals.h: New fields in MonoAssembly for CAS.
9721
9722 2004-08-05  Duncan Mak  <duncan@ximian.com>
9723
9724         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9725         CEE_LDELEM_ANY.
9726
9727 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9728
9729         * reflection.c: fix to deal with object[] arrays in custom ctors
9730         (bug #62550).
9731
9732 2004-08-05  Martin Baulig  <martin@ximian.com>
9733
9734         * class.c (mono_class_array_element_size): Added support for
9735         generic instances and correctly handle "recursive" types.
9736
9737 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9738
9739         * assembly.c: Fix warnings.
9740
9741 2004-08-04  Martin Baulig  <martin@ximian.com>
9742
9743         * class.c
9744         (mono_type_get_name_recurse): Added `gboolean include_arity'
9745         argument specifying whether or not we should include the generic
9746         arity in the type name.
9747         (_mono_type_get_name): New static function.
9748         (mono_class_setup_vtable): If we're a generic instance, don't
9749         include the generic arity in the names of explicit method
9750         implementations.        
9751
9752 2004-08-03  Martin Baulig  <martin@ximian.com>
9753
9754         * class.c (mono_type_get_name_recurse): Enclose the generic type
9755         arguments in `<', '>'.
9756
9757 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9758
9759         * gc.c: make GC warning messages use the trace API, they are just
9760         noise to most of the users.
9761
9762 2004-08-03  Martin Baulig  <martin@ximian.com>
9763
9764         * debug-mono-symfile.c (read_string): Correctly read the string.
9765
9766 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9767
9768         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9769         
9770         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9771         icalls.
9772         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9773
9774 2004-07-30  Martin Baulig  <martin@ximian.com>
9775
9776         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9777         Reflect latest symbol writer changes.   
9778
9779 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9780
9781         * object.c: always create an object if null is passed
9782         to Invoke() where a valuetype is expected.
9783
9784 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9785
9786         * marshal.c (mono_marshal_init): make managed
9787         signatures match native ones better for 64bits.
9788
9789 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9790
9791         * appdomain.c: hack to build correctly the private bin path on windows.
9792         Fixes bug #61991.
9793
9794 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9795
9796         * assembly.c: Load mscorlib from the correct framework directory
9797           (mono/<version>/mscorlib.dll).
9798         * appdomain.h: Added prototypes for new functions.
9799         * internals.h: Added some prototypes.
9800         * domain.c: When initializing the runtime, get from the executable and
9801           the configuration files the runtime version that the app supports.
9802           Added support methods for reading app.exe.config. Added list of versions
9803           supported by the JIT. Added two new methods: mono_init_from_assembly,
9804           which initializes the runtime and determines the required version from
9805           the provided exe file, and mono_init_version, which initializes
9806           the runtime using the provided version.
9807         * icall.c: Get machine.config from version-specific directory.
9808         * reflection.c: When generating an image, embed the version number
9809           of the current runtime.
9810
9811 2004-07-28  Dick Porter  <dick@ximian.com>
9812
9813         * socket-io.c
9814         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9815         returned sockaddr size before creating the remote address object.
9816         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9817         61608.
9818
9819 2004-07-28  Dick Porter  <dick@ximian.com>
9820
9821         * locales.c (string_invariant_compare_char): Fix invariant char
9822         compares between upper and lower cases.  Fixes bug 61458.
9823
9824 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9825         
9826         * marshal.c: actually cache stelem.ref wrappers.
9827         
9828 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9829
9830         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9831         sections and remove the mono_cli_rva_map () function.
9832
9833 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9834
9835         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9836         by Geoff Norton (<gnorton@customerdna.com>).
9837
9838 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9839
9840         * class.c: fix class loads for pointer types (typeof(int) !=
9841         typeof(int*)).
9842
9843 2004-07-27  Martin Baulig  <martin@ximian.com>
9844
9845         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9846         reading the debugging information from an external ".mdb" file.
9847
9848 2004-07-24  Martin Baulig  <martin@ximian.com>
9849
9850         * reflection.c (mono_image_get_type_info): Only write a class
9851         layout entry if we actually have a size or a packing size.
9852
9853 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9854
9855         * reflection.c (type_get_fully_qualified_name): 
9856         insert cast to get type checking of ?: with non-gcc compilers
9857
9858 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9859
9860         * rand.c: use g_getenv for both lookups of
9861         MONO_EGD_SOCKET
9862
9863 2004-07-17  Martin Baulig  <martin@ximian.com>
9864
9865         * reflection.c (mono_reflection_bind_generic_method_parameters):
9866         Set `gmethod->reflection_info'.
9867
9868 2004-07-17  Martin Baulig  <martin@ximian.com>
9869
9870         * class.c (mono_class_create_from_typedef): Insert the newly
9871         created class into the hash table before computing the interfaces
9872         since we could be called recursively.
9873
9874 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9875
9876         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9877         function to implement stelem.ref in managed code
9878         * class-internals.h, debug-helpers.c: a new wrapper type
9879         for the above.
9880
9881 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9882
9883         * gc.c: allow GC handles to work even when no GC is compiled in.
9884         Fix part of bug #61134 (GetAddrOfPinnedObject).
9885
9886 2004-07-13  Peter Williams  <peter@newton.cx>
9887  
9888         * process.c (complete_path): Make sure we don't attempt to execute
9889         directories.
9890  
9891 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9892
9893         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9894           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9895           and will add/subtract the hour if needed
9896
9897 2004-07-12  Martin Baulig  <martin@ximian.com>
9898
9899         * reflection.c (mono_field_get_object): If we have
9900         `field->generic_info', take the attributes from
9901         `field->generic_info->generic_type'.    
9902
9903 2004-07-12  Martin Baulig  <martin@ximian.com>
9904
9905         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9906         This function must be called before initializing the runtime.
9907         (mono_debug_init_1): New function; call this after initializing
9908         the runtime, but before loading the assembly.  It tells the
9909         debugger to load corlib and the builtin types.
9910
9911         * mono-debug-debugger.c: Did some larger changes in the debugging
9912         code; support recursive class declarations, make sure we actually
9913         add all classes.
9914
9915 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9916
9917         * debug-helpers.c: undo my previous patch and fixed the real issue in
9918         ../mini/exceptions-x86.c
9919
9920 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9921
9922         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9923         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9924         called from other .cctors.
9925
9926 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9927
9928         * loader.c: Removed the mono_loader_wine_init hack now that we are
9929         doing a managed version of Windows.Forms.
9930
9931 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9932
9933         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9934         threadpool.c, threads.c: remove static data from rootset.
9935
9936 2004-07-09  Dick Porter  <dick@ximian.com>
9937
9938         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9939         Don't do any more processing if the matched length was 0.  It was
9940         increasing the size of the string before.  Fixes bug 61167.
9941
9942 2004-07-09  Dick Porter  <dick@ximian.com>
9943
9944         * socket-io.h:
9945         * socket-io.c
9946         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9947         Add support for SO_PEERCRED if its available.
9948
9949 2004-07-09  Peter Bartok <pbartok@novell.com>
9950         * loader.c: winelib.exe.so error message is now only displayed if
9951         MONO_DEBUG is set. To help us avoid questions when people are trying
9952         out the new Managed.Windows.Forms.
9953
9954 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9955
9956         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9957         for isinst and castclass wrappers.
9958
9959         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9960         to libmetadata from the JIT, so they could be used by the marshalling
9961         code and the interpreter.
9962
9963         * marshal.c: Register marshalling related JIT icalls here instead of
9964         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9965         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9966
9967         * metadata.h: Remove unneeded marshalling conversions.
9968
9969         * opcodes.c: Update for new opcodes.
9970         
9971 2004-07-08  Martin Baulig  <martin@ximian.com>
9972
9973         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9974         (mono_debug_get_domain_data): Make this function static.
9975
9976 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9977
9978         * gc.c, object.h: add nice GC handle API for embedders.
9979
9980 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9981
9982         * reflection.c: more changes for the new api
9983
9984         * object.c: When we reflect on a field w/ a constant value, it
9985         will not have a memory location, so we must access metadata. Also,
9986         allow easier reading of strings so that we can read them from
9987         the constant data.
9988
9989         * class.c (mono_class_layout_fields): no need for literal fields here.
9990
9991         * class-internals.h: api changes for const fields
9992
9993         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9994
9995 2004-07-06  Martin Baulig  <martin@ximian.com>
9996
9997         * mono-debug.h: Increment version number to 44.
9998
9999         * mono-debug.c (mono_debug_add_wrapper): The second argument is
10000         now a gpointer, rewrote this whole method.
10001
10002         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
10003         function.  Add information about the wrapper in a new "misc table".
10004
10005         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
10006         for the new misc table.
10007
10008 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
10009
10010         * metadata-internals.h image.c: Add a cache for helper signatures.
10011
10012         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
10013
10014 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
10015
10016         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
10017         delegates from a delegate. Fixes #61033.
10018         
10019         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
10020         marshalling of stringbuilder arrays. Fixes #59900.
10021
10022 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
10023
10024         * icall.c: Add EnumBuilder:setup_enum_type icall.
10025
10026 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
10027
10028         * icall.c: Added a new icall for the property version of
10029         OffsetOfStringData.
10030
10031 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
10032
10033         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
10034         it has a constant size across platforms.
10035
10036         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
10037         stack trace.
10038
10039 2004-06-29  Martin Baulig  <martin@ximian.com>
10040
10041         * mono-debug.c (mono_debug_add_method): Protect the whole function
10042         in mono_debugger_lock(), not just parts of it.
10043
10044 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10045
10046         * reflection.c: make sure padding bytes in heaps are zeroed.
10047
10048 2004-06-24  David Waite  <mass@akuma.org>
10049
10050         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
10051         image.c, loader.c, locales.c, marshal.c, metadata.c,
10052         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
10053         string-icalls.c, threads.c: change to C90-style comments from C99 /
10054         C++ -style
10055
10056 2004-06-24  Dick Porter  <dick@ximian.com>
10057
10058         * threads.c
10059         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
10060         return createdNew.  Fixes bug 60412.
10061
10062         * threads-types.h: 
10063         * icall.c: Add createdNew parameter to CreateMutex icall
10064
10065 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10066
10067         * reflection.c, object-internals.h: save default value in params.
10068
10069 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10070
10071         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
10072         no need to build a new path combining that with the application base.
10073         Fixes bug #60442.
10074
10075 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
10076
10077         * reflection.c: fixed minor standard compliance issues.
10078
10079 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10080
10081         * reflection.c: fixed issue with encoding some custom attributes
10082         (arrays in properties and fields, bug #60411).
10083
10084 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10085
10086         * reflection.c: fix start address when copying the public key token.
10087
10088 2004-06-23  Martin Baulig  <martin@ximian.com>
10089
10090         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10091         the `exc' object in a static object to put it into the GC's root set.
10092
10093 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10094
10095         * reflection.c: make mono_reflection_setup_internal_class ()
10096         callable a second time to setup a new parent class.
10097
10098 2004-06-23  Dick Porter  <dick@ximian.com>
10099
10100         * threads.c: Check for WAIT_IO_COMPLETION return values.
10101
10102 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
10103
10104         * appdomain.c: Removed the g_free on the public key token. Now copy 
10105         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10106         * assembly.c: Added public key token string value when loading 
10107         assemblies. Fix bug #60439.
10108         * icall.c: Added missing informations (like public key) in 
10109         GetReferencedAssemblies. Fix #60519.
10110         * image.h: Changed definition for public key token from const char*
10111         public_tok_value to guchar public_key_token [17];
10112         * reflection.c: Updated for changes to public key token.
10113
10114 2004-06-22  Lluis Sanchez Gual
10115
10116         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
10117         for the field in base classes.
10118
10119 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10120
10121         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10122         mark headers as not supported, they are installed only for use by the
10123         debugger.
10124
10125 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10126
10127         * *.c, *.h: avoid namespace pollution in public headers.
10128
10129 2004-06-21  Martin Baulig  <martin@ximian.com>
10130
10131         * exception.c (mono_get_exception_security): It's in
10132         "System.Security", not in "System".
10133
10134         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10135         the exception classes.
10136
10137 2004-06-21  Martin Baulig  <martin@ximian.com>
10138
10139         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10140         Protect the exception object from being finalized.
10141
10142 2004-06-21  Martin Baulig  <martin@ximian.com>
10143
10144         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10145         public function.
10146
10147 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10148
10149         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10150         if it was not loaded before. Fix parts of #60439.
10151
10152 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10153
10154         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10155         code that was broken since Ben's change: wrappers are now
10156         dependent on the method signature only again.
10157
10158 2004-06-21  Martin Baulig  <martin@ximian.com>
10159
10160         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10161         added interface support.
10162
10163 2004-06-21  Martin Baulig  <martin@ximian.com>
10164
10165         * class.c (mono_vtable_get_static_field_data): New public method.
10166
10167 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10168
10169         * filewatcher.c : Windows build fix to be compliant with API changes.
10170
10171 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10172
10173         * class.h, class.c: more accessors.
10174         * metadata.h, metadata.c: prepare for hiding MonoType and
10175         MonoMethodSignature: people should use the accessors from now on
10176         outside of the tree.
10177
10178 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10179
10180         * *.c, *.h: more API cleanups.
10181
10182 2004-06-18  Jackson Harper  <jackson@ximian.com>
10183
10184         * assembly.c: Trace loading assemblies.
10185         * loader.c: Trace loading native libraries.
10186         * mono-config.c: Trace loading config files.
10187         
10188 2004-06-18  Dick Porter  <dick@ximian.com>
10189
10190         * locales.c: Tell ICU the lengths of strings, it can cope with
10191         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10192
10193 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10194
10195         * image.c: swapped name/filename;
10196
10197 2004-06-18  Martin Baulig  <martin@ximian.com>
10198
10199         * mono-debug-debugger.c (write_class): Write the parent class at
10200         the end of the header.
10201
10202 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10203
10204         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10205
10206 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10207
10208         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10209         (bundle_obj): New conditional define.
10210         (BUILT_SOURCES): Remove.
10211         ($(bundle_srcs)): Make parallel-make safe.
10212         (libmonoruntime_la_LIBADD): Make unconditional.
10213         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10214         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10215
10216 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10217
10218         * culture-info-tables.h: It was inconsistent with the latest
10219           supp info files.
10220
10221 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10222
10223         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10224         be loaded.
10225
10226         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10227         with gcc 2.95.
10228
10229 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10230
10231         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10232         cleaned up public header threads.h.
10233
10234 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10235
10236         * Makefile.am, *.c, *.h: more API cleanups.
10237
10238 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10239
10240         * Makefile.am: removed monosn from compilation.
10241         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10242         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10243         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10244         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10245         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10246         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10247
10248 2004-06-15  Jackson Harper  <jackson@ximian.com>
10249
10250         * assembly.c: Make locales lower case when searching the GAC for
10251         assemblies. gacutil will always make locales lowercase when
10252         installing so this effectively makes them case insensitive.
10253         
10254 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10255
10256         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10257         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10258           parameter which allows to choose whether the wait can be interrupted or 
10259           not. Also added the method mono_monitor_enter(), which locks the monitor
10260           using an infinite wait and without allowing interruption.
10261           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10262           interrupted.
10263         * object.h: Added new fields in MonoThread. suspend_event holds the event
10264           used to susped/resume the thread. synch_lock is the lock object to use for
10265           modifying the thread state.
10266         * threads.c: Use the new synch_lock object for locking, instead of "this",
10267           which can generate deadlocks.
10268           Moved thread state change in Thread.Sleep and Thread.Join from managed
10269           to unmanaged code. This avoids a deadlock when the thread was suspended
10270           just after acquiring the thread lock.
10271           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10272           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10273           which is not fully implemented in the io-layer.
10274         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10275
10276 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10277
10278         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10279         threads-types.h: more API cleanups.
10280
10281 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10282
10283         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10284         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10285         threadpool.c, threads.c: first pass at the exported API cleanup.
10286
10287 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10288
10289         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10290
10291 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10292
10293         * icall.c: added internalGetHome.
10294
10295 2004-06-14  Dick Porter  <dick@ximian.com>
10296
10297         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10298         possible to return successfully when '.' or '..' were the only
10299         entries in a directory, but were skipped.  The MonoIOStat was not
10300         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10301         Fixes bug 59574.
10302
10303 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10304
10305         * reflection.c: make binaries run on .Net 1.1 by default.
10306
10307 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10308
10309         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10310
10311 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10312
10313         * marshal.c: keep track of struct size with explicit layout
10314         (bug #59979).
10315
10316 2004-06-12  Martin Baulig  <martin@ximian.com>
10317
10318         * mono-debug-debugger.c: Comment out a debugging g_message().
10319
10320 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10321
10322         * reflection.c, reflection.h: do not free custom attrs that are cached.
10323         * icall.c: use braces to make code clearer.
10324
10325 2004-06-11  Martin Baulig  <martin@ximian.com>
10326
10327         * class.h (MonoInflatedField): New type.
10328         (MonoClassField): Replaced `MonoType *generic_type' with
10329         `MonoInflatedField *generic_info'.
10330
10331         * icall.c
10332         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10333
10334 2004-06-11  Martin Baulig  <martin@ximian.com>
10335
10336         * reflection.c (mono_image_create_method_token): Correctly encode
10337         varargs methods.
10338
10339 2004-06-11  Martin Baulig  <martin@ximian.com>
10340
10341         * metadata.c (mono_metadata_parse_method_signature): When parsing
10342         a MethodDef which has VarArgs, also set sentinelpos if we don't
10343         have any parameters.
10344
10345 2004-06-11  Martin Baulig  <martin@ximian.com>
10346
10347         * verify.c (mono_method_verify): In CEE_CALL, use
10348         mono_method_get_signature() to get the method's signature, unless
10349         we're a PInvoke method.
10350
10351 2004-06-10  Jackson Harper  <jackson@ximian.com>
10352
10353         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10354         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10355         logical name as the supplied path is just a prefix to the gac not
10356         the direct path to it.
10357         
10358 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10359
10360         * reflection.c: make the token for a created method match
10361         the token of the MethodBuilder it was created from
10362         (IKVM requires this behaviour now).
10363
10364 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10365
10366         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10367         reflection.c, socket-io.c: leak fixes.
10368
10369 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10370
10371         * icall.c: handle sentinel pos in vararg methods in position different
10372         from 0.
10373
10374 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10375
10376         * culture-info-tables.h: freshly generated.
10377
10378 2004-06-09  Martin Baulig  <martin@ximian.com>
10379
10380         * loader.c (mono_get_method_constrained): Call `mono_class_init
10381         (constrained_class)'.   
10382
10383 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10384
10385         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10386         any methods. Fixes #59629.
10387
10388 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10389
10390         * culture-info-tables.h: reflecting locale-builder updates.
10391
10392 2004-06-08  Dick Porter  <dick@ximian.com>
10393
10394         * object.h:
10395         * locales.c: Fixed compile warnings, including a real bug in
10396         CompareInfo_internal_compare.
10397         
10398 2004-06-08  Dick Porter  <dick@ximian.com>
10399
10400         * locales.c
10401         (ves_icall_System_Globalization_CompareInfo_internal_index):
10402         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10403         Double-check the resuls of usearches, because ICU currently
10404         ignores most of the collator settings here.  Fixes bug 59720.
10405         
10406 2004-06-08  Dick Porter  <dick@ximian.com>
10407
10408         * locales.c
10409         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10410         Fix memory leak and segfault-causing typo.  No idea how this one
10411         lasted so long without being noticed.
10412
10413 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10414
10415         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10416         any methods. Fixes #59629.
10417
10418 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10419
10420         * assembly.c:
10421         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10422         own the critical section before). Removed dead code (that's done
10423         in the preload hook).
10424
10425         (mono_assembly_load_with_partial_name): call the preload hook.
10426
10427 2004-06-08  Martin Baulig  <martin@ximian.com>
10428
10429         * metadata.c (mono_metadata_signature_alloc): Default
10430         `sentinelpos' to -1.
10431
10432         * reflection.c (mono_image_get_array_token): Likewise.
10433
10434 2004-06-08  Martin Baulig  <martin@ximian.com>
10435
10436         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10437
10438         * metadata.c (mono_metadata_parse_method_signature): When parsing
10439         a MethodDef which has VarArgs, set sentinelpos.
10440
10441         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10442         `gint16' since we're using -1 for non-varargs methods.
10443
10444         * reflection.c
10445         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10446         (method_encode_signature): Added varargs support.
10447         (method_builder_encode_signature): Likewise.
10448         (mono_image_get_varargs_method_token): New static method.
10449         (mono_image_create_method_token): New public method; this is
10450         called via an icall instead of mono_image_create_token() when
10451         calling a varargs method.       
10452
10453 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10454
10455         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10456
10457 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10458
10459         * culture-info-tables.h : Reflecting the latest locale-builder that
10460           fixed empty array representation ({} to {0}).
10461
10462 2004-06-07  Jackson Harper  <jackson@ximian.com>
10463
10464         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10465         looking up extra gac paths. This allows MONO_GAC_PATH to act
10466         exactly like a prefix.
10467         
10468 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10469
10470         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10471         type name before modifying it. Fixes #59405.
10472
10473 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10474
10475         * culture-info.h: added fields for "all datetime patterns".
10476         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10477           _construct_datetime_format ()): fill xxx_patterns fields.
10478         * object.h: added fields for "all datetime patterns" to
10479           MonoDateTimeFormatInfo.
10480         * culture-info-tables.h: reflecting locale-builder updates.
10481
10482 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10483
10484         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10485         the event has no add and remove methods. Fixes #59629.
10486
10487 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10488
10489         * object.c: Fixed possible integer overflow when allocating large
10490         strings.
10491
10492 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10493
10494         * culture-info-tables.h: reflecting locale-builder updates.
10495
10496 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10497
10498         * culture-info-tables.h: reflecting locale-builder updates.
10499
10500 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10501
10502         * culture-info-tables.h: reflecting locale-builder updates.
10503
10504 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10505
10506         * threads.c: Made Thread.Sleep abortable.
10507
10508 2004-06-02  Martin Baulig  <martin@ximian.com>
10509
10510         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10511
10512         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10513
10514 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10515
10516         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10517
10518 2004-05-30  Jackson Harper  <jackson@ximian.com>
10519
10520         * reflection.c: Do not hardcode assembly versions or public key
10521         tokens anymore. All of this except the corlib section was dead
10522         code anyways.
10523         
10524 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10525
10526         * object.c (mono_runtime_invoke_array): Automatically create boxed
10527         objects for byref valuetypes if needed. Fixes #59300.
10528         
10529         * object.c (mono_method_return_message_restore): Handle 
10530         MONO_TYPE_OBJECT as well.
10531
10532 2004-05-28  Jackson Harper  <jackson@ximian.com>
10533
10534         * reflection.c: The modified type encoding was causing build
10535         problems. Reverted for now.
10536         
10537 2004-05-28  Jackson Harper  <jackson@ximian.com>
10538
10539         * reflection.c/h: Take an assembly ref so that we dont create
10540         fully qualified names when encoding types in the same assembly as
10541         the custom attribute being emitted.
10542         * appdomain.c: Increment version number.
10543         
10544 2004-05-26  Duncan Mak  <duncan@ximian.com>
10545
10546         * icall.c
10547         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10548         Set the full version number (major, minor, build, revision).
10549
10550 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10551
10552         * marshal.c (emit_struct_conv): increment src/dst after blit
10553         (mono_marshal_get_managed_wrapper,
10554         mono_marshal_get_native_wrapper): make sure we have marshalling
10555         info before marshalling params (info computation affects
10556         blittable)
10557
10558         * class.c (class_compute_field_layout): correctly deal with
10559         blittable
10560         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10561         value types (as per what windows dows by default)
10562         (mono_class_setup_mono_type): System.ValueType is blittable
10563         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10564         blittable
10565
10566         * marshal.c (mono_marshal_load_type_info): flag types  as
10567         non-blittable if the native layout doesn't match the managed
10568         layout
10569
10570 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10571
10572         * appdomain.c: don't add stuff in the private search path that is
10573         above the application base. If application base is not set, there's
10574         no private search path.
10575
10576 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10577
10578         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10579         byref struct arguments in native->managed marshalling.
10580
10581 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10582
10583         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10584         cache methods using signature (special case for methods
10585         that are value type or string class)
10586         
10587         * image.c (mono_image_close): clean up allocated GSList's
10588         in runtime_invoke_cache.
10589
10590 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10591
10592         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10593         there's no MONO_CFG_DIR environment variable defined.
10594
10595 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10596
10597         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10598
10599 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10600
10601         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10602           is interrumped.
10603         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10604           before waiting for it, and call CloseHandle after the wait to unref it.
10605           This will make sure that handles are not disposed too early.
10606
10607 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10608
10609         * appdomain.c:
10610         * appdomain.h:
10611         * icall.c: removed
10612         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10613         needed now.
10614
10615         * object.c: se the application_base only for the domain that runs
10616         Main. Fixes bug #59216,
10617
10618 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10619
10620         * appdomain.c:
10621         * object.c: only the domain in which Main is run have
10622         SetupInformation.ConfigurationFile set, so moved a few lines from
10623         appdomain.c to object.c.
10624
10625 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10626
10627         * appdomain.c: we tried to load [name].(dll|exe), but according
10628         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10629         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10630         There's a test case attached to bug #58922.
10631
10632 2004-05-27  Dick Porter  <dick@ximian.com>
10633
10634         * icall.c:
10635         * file-io.c: Implemented icalls for locking and unlocking regions
10636         in a file.
10637         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10638         FALSE on error (fixes both compiler warning and real bug.)
10639
10640 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10641
10642         * culture-info-tables.h: reflecting locale-builder updates.
10643
10644           (Added missing ChangeLog entry for 05/26)
10645
10646 2004-05-27  Jackson Harper  <jackson@ximian.com>
10647
10648         * locales.c: Fix some cut and paste errors.
10649         
10650 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10651
10652         * mono-config.c: set the correct path for config. directory on windows.
10653
10654 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10655
10656         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10657           on win32.
10658
10659 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10660
10661         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10662         from pinvoke functions.
10663         
10664         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10665
10666 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10667
10668         * culture-info-tables.h: reflecting locale-builder updates.
10669
10670 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10671
10672         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10673         #59086.
10674
10675 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10676
10677         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10678         * icall.c: Modified icalls for RNG.
10679         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10680         Windows (CryptoAPI).
10681
10682 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10683
10684         * locales.c: Fix build.
10685
10686 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10687
10688         * culture-info-tables.h: reflecting locale-builder updates.
10689
10690 2004-05-25  Jackson Harper  <jackson@ximian.com>
10691
10692         * locales.c: When creating the current culture use the $LANGs
10693         specific culture. So DateTimeFormat and NumberFormat entries are created.
10694         
10695 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10696
10697         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10698         a char array as parameter.
10699
10700 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10701
10702         * image.c: In mono_image_open(), always use an absolute path name to
10703           look for already loaded images.
10704
10705 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10706
10707         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10708         missing in the windows build (like older cygwin include files).
10709
10710 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10711
10712         * icall.c: Fixed check for possible integer overflow in Buffer_
10713         BlockCopy icall. Replaced comments style // by /* */.
10714
10715 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10716
10717         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10718         
10719         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10720         check after MONO_VTADDR. Fixes pinvoke2.exe.
10721
10722         * marshal.h marshal.c metadata.h: Add beginnings of support for
10723         ftnptr -> delegate marshalling.
10724
10725 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10726
10727         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10728         * threads.c: Fix warnings.
10729
10730 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10731
10732         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10733         * icall.c: Registered icalls for Suspend and Resume.
10734         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10735           Thread.Abort.
10736         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10737         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10738         * process.c: Use WaitForSingleObjectEx.
10739         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10740           checkpoints.
10741         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10742           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10743           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10744           background threads. Added basic support for Abort in Windows.
10745           Start new threads using a managed delegate invoke wrapper. This wrapper
10746           has an interruption checkpoint that is needed since an interruption
10747           can be requested before the thread leaves the unmanaged code that starts 
10748           the thread.
10749         * marshal.c: Added interruption checkpoint after every native call, and
10750           also before managed calls for wrappers called from unmanaged code to
10751           go into managed code.
10752         * object.h: Added new field in MonoThread to keep track of interruption
10753           requests.
10754
10755 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10756
10757         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10758         calls.
10759
10760 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10761
10762         * appdomain.c:
10763         * assembly.c:
10764         * gc.c:
10765         * locales.c:
10766         * mono-config.c:
10767         * rand.c: getenv -> g_getenv (windows!)
10768
10769         * process.c: complete_path is also used on non-windows platforms.
10770
10771 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10772
10773         * icall.c: new signature for Process_Start.
10774
10775         * process.[ch]: new signature for Process_Start. If we're on windows
10776         and UseShellExecute is false, we have to search for the program by
10777         ourselves if we don't get a full path.
10778
10779 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10780
10781         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10782         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10783
10784 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10785
10786         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10787         Fixes bug #58373.
10788
10789 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10790
10791         * process.c: use double quotes to quote program name and arguments on
10792         windows. Fixes bug #58575.
10793
10794 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10795
10796         * file-io.c: don't return "." and ".." when using windows Find*File.
10797
10798 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10799
10800         * marshal.c: Don't pass wrappers to message init because method 
10801         addressed used to lookup metadata. part of remoting[2|3] fix.
10802
10803 2004-05-15  Jackson Harper  <jackson@ximian.com>
10804
10805         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10806         path is essentially the same as MONO_PATH except that it points to
10807         GACs instead of lib directories.
10808         * loader.h: The user gac is gone so we dont need function to
10809         enable/disable it.
10810         * mono-config.c: user gac option is now gone.
10811         
10812 2004-05-15  Jackson Harper  <jackson@ximian.com>
10813
10814         * culture-info.h: Make defines more consistent, add calendar data
10815         to the culture info table.
10816         * culture-info-tables.h: Add basic calendar data. Basically
10817         everyone gets default gregorian until all the data is
10818         updated.
10819         * locales.c: Use the new consistent defines. Set calendar data for
10820         culture info objects.
10821         * object.h: add a field for calendar data to CultureInfo
10822         
10823 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10824
10825         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10826         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10827         a signature.
10828         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10829         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10830         an extra param that is the pointer of the method to invoke. The IL for
10831         the invoke method is no longer specific to the method, but to the
10832         signature of the method. Thus, we can share the same code for multiple
10833         methods. This reduces the number of methods that have to be compiled.
10834
10835 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10836
10837         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10838
10839         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10840
10841         * icall.c: Optimize Buffer.BlockCopy.
10842
10843 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10844
10845         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10846         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10847         quote). Changed them to "MMMM yyyy".
10848
10849 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10850
10851         * rand.c
10852         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10853
10854 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10855
10856         * reflection.h: Updated after changes to managed structures.
10857
10858         * appdomain.c: Bump corlib version.
10859
10860 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10861
10862         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10863         windows.
10864
10865 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10866
10867         * Makefile.am: link to ../os/libmonoos.la on windows.
10868
10869         * assembly.c:
10870                 -If MONO_DEBUG, warn about non-existing directories in
10871                 MONO_PATH.
10872                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10873                 compile time variable.
10874                 -Removed init_default_path and call mono_set_rootdir from
10875                 libmonoos.a instead (windows only).
10876
10877         * assembly.h: declare mono_assembly_getrootdir().
10878
10879         * domain.c:
10880         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10881
10882         * loader.c: s/getenv/g_getenv/
10883
10884 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10885
10886         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10887
10888         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10889
10890         * metadata.h: Add new marshalling conversions.
10891
10892         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10893         function.
10894
10895         * reflection.c (mono_reflection_get_type): Lookup the type in all
10896         modules of a multi-module assembly. Fixes #58291.
10897
10898 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10899
10900         * threads.c: Before aborting a background, set the StopRequested
10901         state.  This avoids throwing the Abort exception.
10902         In mono_thread_manage, don't continue with the shutdown until all
10903         aborted threads have actually stopped.
10904
10905 2004-05-10  Jackson Harper  <jackson@ximian.com>
10906
10907         * locales.c: Remove the modifier from culture names.
10908         
10909 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10910
10911         * Makefile.am: monosn is not installed any more. It has been deprecated
10912         in favor of sn.
10913
10914 2004-05-07  Jackson Harper  <jackson@ximian.com>
10915
10916         * locales.c
10917         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10918         Fix array construction, add bailout if the length is 0.
10919
10920 2004-05-07  Dick Porter  <dick@ximian.com>
10921
10922         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10923         machine doesn't have a DNS entry.  Patch by Urs Muff
10924         (umuff@quark.com), fixes bug 57928.
10925
10926 2004-05-06  Jackson Harper  <jackson@ximian.com>
10927
10928         * reflection.c: Handle null PublicTokens properly. alloc mem for
10929         assembly names culture so we dont crash when freeing it.
10930         
10931 2004-05-06  Jackson Harper  <jackson@ximian.com>
10932
10933         * assembly.c: Check the usergac when loading with partial names.
10934         
10935 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10936
10937         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10938         does nothing for now (not required for Linux/Windows) but the class
10939         library can call it (and a newer or modified runtime could need it).
10940         * icall.c: Registred icall.
10941
10942 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10943
10944         * loader.c: prints a message on module loading error we set MONO_DEBUG
10945         environment variable.
10946
10947 2004-05-05  Jackson Harper  <jackson@ximian.com>
10948
10949         * appdomain.c: Handle PublicKeyToken=null properly.
10950         
10951 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10952
10953         * environment.c|h: Added icall ves_icall_System_Environment_
10954         GetOSVersionString to get the current OS version as a string.
10955         * icall.c: Registred icall.
10956
10957 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10958
10959         * object.c: in mono_object_get_virtual_method(), take into account that
10960         non-virtual methods don't have a slot in the vtable. Check needed when
10961         the object is a proxy.
10962
10963 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10964
10965         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10966         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10967
10968         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10969
10970         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10971         passed when a valuetype is expected.
10972
10973         * object.c (mono_unhandled_exception): Only set the exit code if the
10974         exception happens in the main thread. Fixes thread5.exe.
10975
10976         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10977         invalid names. Fixes #58047.
10978
10979 2004-05-03  Jackson Harper  <jackson@ximian.com>
10980
10981         * assembly.c: This line was committed accidently and is unneeded.
10982         
10983 2004-05-03  Jackson Harper  <jackson@ximian.com>
10984
10985         * icall.c: Add new icall for Assembly::LoadWithPartialName
10986         * assembly.c/.h: new function that probes the GAC to load partial
10987         assembly names by Paolo Molaro.
10988         
10989 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10990
10991         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10992         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10993         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10994         full type name.
10995
10996 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10997
10998         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10999         * reflection.c: fix bug when parsing a full type name and Version is not
11000         the last thing in the string.
11001
11002 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
11003
11004         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
11005         crashes when it is freed.
11006
11007 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11008
11009         * assembly.c: print the compat warning to stderr.
11010
11011 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
11012
11013         * assembly.c (mono_assembly_load_references): Add a compatibility
11014         hack to run old applications that might be still referencing the
11015         3300-based assemblies, only do this for System.xxx.
11016
11017 2004-05-01  Jackson Harper  <jackson@ximian.com>
11018
11019         * appdomain.c: If the culture is neutral we set it to "".
11020         
11021 2004-04-29  Jackson Harper  <jackson@ximian.com>
11022
11023         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
11024
11025 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
11026  
11027         * string-icalls.c: added low overhead function for copying chars
11028         * icall.c: added needed icall for the above function
11029  
11030 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11031
11032         * icall.c: fix return value of get_global_assembly_cache.  Implemented
11033         Environment.GetLogicalDrives.
11034
11035 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
11036
11037         * rand.c: try and talk to egd or prngd
11038         for random bytes if opening devices fail.
11039
11040 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
11041
11042         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
11043         alignment for the type using the native alignment of its members 
11044         instead of using klass->min_align.
11045
11046         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
11047
11048 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11049
11050         * file-io.c:
11051         * socket-io.c: added check for sys/aio.h.
11052
11053 2004-04-28  Dick Porter  <dick@ximian.com>
11054
11055         * threads.c: Don't abort a thread thats already aborting, when
11056         terminating everything.
11057
11058 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11059
11060         * icall.c: added 2 new async calls for Socket.
11061
11062         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
11063         IO on *nix systems.
11064
11065         * threadpool.c: removed unused variable.
11066
11067 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
11068
11069         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
11070
11071 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11072
11073         * locales.c: put back string_invariant_tolower () and
11074         string_invariant_toupper ().
11075
11076 2004-04-26 David Waite <mass@akuma.org>
11077
11078         * file-io.h:
11079         * socket-io.h:
11080         * threads.h:
11081         * unicode.h: remove comma from end of enumeration declarations
11082
11083 2004-04-26 David Waite <mass@akuma.org>
11084
11085         * debug-mono-symfile.h:
11086         * decimal.c:
11087         * mono_debug.h:
11088         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11089
11090
11091 2004-04-26  Jackson Harper  <jackson@ximian.com>
11092
11093         * appdomain.c: Increment version number.
11094         
11095 2004-04-26  Jackson Harper  <jackson@ximian.com>
11096
11097         * appdomain.c: Set assembly references public token value when
11098         PublicKeyToken is specified, not the hash_value. Free public token
11099         values when free assembly name data. Previously the public key
11100         token was hex decoded, however we are using hex encoded public key
11101         tokens, so this is not neccasary.
11102         * assembly.c: Lookup assemblies in the gac if their public token
11103         value is set. Add function to allow enabling user gac
11104         lookups. Specify whether or not the assembly was loaded from the
11105         GAC. Compare full assembly names when checking the cache for
11106         assemblies (Temporarily disabled see comment in code). Remove
11107         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11108         specifies trace-loader they get extra info to stdout on the
11109         loading of assemblies.
11110         * image.h: Add a field for an assembly references public token
11111         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11112         whether an assembly has been loaded from the GAC.
11113         * image.c: Remove a corlib -> mscorlib name mapping.
11114         * loader.h: Add function to enable/disable the user gac.
11115         * mono-config.c: Check if the usergac is enabled in the config
11116         file.
11117         * icall.c: New icall to determine whether or not an assembly has
11118         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11119         * tabldefs.h: Add constant for assemblyref flag that specifies a
11120         full public key is used instead of a public token.
11121         * reflection.c: Remove mscorlib -> corlib mappings. Set
11122         PublicTokenValue instead of hash value. This value is a hex
11123         string so it does not need to be expanded.
11124
11125 2004-04-26  Martin Baulig  <martin@ximian.com>
11126
11127         * mono-debug-debugger.c (mono_debugger_initialize): Set
11128         `mono_debugger_initialized' before calling mono_debug_lock().
11129
11130 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11131
11132         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11133           InternalToUpper/InternalToLower.
11134         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11135           removed invariant culture shortcut.  This is now done in managed code.
11136         * locales.c: (string_invariant_toupper/tolower) removed.
11137
11138 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11139
11140         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11141         Added Poll internal call.
11142
11143         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11144         call for Poll. Select was too heavy for polling a single socket.
11145
11146         * threadpool.[ch]: added mono_threadpool_cleanup.
11147         * threads.c: use it. Don't use Thread_Abort on windows.
11148
11149 2004-04-23  Martin Baulig  <martin@ximian.com>
11150
11151         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11152
11153 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11154
11155         * icall.c: Registred new icalls for key pair protection and added an
11156         icall for Environment.GetFolderPath on Windows.
11157         * security.c|h: Added new icalls for key pair protection.
11158
11159 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11160
11161         * socket-io.c: don't display the non-supported family warning for known
11162         families. Now this is not displayed on windows when checking support
11163         for IPv4/IPv6.
11164
11165 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11166
11167         * class.c: don't display the layout warning for static fields.
11168
11169 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11170
11171         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11172         * locales.c, locales.h: Added new icalls for culture-specific
11173         Char.ToLower and Char.ToUpper.
11174
11175 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11176
11177         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11178         by David Waite.
11179
11180 2004-04-20  Martin Baulig  <martin@ximian.com>
11181
11182         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11183         of the type name before passing it to mono_reflection_type_from_name().
11184
11185 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11186
11187         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11188         encodings here. Fixes #56965.
11189
11190 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11191
11192         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11193         fix test on strstr result not that I can see anything that
11194         relies on the result.
11195
11196 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11197
11198         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11199         Fixes #57081.
11200
11201         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11202
11203         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11204         function to determine which marshalling to use for strings. Fixes
11205         #56965.
11206
11207         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11208
11209         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11210
11211 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11212
11213         * icall.c: #include mono-config.h
11214
11215 2004-04-15  Jackson Harper  <jackson@ximian.com>
11216
11217         * culture-info-tables.h: Fix date formats for en-US culture.
11218         
11219 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11220
11221         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11222         ThreadPool.SetMinThreads.
11223         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11224         ThreadPool.SetMinThreads.
11225
11226 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11227
11228         * mono-config.c: also load the .config file in the directory
11229         where the assembly was found.
11230
11231 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11232
11233         * assembly.c: load per-assembly config files.
11234         * icall.c: decrapified code to get the config dir and moved to
11235         mono-config.c.
11236         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11237         per-assembly config files. When doing a dll map lookup give precedence
11238         to the per-assembly data.
11239
11240 2004-04-14  Martin Baulig  <martin@ximian.com>
11241
11242         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11243         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11244         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11245
11246         * mono-debugger-debugger.c: While the debugger is locked, remember
11247         whether the symbol tables have changes and send one single
11248         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11249
11250 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11251
11252         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11253
11254         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11255         function.
11256
11257         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11258         account when marshalling string arrays. Fixes #56965.
11259
11260 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11261
11262         * icall.c: Add new icalls mapping for security.
11263         * security.c|h: Add internal calls for WindowsIdentity,
11264         WindowsImpersonationContext and WindowsPrincipal.
11265
11266 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11267
11268         * class.c: Added comment to ensure the System.MonoDummy class
11269         is removed when no longer necessary
11270
11271 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11272
11273         * appdomain.c: Pass arguments to the bootstraping exceptions to
11274         minimize JITed methods at boot
11275
11276         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11277         second string to be null.
11278
11279         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11280         Change the protocol to minimize the JIT methods at startup.  Now
11281         it Returns the internal codepage, if the value of "int_code_page"
11282         is 1 at entry, and we can not compute a suitable code page
11283         number, returns the code page as a string.
11284
11285 2004-04-13  Jackson Harper  <jackson@ximian.com>
11286
11287         * culture-info-tables.h: Fix number of decimal digits for all
11288         english locales.
11289
11290 2004-04-13  Jackson Harper  <jackson@ximian.com>
11291
11292         * icall.c: Clairfy out of sync error message. It is not always
11293         your corlib that is out of sync.
11294
11295 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11296
11297         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11298         properties when only the set accessor is overriden. Fixes #55874.
11299
11300 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11301
11302         * assembly.c (mono_assembly_load_references): Make this thread safe.
11303         Fixes #56327.
11304
11305 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11306
11307         * monosn.c: Add missing initialization calls.
11308
11309 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11310
11311         * locales.c:
11312         ves_icall_System_Globalization_CultureInfo_construct_number_format
11313         Fix g_assert so it compiles on fussier compilers re int/ptr
11314         mismatch
11315
11316 2004-04-08  Dick Porter  <dick@ximian.com>
11317
11318         * socket-io.h:
11319         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11320         53992.  Also rearrange the code so that the internal calls return
11321         an error value and exceptions are thrown from managed code.
11322
11323         * icall.c: Add type info to the socket icalls.
11324
11325 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11326
11327         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11328         owes me a beer.
11329
11330 2004-04-07  Martin Baulig  <martin@ximian.com>
11331
11332         * class.c (mono_class_from_generic_parameter): Don't default
11333         `klass->parent' to `mono_defaults.object_type'.
11334
11335 2004-04-07  Martin Baulig  <martin@ximian.com>
11336
11337         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11338         `param->pklass->reflection_info'.       
11339
11340 2004-04-07  Jackson Harper  <jackson@ximian.com>
11341
11342         * culture-info-tables.h: Fix date separator symbol.
11343         
11344 2004-04-07  Martin Baulig  <martin@ximian.com>
11345
11346         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11347         from System.Type to System.MonoType.
11348
11349 2004-04-07  Martin Baulig  <martin@ximian.com>
11350
11351         * reflection.h
11352         (MonoReflectionGenericParam): Added `has_reference_type' and
11353         `has_value_type' fields.
11354
11355         * reflection.c (mono_image_get_generic_param_info): Encode the
11356         correct flags if we have the `class' or `struct' constraint.
11357
11358 2004-04-07  Martin Baulig  <martin@ximian.com>
11359
11360         * reflection.h
11361         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11362
11363 2004-04-07  Jackson Harper  <jackson@ximian.com>
11364
11365         * appdomain.c: Revert extra patches, just wanted to bump the
11366         version number.
11367         
11368 2004-04-07  Jackson Harper  <jackson@ximian.com>
11369
11370         * Makefile.am: Add culture-info private headers.
11371         * icall.c: Add new icalls for contructing locales.
11372         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11373         * locales.h: Declare new culture info construction methods.
11374         * object.h: Add new fields used to avoid the CultureMap to
11375         MonoCultureInfo.
11376         * culture-info.h: Definition of structs used in the culture info
11377         tables.
11378         * culture-info-tables.h: Autogenerated tables that contain culture
11379         info data. This file was generated with the locale-builder tool.
11380         * appdomain.c: Incement corlib version number.
11381         
11382 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11383
11384         * appdomain.c: (mono_runtime_init) move mono_thread_init
11385         to before mono_object_new calls so critical sections
11386         are initialized before use.
11387
11388 2004-04-07  Martin Baulig  <martin@ximian.com>
11389
11390         * icall.c
11391         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11392         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11393         (ves_icall_MonoGenericParam_initialize): Removed.
11394         (monogenericparam_icalls): Removed.
11395         (generictypeparambuilder_icalls): Added new table for
11396         System.Reflection.Emit.GenericTypeParameterBuilder.
11397
11398         * reflection.c
11399         (mono_reflection_define_generic_parameter): Removed.
11400         (mono_reflection_initialize_generic_parameter): This is now called
11401         from GenericTypeParameterBuilder's .ctor.
11402
11403 2004-04-06  Martin Baulig  <martin@ximian.com>
11404
11405         * class.c (mono_class_init): Don't inflate nested classes in a
11406         generic instance.
11407         (mono_type_get_name_recurse): Include the generic arguments for
11408         generic instances and generic type declarations.
11409         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11410         (_mono_class_get_instantiation_name): Removed.
11411         (mono_class_create_generic): Always use `gklass->name' as our name.
11412
11413         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11414
11415         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11416         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11417         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11418         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11419         closed generic methods here.
11420
11421         * reflection.c
11422         (mono_reflection_generic_inst_get_nested_types): Removed.
11423         (inflate_mono_method): Copy the generic parameters from the
11424         MonoMethodHeader into out MonoGenericMethod.
11425
11426 2004-04-06  Martin Baulig  <martin@ximian.com>
11427
11428         * row-indexes.h
11429         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11430
11431         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11432
11433         * reflection.c (build_compressed_metadata): If we have any entries
11434         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11435         set the header version to 1.1.
11436
11437 2004-04-06  Martin Baulig  <martin@ximian.com>
11438
11439         * class.c (mono_class_init): If we're a generic instance,
11440         initialize our nested classes, too.
11441         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11442         suffix. 
11443
11444 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11445
11446         * process.c: quote the argument passed to the shell on windows.
11447
11448 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11449
11450         * threads.c (mono_alloc_special_static_data): Allow this to be
11451         called during startup.
11452
11453 2004-04-02  Martin Baulig  <martin@ximian.com>
11454
11455         * icall.c
11456         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11457
11458 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11459
11460         * icall.c: Fix build.
11461
11462 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11463
11464         * Makefile.am: Added security.c|h.
11465         * icall.c: Added icall for get_UserName;
11466         * security.c: New file for security related icalls. Added function
11467         get_UserName for System.Environment (fix #56144).
11468         * security.h: New. Header file for security.c
11469
11470 2004-04-02  Dick Porter  <dick@ximian.com>
11471
11472         * icall.c: Deleted the icalls that were obsoleted some time ago
11473         by the ICU string code, and which were mixed into the icall
11474         rearranging.  Fixes bug 55969.
11475
11476         * string-icalls.h: 
11477         * string-icalls.c: Deleted the code that those icalls reference.
11478
11479 2004-04-01  Martin Baulig  <martin@ximian.com>
11480
11481         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11482
11483         * class.c (mono_class_from_generic_parameter): Don't set 
11484         TYPE_ATTRIBUTE_INTERFACE.
11485         (my_mono_class_from_generic_parameter): Likewise.
11486
11487 2004-04-01  Martin Baulig  <martin@ximian.com>
11488
11489         * loader.c (find_method): Added an optional `MonoClass *ic'
11490         argument to search in a specific interface.
11491         (mono_get_method_constrained): New public function.
11492
11493 2004-04-01  Martin Baulig  <martin@ximian.com>
11494
11495         * reflection.c (mono_image_get_generic_field_token): Use the
11496         `handleref' cache here.
11497
11498 2004-04-01  Martin Baulig  <martin@ximian.com>
11499
11500         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11501
11502         * reflection.c (create_generic_typespec): Use the `typespec' hash
11503         here, not the `typeref' one.    
11504
11505 2004-04-01  Martin Baulig  <martin@ximian.com>
11506
11507         * class.c (mono_class_inflate_generic_type): Moved the
11508         functionality into a new static inflate_generic_type() which
11509         returns NULL if it didn't do anything.  Only increment the
11510         `mono_stats.inflated_type_count' if we actually inflated
11511         something.
11512         (mono_class_get_full): Check the classes type to see whether we
11513         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11514
11515 2004-04-01  Jackson Harper  <jackson@ximian.com>
11516
11517         * reflection.c: Set culture for assembly references.
11518         
11519 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11520
11521         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11522
11523 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11524
11525         * assembly.c:
11526         (do_mono_assembly_open): the critical section also covers
11527         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11528
11529 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11530
11531         * threads.c:
11532         (mono_manage_threads): abort the background threads when finishing.
11533         Fixes bug #47232.
11534
11535 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11536
11537         * gc.c: only close the done_event handle if there was no timeout.
11538         C-ified comments.
11539
11540 2004-03-30  Martin Baulig  <martin@ximian.com>
11541
11542         * icall.c (icall_entries): It's called "System.Activator", not
11543         "System.Activation".    
11544
11545 2004-03-30  Martin Baulig  <martin@ximian.com>
11546
11547         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11548         (mono_class_create_from_typespec): Likewise.
11549
11550 2004-03-30  Martin Baulig  <martin@ximian.com>
11551
11552         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11553         `has_ctor_constraint' and `initialized'.
11554
11555 2004-03-30  Martin Baulig  <martin@ximian.com>
11556
11557         * reflection.c (encode_new_constraint): New static function to add
11558         the constructor constraint attribute to a type parameter.
11559         (encode_constraints): Call encode_new_constraint() if necessary.
11560
11561         * reflection.h
11562         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11563
11564         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11565         
11566 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11567
11568         * reflection.c, icall.c: add support for pinning variables. 
11569
11570 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11571
11572         * marshal.c (mono_marshal_get_managed_wrapper):
11573         init bool local with zero rather than null.
11574
11575 2004-03-29  Martin Baulig  <martin@ximian.com>
11576
11577         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11578         the "official" behavior here.
11579         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11580
11581 2004-03-29  Martin Baulig  <martin@ximian.com>
11582
11583         * icall.c: Reflect latest API changes.
11584
11585 2004-03-29  Martin Baulig  <martin@ximian.com>
11586
11587         * loader.c (mono_get_method_from_token): Also call
11588         mono_metadata_load_generic_params () for abstract and interface
11589         methods; replace the type arguments in the method signature with
11590         the ones which are loaded from the metadata.
11591
11592 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11593
11594         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11595         of the lock is not the current thread. MS.NET don't do it, in spite of
11596         what the documentation says. See bug #56157.
11597
11598 2004-03-28  Martin Baulig  <martin@ximian.com>
11599
11600         * class.c (mono_class_init): Don't call init_properties() and
11601         init_events() for generic instances; set `prop->parent' when
11602         inflating properties.
11603
11604         * reflection.c (mono_generic_inst_get_object): Call
11605         `mono_class_init (ginst->klass)'.
11606         (mono_type_get_object): Only create a MonoGenericInst if your
11607         generic type is a TypeBuilder.
11608         (do_mono_reflection_bind_generic_parameters): Only set
11609         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11610
11611 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11612
11613         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11614         Fixes #56091.
11615
11616 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11617
11618         * icall.c: added Kill_internal icall.
11619         * process.[ch]: added Kill_internal icall.
11620
11621 2004-03-25  Martin Baulig  <martin@ximian.com>
11622
11623         * class.h (MonoStats): Added `generic_instance_count',
11624         `inflated_method_count', `inflated_type_count' and
11625         `generics_metadata_size'.       
11626
11627 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11628
11629         * reflection.c: no warnings now.
11630
11631 2004-03-25  Martin Baulig  <martin@ximian.com>
11632
11633         * class.c (mono_class_get_full): New public function; does a
11634         mono_class_get(), but also takes a `MonoGenericContext *'.
11635
11636         * loader.c (mono_field_from_memberref): Renamed to
11637         `field_from_memberref', made static and added `MonoGenericContext *'
11638         argument.
11639         (mono_field_from_token): Added `MonoGenericInst *' argument.
11640         (method_from_memberef): Likewise.
11641         (mono_get_method_from_token): Likewise.
11642         (mono_get_method_full): New public function; does a
11643         mono_get_method(), but also takes a `MonoGenericContext *'.
11644
11645         * verify.c (mono_method_verify): Get the method's generic context
11646         and pass it to mono_field_from_token(), mono_get_method_full() and
11647         mono_class_get_full().
11648
11649 2004-03-25  Martin Baulig  <martin@ximian.com>
11650
11651         * class.c (mono_class_inflate_generic_type): Take a
11652         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11653         `MonoGenericMethod *'.
11654
11655 2004-03-25  Martin Baulig  <martin@ximian.com>
11656
11657         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11658         instead of the MonoGenericMethod here.
11659
11660 2004-03-25  Martin Baulig  <martin@ximian.com>
11661
11662         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11663         each time we create a new MonoGenericInst, we also create a new
11664         context which points back to us.
11665
11666         * class.c (inflate_method): Use `ginst->context' instead of
11667         creating a new context.
11668
11669         * loader.c (method_from_memberref): Use
11670         `klass->generic_inst->context' instead of creating a new context.
11671
11672 2004-03-25  Martin Baulig  <martin@ximian.com>
11673
11674         * class.h (MonoGenericContext): New struct.
11675         (MonoGenericMethod): Removed `generic_inst'.
11676
11677         * class.c (mono_class_inflate_generic_method): Take a
11678         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11679
11680 2004-03-25  Martin Baulig  <martin@ximian.com>
11681
11682         * loader.h (MonoMethodInflated): New typedef.
11683
11684         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11685         `generic_param_count' consume just 30 bits, added `is_inflated'
11686         and `has_type_parameters' flags (one bit each).
11687
11688         * class.c (mono_class_inflate_generic_method): Create a
11689         MonoMethodInflated instead of a MonoMethodNormal and set
11690         `is_inflated' in the method signature.
11691
11692         * class.h (MonoGenericMethod): Removed `generic_method'.
11693
11694 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11695
11696         * image.c: Make sure the name of a MonoImage is always an absolute path.
11697           This fixes bug #54415.
11698
11699 2004-03-24  Martin Baulig  <martin@ximian.com>
11700
11701         * class.c (mono_class_setup_vtable): If we're a generic instance,
11702         use our generic type's vtable size.
11703
11704 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11705
11706         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11707         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11708         problems.
11709
11710 2004-03-23  Martin Baulig  <martin@ximian.com>
11711
11712         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11713         `MonoEvent *events'.
11714
11715         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11716         (typebuilder_icalls): Added "get_event_info"; calls
11717         mono_reflection_event_builder_get_event_info(). 
11718
11719         * reflection.c (mono_reflection_generic_inst_initialize): Added
11720         `MonoArray *events'.
11721         (mono_reflection_event_builder_get_event_info): New function.
11722
11723 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11724
11725         * object.h: add mono_type_initialization_init
11726
11727         * object.c (mono_runtime_class_init): 
11728         implement class constructor synchronization rules
11729         to cope with threading issues.  
11730         add mono_type_initialization_init
11731
11732         * appdomain.c (mono_runtime_init): call 
11733         mono_type_initialization_init
11734
11735         * class.h: removing initializing field from MonoVTable
11736
11737 2004-03-23  Martin Baulig  <martin@ximian.com>
11738
11739         * class.c (my_mono_class_from_generic_parameter): Use
11740         `param->name' if it's not NULL. 
11741
11742 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11743
11744         * class.c: do not insert non-virtual methods in the vtable.
11745         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11746         that means the method is non-virtual. This never would have
11747         happened before.
11748
11749 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11750
11751         * profiler.c: Added lock for accessing coverage_hash.
11752
11753 2004-03-22  Martin Baulig  <martin@ximian.com>
11754
11755         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11756         `method->method->signature->generic_param_count != 0' to make it
11757         work for interface methods.
11758
11759 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11760
11761         * process.c: quote the string passed to the shell using g_shell_quote.
11762
11763 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11764
11765         * threads.c:
11766         (mono_threads_manage): don't remove the finalizer thread and self
11767         from the threads hash table so that mono_thread_manage can be called
11768         more than once.
11769
11770 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11771
11772         * process.c: quote the arguments when UseShellExecute is true. Fixes
11773         bug #55790.
11774
11775 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11776
11777         * threads.c: set mono_thread_detach as a cleanup routine for every
11778         thread. This way it's always executed upon thread termination, either
11779         aborted or finished normally. No more xsp hangs!
11780
11781 2004-03-17  Martin Baulig  <martin@ximian.com>
11782
11783         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11784         `int count_nested' and a `MonoType **nested'.
11785
11786         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11787         most of the functionality into a new static
11788         do_mono_reflection_bind_generic_parameters() and don't take a
11789         `MonoType *nested_in' argument any more.  Don't compute nested
11790         types here.
11791         (mono_reflection_generic_inst_get_nested_types): New public method
11792         to get nested types.
11793
11794         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11795         we're a nested class.
11796
11797         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11798         mono_reflection_generic_inst_get_nested_types() to compute the
11799         nested types.
11800
11801 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11802
11803         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11804         descriptive error message under windows.
11805         
11806 2004-03-17  Martin Baulig  <martin@ximian.com>
11807
11808         * class.c (dup_type): Added `const MonoType *original' argument;
11809         copy the attrs from the original type.
11810
11811 2004-03-17  Martin Baulig  <martin@ximian.com>
11812
11813         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11814         `m->generic_inst_cache' here.
11815
11816 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11817
11818         * exception.h exception.c: Add stack_overflow_exception.
11819
11820 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11821
11822         * threadpool.c:
11823         (overlapped_callback): call SetEvent *after* invoking the callback.
11824         No need to call CloseHandle.
11825
11826 2004-03-16  Martin Baulig  <martin@ximian.com>
11827
11828         * reflection.c (mono_image_get_fieldref_token): Take a
11829         `MonoReflectionField *' instead of a `MonoClassField *' and a
11830         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11831
11832 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11833
11834         * appdomain.c: don't add the culture to the filename we're looking for
11835         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11836
11837 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11838
11839         * locales.c: don't ignore symbols when doing case insensitive compares.
11840         Thanks Dick! Fixes bug #54046.
11841
11842         * threads.c: surround 'threads' usage with enter/leave in
11843         mono_thread_manage.
11844
11845 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11846
11847         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11848         implicitly marshalled as [Out]. Fixes #55450.
11849
11850         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11851         an exception.
11852
11853 2004-03-16  Martin Baulig  <martin@ximian.com>
11854
11855         * class.c (mono_class_from_generic_parameter): Use the actual
11856         parameter name. 
11857
11858 2004-03-16  Martin Baulig  <martin@ximian.com>
11859
11860         * reflection.c (type_get_signature_size): New static function.
11861         Compues the size of the type in a method signature.
11862         (method_get_signature_size): New static function; calls
11863         type_get_signature_size() to compute the actual size of the
11864         method's signature.
11865         (method_encode_signature): Use method_get_signature_size() to get
11866         the signature's size rather than using `nparams * 10'.
11867
11868 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11869
11870         * file-io.h: define here WapiOverlapped on windows. I don't want the
11871         regular OVERLAPPED one.
11872
11873         * file-io.c:
11874         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11875         Disabling AIO on windows.
11876
11877 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11878
11879         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11880         bug #55385.
11881
11882 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11883
11884         * appdomain.c: upgraded corlib version.
11885
11886         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11887         and BeginWrite. Allow opening files for asynchrnous operations.
11888
11889         * file-io.h: new struct that maps FileStreamAsyncResult.
11890         * icall.c: added new icalls.
11891         * process.[ch]: support setting child process environment variables
11892         and use the SHELL or COMSPEC when UseShellExecute is true.
11893
11894         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11895         callback for async. IO is here and also BindHandle.
11896
11897         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11898         from here.
11899
11900 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11901
11902         * reflection.c (create_custom_attr): Allow len == 0.
11903
11904         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11905         computation on big-endian machines.
11906
11907 2004-03-13  Martin Baulig  <martin@ximian.com>
11908
11909         * class.h (MonoGenericInst): Added `int count_ifaces'.
11910
11911         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11912         `ginst->count_ifaces' instead `klass->interface_count' since we
11913         may get called before the vtable is created.
11914
11915         * loader.c (mono_method_get_param_names): If we're a generic
11916         instance, return and don't initialize the class.
11917
11918         * reflection.c (mono_reflection_setup_generic_class): Don't call
11919         ensure_runtime_vtable().
11920         (mono_reflection_bind_generic_parameters): Set
11921         `ginst->count_ifaces'.
11922
11923 2004-03-11  Jackson Harper <jackson@ximian.com>
11924
11925         * icall.c:
11926         * unicode.c:
11927         * unicode.h: Remove unused System.Char icalls.
11928         
11929 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11930
11931         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11932         code when we P/Invoke the first library in Windows.Forms, instead
11933         of when we first open the assembly.
11934
11935         * assembly.c: Drop the lookup from here.
11936
11937 2004-03-10  Martin Baulig  <martin@ximian.com>
11938
11939         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11940         class for properties, fields and events.  Finally fixes #54945.
11941
11942 2004-03-10  Martin Baulig  <martin@ximian.com>
11943
11944         * metadata.c (mono_metadata_class_equal): New static function;
11945         checks whether two generic instances or two generic parameters are
11946         equal.
11947         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11948         compare classes.        
11949
11950 2004-03-10  Martin Baulig  <martin@ximian.com>
11951
11952         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11953
11954         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11955         argument and write it into the `reflection_info' field.
11956
11957         * icall.c
11958         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11959         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11960
11961 2004-03-09  Jackson Harper  <jackson@ximian.com>
11962
11963         * char-conversions.h: use 8 bits for numeric data its all we need
11964         * icall.c: numeric data is only 8 bits now.
11965
11966 2004-03-09  Martin Baulig  <martin@ximian.com>
11967
11968         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11969
11970         * class.c (init_properties, init_events): Initialize the new
11971         `parent' field.
11972
11973         * reflection.c (typebuilder_setup_properties): Likewise.
11974         (typebuilder_setup_events): Likewise.
11975
11976         * reflection.h (MonoEventInfo): Replaced `parent with
11977         `declaring_type' and `reflected_type'.
11978
11979         * icall.c (ves_icall_get_property_info): Distinguish between
11980         declaring and reflected type.
11981         (ves_icall_get_event_info): Likewise.
11982
11983 2004-03-09  Martin Baulig  <martin@ximian.com>
11984
11985         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11986         (ves_icall_Type_GetField): Correctly set field->klass.
11987
11988 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11989
11990         * loader.h: Fix warning.
11991
11992 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11993
11994         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11995         library routine if present.  Notice that it will still continue
11996         executing even if its missing, for those working on the Gtk#
11997         edition of Windows.Forms.
11998
11999         * assembly.c (do_mono_assembly_open): If loading the
12000         System.Windows.Forms call mono_loader_wini_init.
12001
12002 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
12003
12004         * class.h: Added MonoRemoteClass struct.
12005         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
12006         function for MonoStrings.
12007         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
12008         Added internal call for getting the proxy type.
12009         * marshal.c: Get the type of transparent proxies from its remote_class.
12010         Added methods that generate the IL for type checks and casts:
12011         mono_marshal_get_isinst, mono_marshal_get_castclass, 
12012         mono_marshal_get_proxy_cancast.
12013         * marshal.h: Declaration of the previous new methods.
12014         * object.c: Added new moethods for creating and updating MonoRemoteClass
12015         instances: mono_remote_class, mono_upgrade_remote_class, 
12016         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
12017         * verify.c: FIx transparent_proxy_fields layout.
12018         * appdomain.c: Bump corlib version.
12019
12020 2004-03-04  Jackson Harper  <jackson@ximian.com>
12021
12022         * icall.c: Add icall to access char conversion tables.
12023         * char-conversions.h: Character conversion tables.
12024         * Makefile.am: Add char-conversions.h private header file.
12025         
12026 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
12027
12028         * appdomain.c (unload_thread_main): Increase unloading timeout to
12029         10 sec as a temporary workaround for Nant problems.
12030
12031 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
12032
12033         * gc.c: Add checks for GC_enable and GC_disable.
12034
12035         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
12036         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
12037         (bug #54988).
12038         
12039 2004-02-27  Martin Baulig  <martin@ximian.com>
12040
12041         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12042         `MonoReflectionType *' instead of a `MonoType *'.
12043
12044 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
12045
12046         * gc.c (run_finalize): Avoid finalizing the object representing the
12047         finalizer thread.
12048         (finalizer_thread): Fix warning.
12049
12050 2004-02-25  Martin Baulig  <martin@ximian.com>
12051
12052         * class.c (_mono_class_get_instantiation_name): Added `int offset'
12053         argument for nested types.
12054         (mono_class_create_generic): Added support for nested generictypes.
12055
12056         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
12057         `GList *nested'.
12058
12059         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
12060
12061         * reflection.c (method_encode_signature): Increase the minimum
12062         value of `size' from 10 to 11.
12063         (mono_reflection_bind_generic_parameters): Take `int type_argc'
12064         and `MonoType **types' arguments instead of the `MonoArray
12065         *types'; added `MonoType *nested_in'.  Recursively instantiate
12066         nested classes. 
12067
12068 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
12069
12070         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
12071         stack_overflow_ex members which are used by exception handling.
12072
12073         * appdomain.c (mono_runtime_init): Initialize the new members.
12074
12075         * gc.c (mono_gc_enable): New helper function.
12076         * gc.c (mono_gc_disable): New helper function.
12077
12078 2004-02-23  Martin Baulig  <martin@ximian.com>
12079
12080         * icall.c: I must have been really stupid - make it actually work
12081         this time ;-)
12082
12083 2004-02-23  Martin Baulig  <martin@ximian.com>
12084
12085         * loader.c (method_from_memberref): Only inflate the method if
12086         it's in another klass.
12087
12088 2004-02-23  Martin Baulig  <martin@ximian.com>
12089
12090         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12091         (mono_class_init): If we're a generic instance and an interface,
12092         compute `class->interface_id'; also create `class->interfaces'
12093         here and inflate them.
12094
12095         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12096         `ginst->is_open'.
12097         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12098
12099         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12100
12101 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
12102
12103         * reflection.c (method_encode_code): Improved the error message
12104         generated by the exception.
12105
12106 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12107
12108         * icall.c: Martin did not do what he said in the ChangeLog for
12109         2004-02-18, but put back the changes for properties and events.
12110         Commenting those changes out again and adding comment to bug #54518.
12111         
12112         * process.c: removed warning.
12113
12114 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
12115
12116         * marshal.c (emit_struct_conv): Print an error message instead of
12117         asserting when a type does not have the StructLayout attribute.
12118
12119 2004-02-20  Martin Baulig  <martin@ximian.com>
12120
12121         * reflection.c (mono_type_get_object): Also use the cache for
12122         generic instances.
12123         (mono_reflection_bind_generic_parameters): Always compute
12124         `ginst->ifaces'.        
12125
12126 2004-02-20  Martin Baulig  <martin@ximian.com>
12127
12128         * class.h (MonoGenericMethod): Removed `klass'.
12129
12130         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12131         *klass' argument.
12132
12133 2004-02-20  Martin Baulig  <martin@ximian.com>
12134
12135         * reflection.c (method_encode_methodspec): Actually use the
12136         uninflated signature for the memberref.
12137
12138 2004-02-20  Martin Baulig  <martin@ximian.com>
12139
12140         * class.h (MonoGenericMethod): Removed `declaring'.
12141
12142         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12143         is NULL, compute it here.
12144
12145 2004-02-20  Martin Baulig  <martin@ximian.com>
12146
12147         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12148
12149         * metadata.c (mono_metadata_generic_inst_hash): New method.
12150         (mono_metadata_generic_inst_equal): New method.
12151
12152         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12153         `klass->image->generic_inst_cache' cache to avoid creating
12154         duplicate MonoGenericInst's.
12155
12156         * class.c (mono_class_inflate_generic_type): Use the cache.
12157
12158 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12159
12160         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12161
12162 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12163
12164         * icall.c: added Socket.WSAIoctl icall.
12165
12166         * socket-io.[ch]: implemented
12167         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12168
12169 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12170
12171         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12172
12173 2004-02-18  Urs C Muff  <umuff@quark.com>
12174
12175         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12176         this work on PPC and other big-endian architectures.
12177
12178         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12179         fields with an underscore to make sure they're only accessed by
12180         the read32() macro.
12181
12182 2004-02-18  Martin Baulig  <martin@ximian.com>
12183
12184         * icall.c: Put the klass->refclass changes back for methods and
12185         fields, but not for properties and events.  We're currently not
12186         distinguishing between DeclaringType and ReflectedType for
12187         properties and events, that's what caused the regressions.
12188
12189 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12190
12191         * object.c:
12192         (mono_async_result_new): the handle can be NULL.
12193
12194         * threadpool.c: Use an event instead of a semaphore, don't initialize
12195         it until needed. This saves quite a few semaphores from being created
12196         when using the threadpool.
12197
12198 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12199
12200         * object.c (mono_string_is_interned_lookup): Fix interning of long
12201         strings. Fixes #54473.
12202
12203         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12204
12205         * icall.c: Revert the klass->refclass changes since they introduce
12206         regressions (bug #54518).
12207
12208 2004-02-18  Martin Baulig  <martin@ximian.com>
12209
12210         * class.c (mono_class_init): If we're a generic instance and don't
12211         come from a TypeBuilder, inflate our members here.
12212         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12213         (mono_class_create_generic): New public method.
12214         (mono_class_initialize_generic): Removed.
12215         (get_instantiation_name): Renamed to
12216         _mono_class_get_instantiation_name() and made it public.
12217
12218 2004-02-18  Martin Baulig  <martin@ximian.com>
12219
12220         * class.c (mono_class_inflate_generic_type): Clear the new
12221         instance's `nginst->klass' when inflating a generic instance.
12222         (mono_class_is_subclass_of): Added (basic) support for generic
12223         instances.
12224
12225 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12226
12227         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12228         MonoMempool to hold compiled native code.
12229
12230 2004-02-17  Martin Baulig  <martin@ximian.com>
12231
12232         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12233         `properties'.
12234
12235         * reflection.c (mono_reflection_generic_inst_initialize): Added
12236         `MonoArray *properties' argument.
12237
12238         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12239
12240 2004-02-17  Martin Baulig  <martin@ximian.com>
12241
12242         * icall.c (ves_icall_Type_GetFields): Renamed to
12243         ves_icall_Type_GetFields_internal() and added a
12244         `MonoReflectionType *rtype' argument; pass it to
12245         mono_field_get_object() to set the field's "reflected" type.
12246         (ves_icall_Type_GetConstructors): Likewise.
12247         (ves_icall_Type_GetEvents): Likewise.
12248         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12249         argument; pass it to mono_method_get_object() to set the method's
12250         "reflected" type.       
12251
12252 2004-02-17  Martin Baulig  <martin@ximian.com>
12253
12254         * class.h (MonoDynamicGenericInst): New type.
12255         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12256
12257         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12258         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12259         (ves_icall_MonoGenericInst_GetFields): New interncall.
12260
12261         * class.c (mono_class_from_generic): Don't call
12262         mono_class_initialize_generic() if this is a dynamic instance;
12263         ie. it's being created from a TypeBuilder.
12264         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12265         `class->byval_arg.type'.
12266
12267         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12268         to `inflate_method' and made static.
12269         (mono_reflection_inflate_field): Removed.
12270         (mono_reflection_generic_inst_initialize): New public method.
12271
12272         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12273         `ctors' and `fields'; added `initialized'.
12274
12275 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12276
12277         * debug-helpers.c (mono_method_full_name): Fix output for empty
12278         namespaces.
12279
12280 2004-02-12  Martin Baulig  <martin@ximian.com>
12281
12282         * class.h (MonoClassField): Added `MonoType *generic_type'.
12283
12284         * reflection.c (mono_image_get_fieldref_token): Added support for
12285         instantiated generic types.
12286         (field_encode_inflated_field): Removed.
12287         (mono_image_get_inflated_field_token): Removed.
12288         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12289
12290         * reflection.h (MonoReflectionInflatedField): Removed.
12291
12292 2004-02-12  Martin Baulig  <martin@ximian.com>
12293
12294         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12295         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12296
12297         * reflection.c (mono_image_get_methodspec_token): Take a
12298         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12299         (mono_image_create_token): Check whether we have a
12300         `method->signature->gen_method' and call
12301         mono_image_get_methodspec_token() if appropriate.
12302         (inflated_method_get_object): Removed.
12303         (mono_reflection_bind_generic_method_parameters): Return a
12304         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12305         (mono_reflection_inflate_method_or_ctor): Likewise.
12306
12307         * reflection.h (MonoReflectionInflatedMethod): Removed.
12308
12309 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12310
12311         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12312         for custom valuetype marshalling.
12313
12314         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12315
12316 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12317
12318         * icall.c: fixed WSAGetLastError_internal name.
12319
12320 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12321
12322         * threads.c (mono_thread_attach): Allow this to be called multiple
12323         times for a thread.
12324         
12325         * threads.c (build_wait_tids): Do not wait for ourselves.
12326
12327         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12328         appdomain list is empty.
12329
12330         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12331         memory returned by mono_string_builder_to_utf16, since it points into
12332         managed memory. Thanks to Bernie Solomon for noticing this.
12333
12334         * icall.c: Add AppDomainSetup icalls.
12335
12336         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12337
12338         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12339         types.
12340
12341         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12342         custom attributes to the method_aux struct. Also fix array indexes etc.
12343
12344         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12345         
12346 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12347
12348         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12349         (both static and runtime) and reduce startup time.
12350
12351 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12352
12353         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12354         AsAny marshalling conversion instead of crashing.
12355
12356         * marshal.c: Fix warnings.
12357
12358 2004-02-09  Martin Baulig  <martin@ximian.com>
12359
12360         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12361
12362         * reflection.h (MonoReflectionInflatedMethod): Removed the
12363         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12364
12365         * reflection.c (method_encode_methodspec): Removed the `method'
12366         argument; we get it from `gmethod->declaring'.
12367         (inflated_method_get_object): Removed the `declaring' argument.
12368
12369 2004-02-09  Martin Baulig  <martin@ximian.com>
12370
12371         * class.h (MonoGenericMethod): New type.
12372         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12373         `generic_method'.
12374
12375         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12376         a `MonoGenericMethod *gen_method' one.
12377
12378         * class.c (mono_class_inflate_generic_type): Take an additional
12379         `MonoGenericMethod * argument.  This is only non-NULL if we're
12380         inflating types for a generic method.   
12381         (mono_class_inflate_generic_signature): Renamed to
12382         inflate_generic_signature() and made static; take a
12383         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12384         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12385         instead of a `MonoGenericInst *' one.
12386         (mono_class_inflate_generic_method): Likewise.
12387
12388         * reflection.c (encode_generic_method_sig): Take a
12389         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12390         (method_encode_methodspec): Likewise.
12391         (inflated_method_get_object): Likewise. 
12392
12393         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12394         field with a `MonoGenericMethod *gmethod' one.  
12395
12396 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12397
12398         * class.h (mono_class_has_parent): add parens to expansion
12399         so you can ! this.
12400
12401 2004-02-08  Martin Baulig  <martin@ximian.com>
12402
12403         * image.h (MonoImage): Removed `generics_cache'.
12404
12405         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12406         instead of a `MonoType *' argument; removed the `inflate_methods'
12407         argument.  Don't inflate methods here.
12408
12409         * loader.c (find_method): If it's a generic instance, call
12410         mono_class_init() on the `sclass->generic_inst->generic_type'.
12411
12412         * metadata.c (mono_type_size): Make this work on uninitialized
12413         generic instances; call it on the `ginst->generic_type's class.
12414
12415         * reflection.c (mono_reflection_bind_generic_parameters): Call
12416         mono_class_from_generic() to create the `ginst->klass'.
12417
12418 2004-02-08  Martin Baulig  <martin@ximian.com>
12419
12420         * class.h (MonoClass): Changed type of `generic_inst' from
12421         `MonoType *' to `MonoGenericInst *'.
12422
12423 2004-02-08  Martin Baulig  <martin@ximian.com>
12424
12425         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12426         mono_type_get_object(), this is now creating a `MonoGenericInst'
12427         for MONO_TYPE_GENERICINST.
12428         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12429         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12430
12431         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12432         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12433         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12434         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12435         and reflected type.
12436
12437         * reflection.h (MonoReflectionInflatedMethod): Removed
12438         `declaring_type' and `reflected_type'.
12439
12440 2004-02-08  Martin Baulig  <martin@ximian.com>
12441
12442         * class.h (MonoGenericInst): Added `MonoType *parent' and
12443         `MonoType **ifaces'.
12444
12445         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12446         `parent' and `interfaces'.
12447
12448         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12449         `MonoType *' argument and return a `MonoType *'.
12450
12451         * icall.c
12452         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12453         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12454
12455 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12456
12457         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12458         valuetype marshalling.
12459
12460 2004-02-06  Martin Baulig  <martin@ximian.com>
12461
12462         * class.c
12463         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12464         (my_mono_class_from_generic_parameter): Likewise.
12465
12466 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12467
12468         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12469         contents of the symbol files lazily.
12470
12471         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12472
12473         * threads.h threads.c icall.c: New icalls for getting and setting the
12474         threads name.
12475
12476 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12477
12478         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12479         Raise an exception when the domain is not found.
12480
12481 2004-02-03  Martin Baulig  <martin@ximian.com>
12482
12483         * reflection.c (mono_image_get_methodspec_token): Use the
12484         uninflated signature; fixes gen-33.
12485
12486 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12487
12488         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12489         the finalizer code can use thread functionality.
12490
12491         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12492         the finalizer thread.
12493
12494         * threads.c: Make some functions more robust.
12495
12496         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12497
12498         * metadata.h: Add new marshalling conventions.
12499
12500         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12501         stringbuilder marshalling. Fixes #53700.
12502
12503         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12504
12505         * reflection.c (mono_image_get_type_info): Save declarative security
12506         info.
12507
12508         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12509         unmanaged fields as well.
12510
12511         * appdomain.c: Bump corlib version.
12512
12513 2004-02-01  Martin Baulig  <martin@ximian.com>
12514
12515         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12516         method type arguments.  
12517
12518 2004-01-30  Duncan Mak  <duncan@ximian.com>
12519
12520         * marshal.h: Add prototype for
12521         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12522         and
12523         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12524         fix the build.
12525
12526 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12527
12528         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12529         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12530
12531 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12532
12533         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12534         custom marshalling of valuetypes.
12535
12536         * marshal.c: Fix some warnings.
12537
12538 2004-01-29  Martin Baulig  <martin@ximian.com>
12539
12540         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12541         for generic method parameters.
12542
12543         * reflection.c (method_encode_methodspec): Write the uninflated
12544         signature into the methodspec table.
12545         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12546         is always the uninflated method.
12547         (reflection_methodbuilder_to_mono_method): Copy the generic
12548         parameters from the MethodBuilder into `header->gen_params'.
12549
12550 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12551
12552         * class.c (mono_class_from_generic_parameter): Fix warning.
12553
12554 2004-01-27  Martin Baulig  <martin@ximian.com>
12555
12556         * class.c (mono_class_from_generic_parameter): Don't create
12557         `klass->methods' here.  
12558
12559 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12560
12561         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12562         extension since it does not work with libraries named lib<FOO>.dll.so.
12563
12564 2004-01-25  Martin Baulig  <martin@ximian.com>
12565
12566         * class.c (mono_class_inflate_generic_type): Added support for
12567         MONO_TYPE_GENERICINST.
12568
12569         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12570         inflate methods on open constructed types.      
12571
12572 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12573
12574         * object.c: fire ProcessExit event in the root AppDomain after running
12575         Main. Fixes bug #53299.
12576
12577 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12578
12579         * socket-io.c: include the new socket-wrappers.h header.
12580         Use the wrappers instead of the unix socket functions to make the code
12581         more clear.
12582
12583 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12584
12585         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12586
12587         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12588         Fixes #22532.
12589
12590 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12591
12592         * reflection.c (mono_image_create_pefile): Handle the case when the
12593         entry point is not a MethodBuilder.
12594
12595         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12596         field to ReflectionMethod since it is not allways a builder.
12597
12598         * reflection.c (type_get_fully_qualified_name): New helper function to
12599         return the fully qualified name of a type.
12600
12601         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12602         type name for custom marshallers.
12603
12604         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12605
12606         * class.c (mono_class_setup_vtable): If a parent class already 
12607         implements an interface, use the implementing methods from that class.
12608         Fixes #53148.
12609
12610 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12611
12612         * threadpool.c: just return instead of ExitThread to allow for thread
12613         clean up earlier.
12614
12615 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12616
12617         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12618         when closing resource modules.
12619
12620         * reflection.c (mono_image_create_pefile): Handle the case when the
12621         entry point is not a MethodBuilder.
12622
12623         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12624         field to ReflectionMethod since it is not allways a builder.
12625
12626 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12627
12628         * marshal.c (mono_marshal_get_managed_wrapper): 
12629         mono_marshal_alloc takes native int so CONV_I
12630         the arg for 64bits.
12631
12632 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12633
12634         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12635         tokens in the cattr table. Fixes #53108.
12636
12637 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12638
12639         * loader.c: don't trim ".dll" before looking up in the config file.
12640         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12641
12642 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12643
12644         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12645         Return the module which contains the resource as well.
12646         (ves_icall_System_Reflection_Module_Close): New icall.
12647
12648         * appdomain.c: Bump corlib version number.
12649
12650         * image.c (mono_image_addref): New public function.
12651
12652         * assembly.c: Call mono_image_addref.
12653
12654         * reflection.c (mono_module_get_object): Increase reference count of 
12655         the image.
12656
12657         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12658         Fixes #22532.
12659
12660         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12661         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12662         proper exceptions on DllImport problems.
12663
12664 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12665
12666         * class.c, metadata.c: eliminate CSIZE macro.
12667
12668 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12669
12670         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12671         * object.h: Added async_callback field in MonoAsyncResult.
12672         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12673         * verify.c: Added async_callback in MonoAsyncResult layout.
12674
12675 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12676
12677         * reflection.c (mono_reflection_get_custom_attrs): Add support
12678         for Modules.
12679
12680 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12681
12682         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12683         marshalling.
12684         (mono_marshal_method_from_wrapper): Add null pointer check.
12685
12686 2004-01-16  Martin Baulig  <martin@ximian.com>
12687
12688         * debug-mono-symfile.h: Set version number to 36 and reflect
12689         latest symbol writer changes.
12690
12691 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12692
12693         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12694         multi-dimensional arrays.
12695         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12696         (mono_class_from_mono_type): Use bounded_array_class_get.
12697         
12698         * class.c (mono_bounded_array_class_get): New function which takes
12699         a 'bounded' bool argument to distinguish vectors from one dimensional
12700         arrays.
12701
12702         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12703         bounded_array_class_get if the array has bounds.
12704
12705         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12706         Search modules loaded using AssemblyBuilder:AddModule as well.
12707
12708 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12709
12710         * appdomain.c: increased corlib version.
12711         * filewatcher.c: removed g_print.
12712         * icall.c:
12713         (get_property_info): only allocate what is actually requested.
12714         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12715
12716 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12717
12718         * Makefile.am: added filewatcher.[ch]
12719         * filewatcher.[ch]: FileSystemWatcher runtime support.
12720         * icall.c: added new FSW icalls.
12721
12722 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12723
12724         * string-icalls.c: fix stringbuilder regression as suggested by
12725         Iain McCoy <iain@mccoy.id.au>.
12726
12727 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12728
12729         * process.c (process_read_stringtable_block): Recognize '007f' as
12730         a language neutral stringtable block.
12731
12732 2004-01-12  Patrik Torstensson
12733
12734         * object.h (MonoStringBuilder) : Changed layout to support our
12735         new stringbuilder class.
12736         * marshal.c: Change marshalling to support the new layout of 
12737         string builder.
12738         * appdomain.c: increased version number because new layout of
12739         string builder.
12740
12741 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12742
12743         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12744         assembly name as an string instead of an AssemblyName, since it is
12745         easier to extract info from it.
12746
12747         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12748         the culture subdirectories too. Fixes #52231.
12749
12750 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12751
12752         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12753         It takes 2 new parameters with an optional name for the method to look
12754         for and case ignoring info.
12755
12756         * threadpool.c: removed unused variable.
12757
12758 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12759
12760         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12761         It takes 2 new parameters with an optional name for the property to look
12762         for and case ignoring info.
12763         Fixes bug #52753.
12764
12765 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12766
12767         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12768         Fix #52451.
12769
12770 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12771
12772         * appdomain.c:
12773         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12774         Fixes bug #52630.
12775
12776 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12777
12778         * reflection.c: Add support for more than one unmanaged resource.
12779
12780         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12781         in field->def_value, as done in all other cases.
12782
12783         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12784         TypeBuilders.
12785
12786         * reflection.c (mono_reflection_create_runtime_class): Remove 
12787         errorneous assignment to klass->element_class, since it is already
12788         done in mono_reflection_setup_internal_class.
12789
12790 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12791
12792         * gc.c: added missing LeaveCriticalSection.
12793         * icall.c: indented a couple of lines.
12794         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12795         if we call EndInvoke inside a callback. Fixes bug #52601.
12796
12797 2004-01-07  Martin Baulig  <martin@ximian.com>
12798
12799         * mono-debug-debugger.h
12800         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12801
12802 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12803
12804         * appdomain.c: Use messages in NotImplementedException.
12805
12806         * exception.c (mono_get_exception_not_implemented): Now this takes
12807         a message argument.
12808
12809         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12810         exception instead of g_asserting an aborting when something is not
12811         implemented.
12812
12813         Add some inline docs.
12814
12815 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12816
12817         * reflection.h: Update after changes to object layout.
12818
12819         * reflection.c: Implement saving of unmanaged aka win32 resources.
12820
12821         * appdomain.c: Bump version number.
12822
12823         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12824         Handle missing domains gracefully.
12825
12826 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12827
12828         * file-io.c : On Windows, there are much more invalid_path_chars.
12829
12830 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12831
12832         * class.h, object.c: prepare for GetType () speedup.
12833
12834 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12835
12836         * profiler.c: workaround for --profile null reference exception on
12837           cygwin. Patch by Patrik Torstensson.
12838
12839 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12840
12841         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12842         make work for unaligned access.
12843
12844 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12845
12846         * class.c: small cleanup (class->fields [i] -> field).
12847         * image.c: check address of metadata is valid.
12848
12849 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12850
12851         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12852         search the list of loaded assemblies.
12853
12854         * reflection.c (mono_reflection_type_from_name): Use 
12855         mono_assembly_loaded instead of mono_image_loaded.
12856
12857         * reflection.c: Fix warnings.
12858
12859 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12860
12861         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12862         is dynamic. This is needed since an assembly can contain both dynamic and
12863         non-dynamic images.
12864
12865         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12866         assembly->dynamic.
12867
12868         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12869
12870         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12871         to store modules loaded using AddModule.
12872
12873         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12874         on Modules.
12875
12876         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12877
12878         * reflection.c (mono_image_fill_export_table_from_module): New function to
12879         fill out the EXPORTEDTYPES table from a module.
12880
12881         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12882         into a separate function. Also handle loaded non-dynamic modules.
12883
12884         * reflection.c (mono_image_basic_init): Fix memory allocation.
12885
12886         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12887
12888         * assembly.c (mono_assembly_load_references): Make this public.
12889
12890 2003-12-19  Martin Baulig  <martin@ximian.com>
12891
12892         * class.c (mono_class_initialize_generic): Made this static, take
12893         a `MonoGenericInst *' instead of a `MonoClass *'.
12894         (mono_class_from_generic): Call mono_class_initialize_generic()
12895         unless we're already initialized or being called from
12896         do_mono_metadata_parse_generic_inst().
12897
12898         * class.h (MonoGenericInst): Added `initialized' and
12899         `init_pending' flags.
12900
12901         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12902         `mono_class_init (gklass)' or mono_class_initialize_generic()
12903         here; set `generic_inst->init_pending' while parsing the
12904         `type_argv'.
12905
12906 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12907
12908         * locales.c: include string.h for memxxx prototypes
12909
12910 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12911
12912         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12913         constructor when accessing literal fields.
12914
12915 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12916
12917         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12918
12919         * reflection.c (assembly_add_resource_manifest): New function to fill
12920         the MANIFESTRESOURCE table.
12921
12922         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12923
12924         * reflection.h: Update to changes in class layout.
12925
12926         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12927         Reenable call to mono_runtime_is_shutting_down ().
12928
12929         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12930         determine if the runtime is shutting down.
12931
12932 2003-12-16  Jackson Harper <jackson@ximian.com>
12933
12934         * icall.c: comment out call to mono_runtime_is_shutting_down to
12935         fix build.
12936         
12937 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12938
12939         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12940         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12941
12942 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12943
12944         * reflection.c: move definition of swap_with_size
12945         to before its first call
12946
12947 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12948
12949         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12950
12951         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12952         icall.
12953
12954         * object.c: Fix warnings.
12955
12956         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12957         members if FlattenHierarchy is set.
12958
12959         * reflection.c (mono_image_add_decl_security): New function to emit
12960         declarative security.
12961
12962         * reflection.h reflection.c: Add support for declarative security.
12963
12964         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12965         
12966 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12967
12968         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12969         
12970         * appdomain.c verify.c: Moved corlib version checking into its own
12971         function in appdomain.c since it needs to create vtables etc.
12972
12973 2003-12-13  Patrik Torstensson <p@rxc.se>
12974
12975         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12976         instead of unwrapped server.
12977
12978 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12979
12980         * verify.c (check_corlib): Fix field index.
12981
12982 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12983
12984         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12985         GetGacPath icall.
12986
12987 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12988
12989         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12990         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12991         cope with sizeof(size_t) != sizeof(guint32).
12992
12993 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12994
12995         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12996         in case of failure.
12997
12998 2003-12-10  Mark Crichton <crichton@gimp.org>
12999
13000         * icall.c: removed the GetNonZeroBytes.  We now handle this case
13001         in managed code.
13002
13003         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
13004
13005 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
13006
13007         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
13008         marked as deleted.
13009
13010 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
13011
13012         * verify.c (check_corlib): Handle the case when the version field is 
13013         initialized by a static constructor.
13014
13015 2003-12-08  Patrik Torstensson  <p@rxc.se>
13016
13017     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
13018
13019 2003-12-08  Martin Baulig  <martin@ximian.com>
13020
13021         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
13022         a MonoReflectionGenericParameter, also take the parameter index
13023         and name as arguments.
13024         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
13025         (ves_icall_MonoGenericParam_initialize): New interncall.
13026         (ves_icall_Type_make_byref_type): New interncall.
13027
13028         * reflection.h (MonoReflectionGenericParam): Derive from
13029         MonoReflectionType, not just from MonoObject.  Added `refobj' and
13030         `index' fields.
13031
13032         * reflection.c (mono_reflection_define_generic_parameter): Create
13033         and return a new MonoReflectionGenericParam; don't initialize the
13034         constraints here.
13035         (mono_reflection_initialize_generic_parameter): New public method;
13036         initializes the constraints and creates the `param->pklass'.
13037
13038 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
13039
13040         * reflection.h reflection.c: Use the new fields 'num_types', 
13041         'num_fields' and 'num_methods' to track the number of types etc.
13042
13043         * verify.c (check_corlib): Check corlib version number.
13044
13045 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
13046
13047         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
13048         function works on all methods.
13049
13050 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
13051
13052         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
13053         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
13054         the custom_type_info flag of the transparent proxy.
13055         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
13056         objects that supports IRemotingTypeInfo.
13057         * object.h: Added custom_type_info field in transparent proxy.
13058
13059 2003-12-06  Martin Baulig  <martin@ximian.com>
13060
13061         * class.c (mono_class_create_from_generic): Removed.
13062         (mono_class_from_generic): Check `ginst->klass' before doing
13063         anything else.  This is important to fully support "recursive"
13064         generic types.
13065
13066         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
13067         empty `generic_inst->klass' before doing anything else.
13068
13069 2003-12-06  Dick Porter  <dick@ximian.com>
13070
13071         * verify.c: 
13072         * object.h:
13073         * icall.c:
13074         * locales.c: Use C structs to access class fields.  Don't do a
13075         conversion between MonoString and UChar because both are
13076         platform-endian UTF-16.  Compare now takes startindex and count
13077         parameters.  Add a char overload for IndexOf.  Speed up the
13078         invariant string IndexOf.
13079
13080 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
13081
13082         * Makefile.am (monosn_LDADD): Fix parallel build.
13083
13084 2003-12-04  Martin Baulig  <martin@ximian.com>
13085
13086         * icall.c
13087         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13088         (ves_icall_Type_make_array_type): New interncall.       
13089
13090 2003-12-04  Martin Baulig  <martin@ximian.com>
13091
13092         * locales.c: also change it in the !HAVE_ICU case.
13093
13094 2003-12-04  Dick Porter  <dick@ximian.com>
13095
13096         * icall.c:
13097         * locales.c: construct_compareinfo is now in CompareInfo, not
13098         CultureInfo.
13099
13100 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
13101
13102         * image.c (mono_image_load_file_for_image): Cache loaded images in the
13103         image->files array.
13104
13105         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13106         table as well.
13107
13108         * assembly.c (mono_assembly_load_references): Only load references
13109         once.
13110
13111         * class.c (mono_class_from_name): Avoid linear search of the 
13112         EXPORTEDTYPE table.
13113
13114         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13115
13116 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
13117
13118         * image.h (MonoImage): Add 'field_cache' field.
13119
13120         * loader.c (mono_field_from_token): Cache field lookups.
13121         
13122         * reflection.c (mono_module_get_object): Fix name property.
13123
13124         * icall.c (ves_icall_get_enum_info): Update after changes to 
13125         mono_metadata_get_constant_index ().
13126
13127         * icall.c: Get rid of get_type_info icall, use a separate icall for
13128         each type property to avoid needless memory allocations. Fixes #51514.
13129
13130         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13131         to avoid needless binary searches.
13132
13133         * class.c (class_compute_field_layout): Move the initialization of
13134         field->def_value to mono_class_vtable ().
13135
13136         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13137         non-corlib types.
13138
13139         * object.c (mono_object_allocate): Make it inline.
13140
13141         * object.c (mono_object_allocate_spec): Make it inline.
13142         
13143 2003-12-02  Dick Porter  <dick@ximian.com>
13144
13145         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13146         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13147
13148 2003-12-01  Dick Porter  <dick@ximian.com>
13149
13150         * threads.c: Fix signature and call in CreateMutex and
13151         CreateEvent.
13152
13153 2003-12-01  Dick Porter  <dick@ximian.com>
13154
13155         * icall.c: 
13156         * locales.c: Implement string compares and searching
13157
13158         * object.h: Add extra Thread field
13159
13160 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13161
13162         * reflection.c (fixup_method): Add support for MonoCMethod.
13163
13164 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13165
13166         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13167
13168         * reflection.c (assembly_name_to_aname): Allow extra characters in
13169         assembly names. Fixes #51468.
13170
13171 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13172
13173         * exception.c (mono_exception_from_name_domain): New helper function.
13174
13175         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13176         exception object in the correct domain.
13177
13178         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13179         formatting + make a copy a the input data.
13180
13181         * loader.c (mono_get_method_from_token): Methods which contain
13182         native code do not have entries in the ImplMap.
13183
13184         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13185         Thanks to Gonzalo for spotting this.
13186         
13187         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13188         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13189
13190         * assembly.h (mono_assembly_load_from): Split the second part of 
13191         assembly loading into a new public function.
13192
13193         * exception.h (mono_get_exception_bad_image_format): New function.
13194
13195 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13196
13197         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13198         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13199         
13200         * icall.c: Add new icall for creating dynamic methods.
13201
13202         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13203
13204         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13205
13206         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13207         create a dynamic method.
13208
13209         * reflection.c (resolve_object): New helper function.
13210
13211         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13212         which manipulate it so they can also work on dynamic methods.
13213
13214         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13215         creating the MonoReflectionMethodAux structure if it is not needed.
13216         
13217         * reflection.h verify.c: Update after changes to object layout.
13218
13219         * reflection.c (method_builder_encode_signature): Fix compilation on
13220         gcc 2.95.x.
13221
13222 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13223
13224         * appdomain.h: Added support for context static fields. Added static_data
13225           field to MonoAppContext and renamed thread_static_fields to a more
13226           generic special_static_fields in MonoAppDomain, since it can now contain
13227           context static fields.
13228         * domain.c: Updated hashtable name.
13229         * object.c: Replaced field_is_thread_static() for a more generic
13230           field_is_special_static() which also checks for context static attribute.
13231           In mono_class_vtable(), added support for static context fields.
13232         * threads.c: Changed methods that manage thread static fields to more
13233           generic methods so they can be reused both for thread and context static
13234           data.
13235         * threads.h: Declared some new methods.
13236
13237 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13238
13239         * reflection.h: Update after changes to the managed types.
13240
13241         * reflection.c (encode_custom_modifiers): New helper function.
13242
13243         * reflection.c (method_encode_signature): Emit custom modifiers.
13244
13245         * reflection.c (field_encode_signature): Emit custom modifiers.
13246
13247 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13248
13249         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13250
13251         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13252         implementation.
13253
13254         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13255         icall.
13256
13257         * object.c (mono_field_get_value_object): New function.
13258
13259         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13260         specific.
13261
13262 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13263
13264         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13265         return a preallocated out-of-memory exception instance.
13266
13267         * object.c (out_of_memory): Use the new function.
13268
13269         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13270         flag is before the custom modifiers. Fixes #49802.
13271
13272 2003-11-16  Martin Baulig  <martin@ximian.com>
13273
13274         * class.c (mono_class_is_open_constructed_type): Implemented the
13275         MONO_TYPE_GENERICINST case.
13276
13277 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13278
13279         * assembly.c (mono_assembly_fill_assembly_name): New function to
13280         fill out the MonoAssemblyName structure.
13281         (mono_assembly_open): Use the new function.
13282
13283         * icall.c (fill_reflection_assembly_name): New helper function.
13284
13285         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13286         new function.
13287
13288         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13289
13290 2003-11-15  Martin Baulig  <martin@ximian.com>
13291
13292         * class.c (mono_class_is_open_constructed_type): New public
13293         function; checks whether a type is an open constructed type,
13294         ie. whether it still contains type parameters.
13295         (mono_class_inflate_generic_type): If we're a type parameter and
13296         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13297         type.
13298
13299         * class.h (MonoGenericInst): Added `guint32 is_open'.
13300
13301         * loader.c (method_from_methodspec): Check whether we're an open
13302         or closed constructed type and set `ginst->is_open'.
13303
13304         * reflection.c (mono_reflection_bind_generic_parameters): Check
13305         whether we're an open or closed constructed type and set
13306         `ginst->is_open'.
13307         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13308         from open constructed types.
13309
13310 2003-11-15  Martin Baulig  <martin@ximian.com>
13311
13312         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13313         a generic instance (instead of a generic type declaration) with
13314         unbound generic parameters, bind them to our actual types.
13315
13316 2003-11-14  Martin Baulig  <martin@ximian.com>
13317
13318         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13319
13320         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13321         an interface type, populate `res->interfaces' with instantiated
13322         versions of all the interfaces we inherit.
13323
13324 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13325
13326         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13327         when MONO_PATH is set but doesn't contain the install dir.
13328
13329 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13330
13331         * icall.c:
13332         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13333         it's also implemented in base classes. Fixes bug #50927.
13334
13335 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13336
13337         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13338         if this method is called from a finalizer. Fixes #50913.
13339
13340 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13341
13342         * threads.c: Implement VolatileRead/VolatileWrite
13343
13344         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13345
13346 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13347
13348         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13349         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13350         2.95.3.
13351
13352         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13353         from Peter Ross (pro@missioncriticalit.com).
13354         
13355 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13356
13357         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13358
13359 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13360
13361         * assembly.c (mono_assembly_load_references): Disable check because it
13362         triggers on older corlibs which lots of people have.
13363
13364 2003-11-12  Jackson Harper  <jackson@ximian.com>
13365
13366         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13367         load corlib.dll if mscorlib.dll is not found.
13368         * assembly.h: Remove corlib name define.
13369         * class.c:
13370         * domain.c:
13371         * image.c: Change corlib name to mscorlib.
13372         
13373 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13374
13375         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13376
13377 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13378
13379         * appdomain.h: Added loader_optimization here to sync with the C#
13380         code, and add disallow_binding_redirects field.
13381
13382 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13383
13384         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13385
13386         * reflection.c (mono_image_build_metadata): Fix crash on modules
13387         with no types.
13388
13389         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13390
13391         * icall.c (ves_icall_get_method_info): Return callingConvention as
13392         well.
13393
13394         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13395         namespaces from the EXPORTEDTYPE table as well.
13396
13397         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13398         from all modules inside the assembly.
13399         
13400 2003-11-11  Martin Baulig  <martin@ximian.com>
13401
13402         * reflection.c (mono_reflection_bind_generic_parameters): Make
13403         this work for interfaces.
13404
13405 2003-11-11  Martin Baulig  <martin@ximian.com>
13406
13407         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13408
13409 2003-11-11  Martin Baulig  <martin@ximian.com>
13410
13411         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13412         "MonoInflatedMethod" and "MonoInflatedCtor".
13413
13414 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13415
13416         * reflection.c (resolution_scope_from_image): Use the assembly table
13417         from the manifest module, since other modules don't have it.
13418
13419         * debug-helpers.c (mono_type_full_name): New helper function.
13420
13421         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13422
13423         * image.c (mono_image_load_file_for_image): New public function which
13424         is a replacement for the load_file_for_image in class.c.
13425
13426         * assembly.c (mono_assembly_load_module): A wrapper for the function
13427         above which does assembly association and reference loading too.
13428
13429         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13430
13431 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13432
13433         * appdomain.c: not all of the attributes for the full assembly name
13434         are required and the order doesn't matter. Fixes bug #50787.
13435
13436 2003-11-10  Dick Porter  <dick@ximian.com>
13437
13438         * locales.c: Use platform-endian UTF16
13439
13440 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13441
13442         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13443         
13444 2003-11-10  Martin Baulig  <martin@ximian.com>
13445
13446         * metadata.c
13447         (mono_metadata_load_generic_params): Make this actually work.
13448
13449         * reflection.c (mono_reflection_bind_generic_parameters): If our
13450         parent is a generic instance, pass all the `types' to it, no
13451         matter whether it has the same number of type parameters or not.
13452
13453 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13454
13455         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13456
13457         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13458         assignment code to this function so it gets called recursively for all
13459         modules.
13460
13461         * image.c (load_modules): Remove the assembly assignment since it is
13462         now done by mono_assembly_load_references.
13463         
13464         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13465         Add 'module' argument.
13466         (mono_module_get_types): New helper function.
13467         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13468
13469 2003-11-08  Martin Baulig  <martin@ximian.com>
13470
13471         * class.c (mono_class_inflate_generic_method): Interface method
13472         don't have a header.
13473
13474         * reflection.c (mono_image_get_methodspec_token): Take an
13475         additional `MonoGenericInst *' argument instead of reading it from
13476         the header; this is necessary to support interfaces.
13477         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13478         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13479         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13480         argument.
13481
13482         * reflection.h (MonoReflectionInflatedMethod): Added
13483         `MonoGenericInst *ginst'.
13484
13485 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13486
13487         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13488
13489 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13490
13491         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13492
13493 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13494
13495         * reflection.c 
13496         (reflection_methodbuilder_from_method_builder):
13497         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13498         initialize a ReflectionMethodBuilder structure.
13499         (mono_image_get_methodbuilder_token):
13500         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13501         tokens which point to types in another module inside the same assembly.
13502
13503         * reflection.c: Use the new helper functions.
13504         
13505         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13506
13507         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13508         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13509
13510         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13511         neccesary.
13512
13513         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13514         current module. Emit the manifest only for the main module.
13515
13516         * reflection.c (mono_image_create_token): Add assertion when a 
13517         memberref needs to be created.
13518
13519         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13520
13521         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13522         larger buffer for the custom attribute blob. Fixes #50637.
13523         
13524 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13525
13526         * threadpool.c: notify listener on async processing handles after
13527         invoking the async callback. Thanks to Zoltan.
13528
13529 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13530
13531         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13532         avoid code duplication.
13533
13534         * reflection.h (MonoDynamicImage): New type which is currently unused,
13535         but will be used through the ref.emit code in place of 
13536         MonoDynamicAssembly.
13537
13538         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13539         object layout.
13540
13541         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13542         a MonoDynamicImage instead of just a MonoImage.
13543         
13544         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13545         icalls to ModuleBuilder but keep their semantics, so they will work
13546         with moduleb->assemblyb. This will change later.
13547         
13548 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13549
13550         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13551         object layout.
13552
13553         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13554         main module, since it is now done by the managed code.
13555
13556 2003-11-03  Martin Baulig  <martin@ximian.com>
13557
13558         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13559         `ginst->klass' here.
13560         (method_encode_methodspec): Don't use the `ginst->generic_method's
13561         klass if it's a generic instance, use `ginst->klass' in this case.
13562
13563 2003-11-03  Martin Baulig  <martin@ximian.com>
13564
13565         * reflection.c (mono_image_get_generic_method_param_info):
13566         Removed, use mono_image_get_generic_param_info() instead.
13567         (mono_image_get_type_info): Write the GenericParam table before
13568         the Method table.  This is neccessary because in the GenericParam
13569         table, type parameters of the class (ie. '!0' etc.) must come
13570         before the ones from its generic methods (ie. '!!0' etc).
13571
13572 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13573
13574         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13575
13576 2003-11-02  Martin Baulig  <martin@ximian.com>
13577
13578         * reflection.c (create_generic_typespec): Take a
13579         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13580         the generic parameters from it.
13581
13582 2003-11-02  Martin Baulig  <martin@ximian.com>
13583
13584         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13585         instead of a `MonoClassField *' since we just need the type.
13586         (create_generic_typespec): New static function.  Creates a
13587         TypeSpec token for a generic type declaration.
13588         (mono_image_get_generic_field_token): New static function.
13589         (mono_image_create_token): If we're a FieldBuilder in a generic
13590         type declaration, call mono_image_get_generic_field_token() to get
13591         the token.
13592
13593 2003-11-02  Martin Baulig  <martin@ximian.com>
13594
13595         * reflection.h
13596         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13597         `MonoReflectionGenericInst *declaring_type' and
13598         `MonoReflectionGenericInst *reflected_type' fields.
13599
13600         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13601         `MonoReflectionGenericInst *declaring_type' and a
13602         `MonoReflectionGenericInst *reflected_type' argument instead of a
13603         single `MonoReflectionGenericInst *type' one.  Set
13604         `res->declaring_type' and `res->reflected_type' from them.
13605         (mono_reflection_inflate_field): Likewise.      
13606
13607 2003-11-02  Martin Baulig  <martin@ximian.com>
13608
13609         * class.c (mono_class_setup_vtable): Don't store generic methods
13610         in the vtable.  
13611
13612 2003-11-02  Martin Baulig  <martin@ximian.com>
13613
13614         * reflection.h (MonoReflectionGenericInst): Added
13615         `MonoReflectionType *declaring_type'.
13616
13617         * reflection.c (mono_reflection_bind_generic_parameters): Use
13618         `if (tb->parent)' instead of `klass->parent'.
13619
13620 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13621
13622         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13623         with an empty ASSEMBLY table.
13624
13625         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13626         variable in the inner and outer loops.
13627
13628 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13629
13630         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13631         argument.
13632
13633         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13634         
13635         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13636         icalls. Instead, do everything in managed code. This is needed since
13637         it is hard to restore the original domain etc. in unmanaged code in the
13638         presence of undeniable exceptions.
13639
13640         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13641         New icalls to push and pop appdomain refs.
13642
13643 2003-10-31  Martin Baulig  <martin@ximian.com>
13644
13645         * class.c (inflate_generic_type): Renamed to
13646         mono_class_inflate_generic_type() and made it public.
13647
13648         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13649         New interncall.
13650
13651         * loader.c (mono_field_from_memberref): Also set the retklass for
13652         typespecs.
13653
13654         * fielder.c (mono_image_get_inflated_field_token): New static
13655         method; creates a metadata token for an inflated field.
13656         (mono_image_create_token, fixup_method): Added support for
13657         "MonoInflatedField".
13658         (fieldbuilder_to_mono_class_field): New static function.
13659         (mono_reflection_inflate_field): New public function.
13660
13661         * reflection.h
13662         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13663         (MonoReflectionInflatedField): New typedef.     
13664
13665 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13666
13667         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13668         for Solaris and other platforms without s6_addr16
13669
13670 2003-10-30  Martin Baulig  <martin@ximian.com>
13671
13672         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13673         argument instead of two.
13674         (mono_class_inflate_generic_signature): Likewise.
13675         (inflate_generic_header): Likewise.
13676         (mono_class_inflate_generic_method): Likewise.  In addition, if
13677         `ginst->klass' is set, it becomes the new `method->klass'.
13678
13679         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13680         field.
13681
13682         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13683         first byte. [FIXME]
13684         (method_encode_methodspec): If we have generic parameters, create
13685         a MethodSpec instead of a MethodRef.
13686         (fixup_method): Added support for "MonoInflatedMethod" and
13687         "MonoInflatedCtor".
13688         (mono_image_create_token): Added support for "MonoInflatedMethod"
13689         and "MonoInflatedCtor".
13690         (inflated_method_get_object): New static function; returns a
13691         managed "System.Reflection.MonoInflatedMethod" object.
13692         (mono_reflection_bind_generic_method_parameters): Return a
13693         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13694         (mono_reflection_inflate_method_or_ctor): Likewise.
13695         (mono_image_get_generic_method_param_info): Initialize unused
13696         fields to zero.
13697         (mono_image_get_generic_param_info): Likewise.
13698
13699         * reflection.h (MonoReflectionInflatedMethod): New public
13700         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13701         "S.R.MonoInflatedCtor" classes.
13702
13703         * loader.c (method_from_memberref): If we're a TypeSpec and it
13704         resolves to a generic instance, inflate the method.
13705
13706 2003-10-28  Dick Porter  <dick@ximian.com>
13707
13708         * object.c (mono_runtime_run_main): Convert command-line arguments
13709         into utf8, falling back to the user's locale encoding to do so.
13710
13711 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13712
13713         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13714         at this time.
13715
13716         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13717
13718         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13719         up icalls at method definition time. Partially fixes #33569.
13720
13721 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13722
13723         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13724         marshalling of arrays. Fixes #50116.
13725
13726         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13727
13728         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13729         points to a vtable in the dying appdomain.
13730
13731         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13732         listeners into unmanaged code inside the lock.
13733
13734         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13735         domains and add some comments.
13736
13737 2003-10-25  Martin Baulig  <martin@ximian.com>
13738
13739         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13740
13741         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13742
13743         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13744         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13745         currently parsing.  Create the generic class and store it in
13746         `generic_inst->klass' before parsing the type arguments.  This is
13747         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13748         for an example.
13749         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13750         to support recursive typespec entries.
13751
13752         * class.c (mono_class_setup_parent): If our parent is a generic
13753         instance, we may get called before it has its name set.
13754         (mono_class_from_generic): Splitted into
13755         mono_class_create_from_generic() and mono_class_initialize_generic().
13756
13757 2003-10-25  Martin Baulig  <martin@ximian.com>
13758
13759         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13760         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13761         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13762         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13763
13764         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13765         (create_typespec): Likewise.
13766         (mono_reflection_bind_generic_parameters): Return a
13767         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13768         (mono_reflection_inflate_method_or_ctor): New public function.
13769
13770         * reflection.h (MonoReflectionGenericInst): New typedef.        
13771
13772 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13773
13774         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13775         inside the domain lock. Fixes #49993.
13776         
13777         * object.c (mono_class_vtable): When typed allocation is used, 
13778         allocate vtables in the GC heap instead of in the mempool, since the
13779         vtables contain GC descriptors which are used by the collector even
13780         after the domain owning the mempool is unloaded.
13781
13782         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13783
13784         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13785         reflect what it does. Also invalidate mempools instead of freeing
13786         them if a define is set.
13787
13788         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13789         of the appdomain.
13790         
13791         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13792         hold the finalizable objects in this domain.
13793
13794         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13795         appdomain.
13796
13797         * appdomain.c (mono_domain_set): New function to set the current
13798         appdomain, but only if it is not being unloaded.
13799
13800         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13801         appdomain which is being unloaded.
13802         
13803         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13804         unloading of the root appdomain.
13805
13806         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13807         icall to execute a method in another appdomain. Intended as a 
13808         replacement for InternalSetDomain, which can confuse the code 
13809         generation in the JIT.
13810
13811         * appdomain.c (mono_domain_is_unloading): New function to determine
13812         whenever an appdomain is unloading.
13813
13814         * appdomain.c (mono_domain_unload): New function to correctly unload
13815         an appdomain.
13816
13817         * assembly.c (mono_assembly_load_references): Check that an assembly
13818         does not references itself.
13819
13820         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13821         domain manually, it asks the finalizer thread to do it, then waits for
13822         the result. Also added a timeout.
13823
13824         * icall.c: Register the new icalls.
13825
13826         * threads.h threads.c: Export the mono_gc_stop_world and 
13827         mono_gc_start_world functions.
13828         
13829         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13830         function to fill out the mempool with 0x2a.
13831
13832 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13833
13834         * reflection.h (MonoReflectionMethodAux): New structure to store
13835         information which is rarely used, thus is not in the MonoMethod
13836         structure.
13837
13838         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13839         store the aux info.
13840
13841         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13842         and marshalling info into the aux structure.
13843
13844         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13845         from the aux structure.
13846
13847         * loader.c (mono_method_get_param_names): Retrieve the param names from
13848         the aux structure.
13849         
13850 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13851
13852         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13853         warning.
13854
13855 2003-10-21  Dick Porter  <dick@ximian.com>
13856
13857         * socket-io.c
13858         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13859         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13860
13861 2003-10-21  Martin Baulig  <martin@ximian.com>
13862
13863         * reflection.c (mono_reflection_bind_generic_parameters):
13864         `klass->parent' is NULL for interfaces.
13865
13866 2003-10-21  Martin Baulig  <martin@ximian.com>
13867
13868         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13869
13870 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13871
13872         * exception.c (mono_exception_from_name_msg): New helper function for
13873         creating exceptions and initializing their message field.
13874
13875         * exception.c: Simplify functions using the new helper.
13876
13877         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13878         New function.
13879
13880         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13881         mono_raise_exception, since otherwise gcc doesn't generate the function
13882         epilog for raise_exception, confusing the stack unwinding in the JIT.
13883         Fixes #45043.
13884
13885         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13886         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13887         Fixes #49499.
13888
13889 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13890
13891         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13892         utf8.
13893
13894 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13895
13896         * icall.c: Removed GetUninitializedObject method because
13897           AllocateUninitializedClassInstance does the same.
13898
13899 2003-10-18  Martin Baulig  <martin@ximian.com>
13900
13901         * class.c (inflate_generic_signature): Renamed to
13902         mono_class_inflate_generic_signature() and made it public.
13903         (my_mono_class_from_generic_parameter): New static function; if we
13904         don't already have the generic parameter's MonoClass, create a
13905         very simple one which is just used internally in the runtime and
13906         not passed back to managed code.
13907
13908         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13909
13910         * metadata.h (MonoMethodSignature): Moved the
13911         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13912         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13913
13914         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13915         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13916         interncall on the MonoMethod class, not on MethodInfo.
13917         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13918         calling mono_reflection_bind_generic_method_parameters() directly.
13919
13920         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13921         return the already computed `method->signature'.
13922         (method_from_methodspec): New static function to load a method
13923         from a MethodSpec entry.
13924         (mono_get_method_from_token): Call the new method_from_methodspec()
13925         for MethodSpec tokens.  
13926         (mono_get_method_from_token): If we're a generic method, load the
13927         type parameters.
13928
13929         * reflection.c (mono_image_get_memberref_token): Allow
13930         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13931         table.
13932         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13933         (mono_image_create_token): First check whether it's a generic
13934         method (so we'd need to create a MethodSpec), then do the other
13935         two alternatives.
13936         (mono_reflection_bind_generic_method_parameters): Return a
13937         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13938         called directly from the interncall.
13939
13940 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13941
13942         * reflection.c (load_public_key): Move loading of the public key
13943         into managed code.
13944
13945         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13946
13947         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13948         fields.
13949
13950         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13951         culture, hash_alg and public_key. Fixes #49555.
13952
13953 2003-10-17  Martin Baulig  <martin@ximian.com>
13954
13955         * class.h (MonoGenericInst): Moved this declaration here and added
13956         `MonoMethod *generic_method'.
13957
13958         * icall.c
13959         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13960         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13961
13962         * metadata.c (mono_metadata_type_equal): Two types of
13963         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13964         index; ie. don't compare the address of the `MonoGenericParam'
13965         structure.
13966         (mono_metadata_load_generic_params): Removed the `MonoMethod
13967         *method' argument.
13968
13969         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13970         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13971
13972         * reflection.c (method_encode_signature): Encode the number of
13973         generic parameters.
13974         (encode_generic_method_sig): New static function.
13975         (method_encode_methodspec): New static function; creates an entry
13976         in the MethodSpec table for a generic method.
13977         (mono_image_get_methodspec_token): New static function.
13978         (mono_image_create_token): Call mono_image_get_methodspec_token()
13979         for generic methods.
13980         (mono_reflection_bind_generic_method_parameters): New public
13981         function.  Instantiates a generic method.
13982
13983 2003-10-16  Martin Baulig  <martin@ximian.com>
13984
13985         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13986         *gen_params' here from MonoMethodHeader.
13987
13988         * metadata.c (mono_metadata_parse_method_signature): If we have
13989         generic parameters, initialize `method->gen_params' and then set
13990         the correct `type->data.generic_param' in all the parameters.
13991
13992 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13993
13994         * threads.c (mono_threads_get_default_stacksize): New function to 
13995         return the default stacksize.
13996
13997         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13998         termination of the finalizer thread, since the previous method had
13999         race conditions. Fixes #49628.
14000
14001         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
14002         as for the other managed threads.
14003
14004 2003-10-16  Martin Baulig  <martin@ximian.com>
14005
14006         * class.c (inflate_generic_signature): Copy `generic_param_count'
14007         and `gen_params'.
14008
14009         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
14010         New interncall.
14011
14012         * metadata.c (mono_metadata_parse_method_signature): Actually set
14013         the `method->generic_param_count' here.
14014         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
14015
14016 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
14017
14018         * object.h: Add a new field to TypedRef to simplify the implementation
14019         of the REFANY opcodes in the JIT.
14020
14021         * icall.c: Make use of the new field.
14022
14023         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
14024         dynamically.
14025
14026 2003-10-15  Martin Baulig  <martin@ximian.com>
14027
14028         * class.c (mono_class_from_gen_param): Renamed to
14029         mono_class_from_generic_parameter() and moved most of the
14030         functionality from mono_reflection_define_generic_parameter()
14031         here; ie. we create a "real" class here.
14032         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
14033         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
14034         previously been called.
14035
14036         * class.h (MonoGenericParam): Moved the declaration of this struct
14037         here from metadata.h and added `MonoMethod *method'.
14038
14039         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
14040         interncall.
14041
14042         * loader.c (mono_get_method_from_token): If we have any generic
14043         parameters, call mono_metadata_load_generic_params() to read them
14044         from the MONO_TABLE_GENERICPAR.
14045
14046         * metadata.c (mono_metadata_load_generic_params): Added
14047         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
14048
14049         * metadata.h (MonoMethodSignature): Replaced
14050         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
14051         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
14052
14053         * reflection.c (mono_reflection_define_generic_parameter): Moved
14054         most of the functionality into the new
14055         mono_class_from_generic_parameter(); set the `method' field if
14056         we're a method parameter.       
14057
14058 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
14059
14060         * marshal.c (emit_struct_conv): if native size is 0
14061         emit no code.
14062
14063 2003-10-14  Martin Baulig  <martin@ximian.com>
14064
14065         * icall.c: The generics API has changed in the spec since it was
14066         added to System.Type; these modifications make it match the spec
14067         again.
14068         (ves_icall_Type_GetGenericParameters): Renamed to
14069         `ves_icall_Type_GetGenericArguments'.
14070         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
14071         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
14072         `ves_icall_MonoType_get_HasGenericArguments'.
14073         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
14074         `ves_icall_MonoType_get_IsGenericParameter'.
14075         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
14076         this is no interncall anymore.
14077         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
14078         `ves_icall_TypeBuilder_get_IsGenericParameter'.
14079
14080 2003-10-14  Martin Baulig  <martin@ximian.com>
14081
14082         * reflection.c (mono_reflection_bind_generic_parameters): Also
14083         inflate generic methods if we're reading the class from IL.
14084
14085 2003-10-13  Martin Baulig  <martin@ximian.com>
14086
14087         * reflection.c (mono_reflection_define_generic_parameter): This
14088         method isn't called directly from the icall anymore; take a
14089         `MonoReflectionAssemblyBuilder *' so we can use this for type and
14090         method generic parameters.
14091         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14092         (method_builder_encode_signature): Encode generic parameters.
14093         (mono_image_get_method_info): Write generic params to the
14094         MONO_TABLE_GENERICPARAM table.
14095
14096         * reflection.h (MonoReflectionMethodBuilder): Added
14097         `MonoArray *generic_params'.
14098
14099         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14100
14101         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14102         wrapper for mono_reflection_define_generic_parameter().
14103         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
14104
14105 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
14106
14107         * marshal.h: Add missing function to fix build.
14108
14109         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
14110         the SetLastError pinvoke attribute.
14111
14112         * marshal.c (mono_marshal_set_last_error): New helper function called
14113         by the generated code.
14114         
14115         * marshal.c (mono_mb_emit_branch): New helper function.
14116
14117         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14118
14119         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14120         classes as parameters and return values of delegates. Fixes #29256. 
14121
14122 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
14123
14124         * locales.c: use gint32 in non HAVE_ICU case
14125
14126 2003-10-11  Martin Baulig  <martin@ximian.com>
14127
14128         * mono-debug.c (mono_debug_add_method): Added a workaround for
14129         bug #48591.
14130
14131 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14132
14133         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14134         delegates passed to native code must use the STDCALL calling 
14135         convention. Fixes #35987.
14136
14137 2003-10-10  Martin Baulig  <martin@ximian.com>
14138
14139         * class.c (inflate_generic_type): If we're inflating for a generic
14140         type instance (and not for a generic method), return
14141         MONO_TYPE_MVAR unchanged.
14142
14143 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14144
14145         * string-icalls.c: Join ignores null strings in the source array.
14146         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14147         * threads.c: GetAvailableTheads is slightly more accurate.
14148
14149 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14150
14151         * threads.h threads.c : add mono_threads_set_default_stacksize
14152         and pass default to CreateThread calls.
14153
14154 2003-10-09  Dick Porter  <dick@ximian.com>
14155
14156         * icall.c:
14157         * locales.h:
14158         * locales.c: Internal calls for constructing CultureInfo and
14159         related objects from libicu (if its available.)
14160
14161 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14162
14163         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14164
14165 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14166
14167         * threadpool.c: added an argument to async_invoke_thread that is the
14168         item to process, pass the MonoAsyncResult to the thread start function
14169         when creating a new thread. This way we don't need to acquire any lock
14170         when we're creating a new thread. Readded a semaphore for faster
14171         response times (instead of that Sleep i added).
14172
14173 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14174
14175         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14176         get daylight change dates better on Windows, fix handling
14177         of platforms without tm_gmtoff.
14178
14179 2003-10-06  Martin Baulig  <martin@ximian.com>
14180
14181         * class.c (inflate_generic_method): Renamed to
14182         mono_class_inflate_generic_method() and made public.
14183         (mono_class_init): Don't inflate the generic methods here.
14184         (mono_class_from_generic): Added `gboolean inflate_methods'
14185         argument.  Inflate the methods here.
14186
14187         * loader.c (mono_method_get_param_names): Ignore instances of
14188         generic types for the moment.
14189
14190         * reflection.c (fixup_method): Added support for inflated methods.
14191         (mono_image_create_token): Use mono_image_get_methodref_token()
14192         for inflated methods.
14193         (mono_custom_attrs_from_param): Ignore instances of generic types
14194         for the moment.
14195         (mono_reflection_bind_generic_parameters): New public function.
14196         Moved all the functionality from
14197         ves_icall_Type_BindGenericParameters() here and added support for
14198         dynamic types.
14199         (mono_reflection_define_generic_parameter): Initialize
14200         `klass->methods' here.
14201
14202         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14203         functionality into mono_reflection_define_generic_parameter().
14204         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14205         TypeBuilder, return that TypeBuilder.
14206
14207 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14208
14209         * appdomain.c: removed mono_delegate_semaphore.
14210
14211         * threadpool.c:
14212         (mono_thread_pool_add): moved hash table creation inside and the thread 
14213         creation outside of the critical region.
14214         (mono_thread_pool_finish): removed obsolete code.
14215         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14216         continue or exit the thread depending on the queue.
14217
14218 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14219
14220         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14221         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14222         handle more bool marshalling options
14223
14224 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14225
14226         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14227         arrays of structs. Also add a more descriptive error message when
14228         a structure member is marshalled as LPArray.
14229
14230 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14231
14232         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14233         marshalling arrays of complex types. Fixes #29098. Also remove an
14234         usused and incomplete function.
14235
14236 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14237
14238         * gc.c: report heap_size - free_bytes as total memory allocated
14239         (bug#49362).
14240
14241 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14242
14243         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14244         fix timezone handling problems on Windows.
14245         
14246         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14247         asserts when the year is outside the range handled by ms the functions.
14248
14249         * class.c (setup_interface_offsets): If the class is an interface,
14250         fill out its interface_offsets slot.
14251
14252 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14253
14254         * threadpool.c: mark threadpool threads as background.
14255
14256 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14257
14258         * decimal.c - define DECINLINE to nothing if not using GCC
14259
14260 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14261
14262         * assembly.c: More refcount fixes.
14263
14264 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14265
14266         * string-icalls.c: if we're not trimming, return the same string.
14267         When not splitting, don't create a new string.
14268
14269 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14270
14271         * image.c:
14272         (mono_image_open): increment the ref_count inside the critical section.
14273
14274 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14275
14276         * image.c (mono_image_open): Fix reference counting bug.
14277
14278 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14279
14280         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14281         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14282         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14283         mono_lookup_pinvoke_call throws.        
14284
14285 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14286
14287         * reflection.c (mono_reflection_parse_type): Fix #49114.
14288
14289         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14290         temporary workaround for cygwin header problem.
14291
14292         * object.c (mono_object_isinst): Synchronize this with the code
14293         generated by the JIT for casts.
14294
14295 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14296
14297         * reflection.c (encode_type): Fix #38332.
14298
14299 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14300
14301         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14302         the original method from the wrapper method.
14303
14304 2003-09-25  Martin Baulig  <martin@ximian.com>
14305
14306         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14307         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14308         (ves_icall_Type_get_IsGenericInstance): New interncall.
14309
14310 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14311
14312         * object.c: fix cast warning in big endian code.
14313
14314 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14315
14316         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14317         
14318 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14319
14320         * assembly.c: don't call check_env from mono_assembly_load. It's
14321         already done once in mono_assemblies_init and may cause headaches when
14322         multiple threads are loading assemblies.
14323
14324 2003-09-19  Martin Baulig  <martin@ximian.com>
14325
14326         * reflection.c (mono_reflection_define_generic_parameter): Don't
14327         allocate `klass->methods', set `klass->flags' to
14328         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14329
14330 2003-09-18  Martin Baulig  <martin@ximian.com>
14331
14332         * class.c (mono_class_init): Don't create `class->methods' if it's
14333         already initialized.
14334
14335         * metadata.c (mono_metadata_load_generic_params): Make this
14336         actually work.
14337
14338         * reflection.c (mono_reflection_define_generic_parameter): Set
14339         parent class and interfaces from the constraints.
14340
14341         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14342         to keep this struct in sync with the declaration in TypeBuilder.cs.
14343
14344 2003-09-17  Martin Baulig  <martin@ximian.com>
14345
14346         * metadata.h (MonoType): Replaced the data's `int type_param'
14347         field with `MonoGenericParam *generic_param'.
14348         (MonoGenericParam): Added `MonoClass *klass'.
14349
14350         * class.c (mono_class_from_gen_param): Removed the
14351         `MonoImage *image' and `int type_num' arguments.
14352
14353         * metadata.c (mono_metadata_parse_generic_param): New static
14354         method; creates a MonoGenericParam which just contains the index.
14355         (do_mono_metadata_parse_type): Call
14356         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14357         MONO_TYPE_MVAR.
14358
14359         * reflection.c (mono_image_typedef_or_ref): Generic type
14360         parameters may be in the same assembly, but never use a typedef
14361         for them.
14362         (mono_reflection_define_generic_parameter): We're now creating a
14363         "real" class for the type parameter; it's now safe to call
14364         mono_class_from_mono_type() on the class'es type, it'll do the
14365         right thing.
14366
14367 2003-09-16  Martin Baulig  <martin@ximian.com>
14368
14369         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14370         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14371         the `symfile' data structure must be fully initialized before it
14372         gets added to the table.
14373
14374 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14375
14376         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14377
14378         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14379         class init trampolines.
14380
14381 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14382
14383         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14384         to the built-in profiler to turn off time and allocation profiling
14385         respectively.
14386
14387 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14388
14389         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14390         g_direct_equal.
14391
14392         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14393         in human readable form.
14394
14395 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14396
14397         * reflection.c icall.c: Fixed warnings.
14398
14399         * image.c (load_class_names): Use a temporary hash table to hold the
14400         namespaces in order to avoid doing many string comparisons.
14401
14402         * image.h: Fix typo.
14403
14404         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14405         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14406         since the NULL case is short-circuited inside g_hash_table_lookup, 
14407         leading to better performance.  
14408
14409         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14410         obtain the first custom attribute for a given index. Depends on the
14411         CustomAttribute table being sorted by the parent field.
14412
14413         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14414         for better performance.
14415
14416 2003-09-07  Martin Baulig  <martin@ximian.com>
14417
14418         * class.c (mono_class_init): If we're a generic instance, inflate
14419         all our methods instead of loading them from the image.
14420         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14421
14422 2003-09-07  Martin Baulig  <martin@ximian.com>
14423
14424         * mono-debug-debugger.c: Added support for constructors.
14425
14426 2003-09-06  Martin Baulig  <martin@ximian.com>
14427
14428         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14429         New interncall.
14430
14431         * reflection.c (mono_reflection_setup_generic_class): Call
14432         ensure_runtime_vtable() to create the vtable.
14433
14434 2003-09-05  Martin Baulig  <martin@ximian.com>
14435
14436         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14437         MONO_TYPE_MVAR.
14438
14439 2003-09-04  Martin Baulig  <martin@ximian.com>
14440
14441         * reflection.c (mono_reflection_define_generic_parameter): Generic
14442         parameters start with zero.
14443
14444 2003-09-04  Martin Baulig  <martin@ximian.com>
14445
14446         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14447
14448         * reflection.h (MonoReflectionGenericParam): New typedef.
14449         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14450         the generic parameters from the managed TypeBuilder.
14451
14452         * reflection.c (mono_reflection_define_generic_parameter): New function.
14453         (mono_reflection_create_runtime_class): Encode generic parameters.
14454         (mono_reflection_setup_generic_class): New function; this is
14455         called after adding adding all generic params to the TypeBuilder.
14456         (encode_type): Added MONO_TYPE_VAR.
14457
14458 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14459
14460         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14461         here from the JIT.
14462
14463         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14464         load hook.
14465
14466 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14467
14468         * reflection.h reflection.c class.h class.c: Delete duplicate 
14469         definition of mono_type_get_name () from reflection.c and export the
14470         one in class.c.
14471
14472         * class.c: Class loading fixes from Bernie Solomon 
14473         (bernard@ugsolutions.com).
14474
14475         * reflection.c: Endianness fixes from Bernie Solomon 
14476         (bernard@ugsolutions.com).
14477         
14478 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14479
14480         * assembly.h assembly.c: Define a file format version for AOT
14481         libraries.
14482         
14483         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14484
14485         * appdomain.h (MonoJitInfo): New field to determine whenever the
14486         code is domain neutral.
14487         
14488 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14489
14490         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14491
14492 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14493
14494         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14495         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14496         Avoid caching the result since strings must be domain specific. Fixes
14497         #48050.
14498
14499 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14500
14501         * marshal.c (mono_marshal_init): Make this callable multiple times
14502         since it is hard to find a correct place to call it.
14503
14504         * object.c (mono_runtime_class_init): Execute static constructors in
14505         the correct appdomain.
14506
14507         * image.c (build_guid_table): Handle the case when multiple images have
14508         the same GUID.
14509
14510 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14511
14512         * icall.c: added a couple of icalls for System.Web.
14513
14514 2003-08-28  Martin Baulig  <martin@ximian.com>
14515
14516         * icall.c (ves_icall_Type_BindGenericParameters): Use
14517         `klass->generic_inst' instead of `&klass->byval_arg' in the
14518         mono_type_get_object() call.  The returned type must be
14519         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14520
14521 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14522
14523         * NOTES: New file.
14524
14525         * object.c (mono_class_proxy_vtable): Make it thread safe.
14526
14527         * pedump.c: Fix warning.
14528
14529         * object.c appdomain.h: Get rid of metadata_section. 
14530         It is no longer needed and it was causing deadlocks with domain->lock.
14531
14532         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14533
14534 2003-08-26  Martin Baulig  <martin@ximian.com>
14535
14536         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14537
14538 2003-08-26  Martin Baulig  <martin@ximian.com>
14539
14540         * pedump.c (main): Call mono_metadata_init(),
14541         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14542         and mono_loader_init().
14543
14544 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14545
14546         * loader.h: Add missing include to fix build.
14547
14548         * image.h: mono_image_load_references is no more.
14549
14550         * assembly.c: Reworked assembly loading to make it really thread safe.
14551         After these changes, the assembly returned by mono_assembly_open is
14552         fully initialized, i.e. all its references assemblies are loaded.
14553
14554         * assembly.c (mono_image_load_references): Renamed to 
14555         mono_assembly_load_references, and made private, since clients no
14556         longer need to call it.
14557
14558         * class.c: Removed calls to mono_assembly_load_references, since it was
14559         a source of deadlocks.
14560
14561         * loader.h loader.c class.h class.c: Protect data structures using a 
14562         new lock, the loader lock.
14563
14564         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14565         GPtrArrays only when needed.
14566
14567         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14568         into empty structures by mcs. Fixes pinvoke7.cs.
14569         
14570         * domain.c (mono_init): Call a new initialization function.
14571
14572         * appdomain.c (mono_runtime_init): Call the new initializer function
14573         of the marshal module.
14574
14575         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14576         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14577
14578         * marshal.h marshal.c: Added locks around the wrapper caches to make
14579         this module thread safe.
14580
14581         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14582         this argument. Fixes pinvoke1.exe.
14583
14584 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14585
14586         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14587         enumeration of values. Removed fields to store remote call output values in
14588         MonoAsyncResult. Not needed any more.
14589         * object.c: Initialize call_type and async_result fields in mono_message_init.
14590         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14591         dispatching the message.
14592         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14593         async call to finish. To do it use a message with EndInvoke call type.
14594
14595 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14596
14597         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14598         determines whenever a method has marshalling info.
14599
14600 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14601
14602         * assembly.c: fix the build on windows.
14603
14604 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14605
14606         * object.cs: Fixed bug #47785.
14607
14608 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14609
14610         * string-icalls.c (StringReplace): If their are no occurances of
14611         the old string found return a reference to the supplied
14612         string. This saves some memory and matches MS behavoir.
14613         
14614 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14615
14616         * socket-io.c: fixed compilation for systems that define AF_INET6
14617         and don't define SOL_IP/SOL_IPV6.
14618
14619 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14620
14621         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14622         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14623
14624         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14625
14626         * domain.c: Make this module thread safe.
14627
14628         * domain.c (mono_init): Call new initialization function.
14629
14630         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14631         reference types too. Fixes #38812.
14632
14633         * image.c (mono_image_init): Fixed warnings.
14634
14635         * class.c (mono_class_from_typeref): Handle assembly load failure
14636         correctly.
14637
14638         * appdomain.c (add_assemblies_to_domain): Handle the case when
14639         the references of an assembly are not yet loaded.
14640
14641         * metadata.c image.c assembly.c: Moved initialization of global
14642         variables to a separate function called at startup since lazy 
14643         initialization of these variables is not thread safe.
14644         
14645         * image.c assembly.c: Made this module thread safe by adding locks in 
14646         the appropriate places.
14647
14648         * domain.c (mono_init): Call the new initialization functions of the
14649         three modules.
14650
14651 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14652
14653         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14654           make a direct call. It is proxy's work to make the call asynchronous.
14655           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14656           the return values.
14657         * object.cs: mono_method_call_message_new(): read AsyncResult and
14658           state object from parameters list, if this info is requested.
14659         * object.h: Added fields to store remote call output values in
14660           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14661
14662 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14663
14664         * object.h: add needed fields to MonoThread.
14665         * threads.c, threads.h: allow registering a function to cleanup data
14666         allocated per thread by the JIT.
14667
14668 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14669
14670         * loader.h: portability fix by Bernie Solomon
14671         * <bernard@ugsolutions.com>.
14672
14673 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14674
14675         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14676         return a MonoArray. This simplifies the code and also ensures that
14677         the cache allways contains an object reference as a value.
14678
14679         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14680         function.
14681
14682 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14683
14684         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14685         fixes a problem with byte ordering when getting the address family for
14686         a socket.
14687
14688 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14689
14690         * .cvsignore: Added monosn.
14691
14692         * reflection.h reflection.c loader.c: Added support for parameter
14693         marshalling to dynamically created types. Fixes #47295.
14694
14695 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14696
14697         * rand.c: remove useless warnings.
14698
14699 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14700
14701         * class.c: implemented ldtoken for methods and fieldrefs.
14702
14703 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14704
14705         * threadpool.c: when mono_async_invoke was called, no one took care of
14706         monitoring the queue. So if the method invoked took some time and we
14707         got new async invoke requests after 500 ms (the thread created waited
14708         that long in WaitForSingleObject), the new async invoke was not called
14709         until the previous one finished.
14710
14711         This is fixed now. Thanks to Totte for helping with it.
14712
14713 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14714
14715         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14716
14717 2003-08-11  Martin Baulig  <martin@ximian.com>
14718
14719         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14720
14721 2003-08-06  Martin Baulig  <martin@ximian.com>
14722
14723         * mono-debug-debugger.c: Added support for static fields,
14724         properties and methods.
14725
14726 2003-08-06  Martin Baulig  <martin@ximian.com>
14727
14728         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14729         make this work for applications with multiple application domains.
14730
14731 2003-08-04  Martin Baulig  <martin@ximian.com>
14732
14733         * mono-debug-debugger.c: Completely reworked the type support; the
14734         most important thing is that we're now just using one single
14735         `MonoType' instance per type.
14736
14737 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14738
14739         * mono-endian.h, mono-endian.c, icall.c: Added icall
14740         ves_icall_System_Double_AssertEndianity to assert double word endianity
14741         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14742
14743 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14744
14745         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14746         support, icalls and fixes.
14747
14748 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14749
14750         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14751         classes that are a punctuation character in .NET is not the same a
14752         g_unichar_ispunct.
14753
14754 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14755
14756         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14757
14758 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14759
14760         * icall.c: Add new MemCopy internalcall.
14761         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14762         Simplified code; It is not necessary to handle all the cases here,
14763         as the C# code takes care of it.  Only handle the case of the name
14764         resource embedded into the assembly.
14765
14766         Changed signature to return the data pointer and the size of the
14767         data. 
14768
14769 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14770
14771         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14772         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14773
14774 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14775
14776         * socket-io.c: ignore EINTR error in select.
14777
14778 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14779
14780         * class.h, class.c: removed unused subclasses field in MonoClass.
14781
14782 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14783
14784         * icall.c: improve fix of get_base_definition(). If the parent class
14785           doesn't have the mehod, look at the parent of the parent.
14786         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14787           to check if a parameter is an in or out parameter
14788           (PARAM_ATTRIBUTE_IN is not set by default).
14789           mono_method_return_message_restore(): Use mono_class_value_size to
14790           get the size of a value type. mono_type_stack_size (parameterType)
14791           does not return the correct value if parameterType is byRef.
14792           mono_load_remote_field(), mono_load_remote_field_new(),
14793           mono_store_remote_field(), mono_store_remote_field_new():
14794           raise exception if the remote call returns an exception.
14795
14796 2003-07-28  Martin Baulig  <martin@ximian.com>
14797
14798         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14799         method.  This is a wrapper around mono_runtime_invoke() which
14800         boxes the instance object if neccessary.
14801
14802 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14803
14804         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14805         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14806
14807 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14808
14809         * icall.c: disable mcs bug workaround.
14810
14811 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14812
14813         * object.c (mono_runtime_class_init): Take the metadata_section
14814         mutex before obtaining the domain mutex.
14815
14816         * appdomain.h: Added definition of metadata_section mutex here. 
14817
14818         * object.c: define metadata_mutex here.
14819
14820 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14821
14822         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14823         fixed.
14824
14825 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14826
14827         * reflection.c: Fix bug #46669
14828
14829 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14830
14831         * exception.c:
14832         * exception.h:
14833         * icall.c:
14834         * object.h: fill in the type name for TypeLoadException.
14835
14836 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14837
14838         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14839         relationship between TypeBuilders while compiling corlib) and bug
14840         45993 (Array types returned from the runtime while compiling
14841         corlib were from the loaded corlib).
14842
14843 2003-07-22  Martin Baulig  <martin@ximian.com>
14844
14845         * mono-debug-debugger.c: Reworked the type support a bit more;
14846         distinguish between types and classes.
14847
14848 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14849
14850         * icall.c: add IsArrayImpl icall.
14851
14852 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14853
14854         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14855         initializing real_size only once. Also fix bug #46602.
14856
14857 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14858
14859         * object.c: Renamed mono_metadata_section to metadata_section.
14860
14861 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14862
14863         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14864           empty array if the type is an array. Fixed.
14865           ves_icall_MonoMethod_get_base_definition: if the base method
14866           is abstract, get the MethodInfo from the list of methods of
14867           the class.
14868         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14869           and it was 1-based. Fixed in mono_param_get_objects.
14870
14871 2003-07-20  Martin Baulig  <martin@ximian.com>
14872
14873         * mono-debug.h: Set version number to 31.
14874         (mono_debug_init): Added `MonoDomain *' argument.
14875
14876         * mono-debug-debugger.c: Reworked the type support; explicitly
14877         tell the debugger about builtin types; pass the `klass' address to
14878         the debugger.
14879
14880 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14881
14882         * image.c: Allow new metadata tables to be loaded without a
14883         warning. Also update the warning message to give the new constant value.
14884                 
14885 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14886
14887         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14888         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14889         array type representation changes.
14890
14891 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14892
14893         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14894         on Environment.Exit () call.
14895
14896 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14897
14898         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14899         requires a matching corlib.
14900
14901 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14902
14903         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14904           Committed again without the CRs.
14905         
14906 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14907
14908         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14909           getting it from the "this" socket instance. Did not work
14910           if the socket is a subclass of Socket.
14911           Also fixed bug #35371.
14912
14913 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14914
14915         * metadata.c: fixed size for TypedByRef.
14916         * loader.c: when searching for a method, consider the vararg amrker.
14917         * unicode.c, decimal.c: constify some arrays.
14918
14919 2003-07-15  Dick Porter  <dick@ximian.com>
14920
14921         * socket-io.c: Fixed compilation for gcc < 3.2.
14922
14923         Fixed compilation for machines that don't have AF_INET6 (thanks to
14924         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14925
14926         Fixed compile warnings.
14927         
14928         Fixed formatting and line endings.
14929
14930 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14931
14932         * socket-io.h:
14933         * socket-io.c: Added IPv6 support.
14934
14935 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14936
14937         * class.c (mono_class_is_assignable_from): New function to implement
14938         the is_assignable_from logic. Used by mono_object_isinst, 
14939         Type::IsAssignableFrom () and the interpreter.
14940
14941         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14942         Object, even interfaces.
14943         
14944         * object.c (mono_object_isinst): Implement in terms of 
14945         is_assignable_from.
14946
14947         * icall.c (ves_icall_type_is_assignable_from): New icall.
14948
14949 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14950
14951         * domain.c (foreach_domain): fix compiler warning.
14952
14953 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14954
14955         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14956         not available on all plattforms
14957
14958 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14959
14960         * image.h image.c: Store the metadata version string in MonoImage.
14961         * icall.c: New icall to retrieve the image version.
14962         * reflection.c (create_dynamic_image): Fill in the image version field
14963         * reflection.c (build_compressed_metadata): Use the image version
14964         from the image structure.
14965
14966 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14967
14968         * appdomain.c: modified comment.
14969         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14970         That will be its last iteration when mono_gc_cleanup is called from
14971         mono_runtime_cleanup and before the domain is unloaded.
14972
14973         Fixes bug #45962.
14974
14975 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14976
14977         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14978         attributes.
14979
14980 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14981
14982         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14983         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14984         Bernie Solomon <bernard@ugsolutions.com>.
14985
14986 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14987
14988         * object.c, object.h: provide mono_object_new_fast() for faster
14989         allocation in some special cases.
14990
14991 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14992
14993         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14994         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14995
14996 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14997
14998         * threadpool.c: fix leaks.
14999
15000 2003-07-01  Dick Porter  <dick@ximian.com>
15001
15002         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
15003         using MonoGHashTables.  Fixes threadpool bug posted to list.
15004
15005 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15006
15007         * image.h, image.c: added support to load an assembly from a byte array.
15008         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
15009         assembly bundle support.
15010
15011 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
15012
15013         * threadpool.c (mono_thread_pool_add): keep a reference to the
15014         AsyncResult to prevent GC
15015
15016 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15017
15018         * class.c: leak fix.
15019
15020 2003-06-25  Dick Porter  <dick@ximian.com>
15021
15022         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
15023         for the async object, the WaitHandle object will close the handle.
15024         Fixes bug 45321.
15025
15026 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15027
15028         * class.c: in mono_array_class_get (), lookup from the hash with the
15029         same type we insert: this works around a bug in
15030         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
15031         lluis. The real fix will have to wait for after the release.
15032
15033 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15034
15035         * icall.c: fix memory leak when getting type members.
15036
15037 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15038
15039         * reflection.c: added more pubtoken special cases.
15040
15041 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
15042
15043         * class.c: handle field offset correctly when class size
15044         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
15045
15046 2003-06-20  Martin Baulig  <martin@ximian.com>
15047
15048         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
15049         *image' field.
15050
15051 2003-06-20  Martin Baulig  <martin@ximian.com>
15052
15053         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
15054
15055 2003-06-20  Martin Baulig  <martin@ximian.com>
15056
15057         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
15058         just distinguish between variables in registers and variables at
15059         an offset relative to a register.
15060
15061 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15062
15063         * icall.c: #ifdef out latest changes until mcs is fixed.
15064
15065 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15066
15067         * icall.c: return members in metadata order.
15068
15069 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15070
15071         * icall.c: avoid infinite loop in GetTimeZoneData.
15072
15073 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
15074
15075         * icall.c: added Marshal.Prelink/All icalls.
15076
15077 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15078
15079         * object.c, object.h: fix warnings and do some overflow checking
15080         when creating arrays.
15081
15082 2003-06-17  Dick Porter  <dick@ximian.com>
15083
15084         * file-io.h:
15085         * file-io.c: File attributes need to be tweaked slightly when
15086         passed from the managed to the w32 world.
15087
15088 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15089         * profiler.h profiler-private.h profiler.c: Rework last patch
15090         based on suggestion by Paolo.
15091         
15092 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15093
15094         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
15095         instruction level coverage data collection.
15096         * profiler.h profiler.c (: Added new callback function which can be
15097         used by the profiler to limit which functions should have coverage
15098         instrumentation.
15099         * profiler.c (mono_profiler_load): Call g_module_build_path to
15100         generate the file name of the profiler library.
15101
15102 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15103
15104         * profiler.c, profiler.h, profiler-private.h: added basic block 
15105         coverage profiling API.
15106
15107 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
15108
15109         * reflection.c (mono_reflection_create_runtime_class): Add support
15110         for events in dynamically generated code.
15111
15112         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15113         not allocated.
15114
15115 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15116
15117         * icall.c: when getting timezone info, return reasonable values if we
15118         can't get the actual data.
15119
15120 2003-06-14  Dick Porter  <dick@ximian.com>
15121
15122         * threads.c (start_wrapper): Remove the reference to the thread
15123         object in the TLS data, so the thread object can be finalized.
15124         This won't be reached if the thread threw an uncaught exception,
15125         so those thread handles will stay referenced :-( (This is due to
15126         missing support for scanning thread-specific data in the Boehm GC
15127         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15128
15129 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15130
15131         * reflection.c: ensure streams and tables are first allocated with
15132         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15133
15134 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15135
15136         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15137
15138 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15139
15140         * reflection.c (mono_reflection_create_runtime_class): Add support for
15141         properties to dynamically created classes.
15142         * reflection.c: Fix a few places where non-MonoObjects were inserted
15143         into the tokens hashtable.
15144
15145 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15146
15147         * object.c: some support to handle out of memory exceptions.
15148
15149 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15150
15151         * marshal.c (mono_marshal_get_native_wrapper): support reference
15152         return types
15153
15154 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15155
15156         * object.h, object.c: more portability stuff from Bernie Solomon.
15157         Unexport mono_object_allocate(). Added mono_object_unbox ().
15158         Set exitcode when an unhandled exception is thrown.
15159
15160 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15161
15162         * marshal.c (mono_marshal_get_native_wrapper): use custom
15163         marshaler for return types.
15164
15165 2003-06-10  Dick Porter  <dick@ximian.com>
15166
15167         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15168         ip_mreq is available
15169
15170 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15171
15172         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15173         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15174         by Bernie Solomon <bernard@ugsolutions.com>.
15175
15176 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15177
15178         * gc.c (mono_gc_init): Avoid error message on shutdown when
15179         GC_DONT_GC=1 is used.
15180
15181         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15182         New icall to return the GUID of a module.
15183
15184 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15185
15186         * class.c: ensure instance size always includes the parent's size
15187         even whem class size is set explicitly (fixes bug#44294).
15188
15189 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15190
15191         * profiler.h, profiler.c: made the simple profiler thread-safe,
15192         get more accurate timing info. Allow the loading of an
15193         externally-developed profiler module.
15194
15195 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15196
15197         * marshal.c (mono_marshal_get_native_wrapper): improved
15198         class/byref arguments.
15199         (mono_marshal_get_native_wrapper): better string marshaling support.
15200
15201 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15202
15203         * class.c: ensure .pack and .size are handled correctly and
15204         simplified layout of static fields.
15205
15206 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15207
15208         * appdomain.c
15209         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15210
15211         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15212         current directory (fix bug 44008)
15213
15214 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15215
15216         * marshal.c (mono_marshal_get_native_wrapper): started support for
15217         custom marshalers.
15218         (mono_delegate_to_ftnptr): consider marshalling specifications
15219
15220 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15221
15222         * reflection.c, reflection.h: emit custom marshal info.
15223
15224 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15225
15226         * object.c: free the GError.
15227         * icall.c: added CloseEvent_internal.
15228         * threads.[ch]:
15229         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15230         call.
15231
15232 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15233
15234         * loader.c (mono_method_get_signature): Add support for dynamic
15235         assemblies.
15236
15237 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15238
15239         * reflection.c: fixed bug #43905.
15240
15241 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15242
15243         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15244         handling TypedReference and ArgIterator.
15245         * loader.c, loader.h: added function to get signature at call site.
15246
15247 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15248
15249         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15250         data readonly. Buglets and warning fixes. Some MethodSpec support.
15251
15252 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15253
15254         * class.h, class.c, object.c: remove relative numbering support.
15255
15256 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15257
15258         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15259         free the string, until we get a chance to fix Gtk#
15260
15261 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15262
15263         * marshal.c: revert last patch.
15264
15265 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15266
15267         * icall.c: updates for new mono_class_vtable() not calling
15268         the type constructor anymore.
15269
15270 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15271
15272         * object.h, object.c: separate vtable creation from type
15273         initialization. Make running the .cctor thread safe.
15274
15275 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15276
15277         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15278
15279 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15280
15281         * loader.c (mono_get_method): consider calling convention
15282
15283 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15284
15285         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15286         to return the invisible global type for a module.
15287
15288         * reflection.c (mono_image_build_metadata): Emit global fields too.
15289
15290 2003-05-20  Peter Williams  <peterw@ximian.com>
15291
15292         * loader.c (mono_lookup_internal_call): Add a few newlines.
15293
15294 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15295
15296         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15297         literal strings.
15298
15299         * appdomain.c (set_domain_search_path): Recalculate search path when
15300         AppDomainSetup.PrivateBinPath changes.
15301
15302         * object.c (mono_class_compute_gc_descriptor): It turns out some
15303         parts of the class libs (like System.Thread) holds pointers to
15304         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15305         to treat native int a pointer type here.
15306         
15307 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15308
15309         * appdomain.h, domain.c: add hashtable for jump target resolution.
15310
15311 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15312
15313         * reflection.h reflection.c icall.c: Added new icalls 
15314         GetManifestResourceInfoInternal, GetModulesInternal and support
15315         infrastructure.
15316
15317 2003-05-16  Dick Porter  <dick@ximian.com>
15318
15319         * icall.c:
15320         * file-io.h:
15321         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15322
15323 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15324
15325         * object.c: mono_store_remote_field: little fix to previous patch.
15326
15327 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15328
15329         * class.c: add constructors to array classes.
15330         * icall.c: special case array construction for InternalInvoke (),
15331
15332 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15333
15334         * class.h class.c reflection.c object.c: Added support for field
15335         defaults in dynamically generated classes.
15336
15337 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15338
15339         * reflection.c: properly encode charset for ddlimport.
15340
15341 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15342
15343         * threads.c: allow compiling without GC.
15344
15345 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15346
15347         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15348         handling of thread static data.
15349
15350 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15351
15352         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15353
15354 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15355
15356         * class.c (mono_array_class_get): always set the serializable flags
15357         (mono_array_class_get): always set the SEALED attribute for array types
15358
15359 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15360
15361         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15362         attributes (fix for bug 42021).
15363
15364 2003-05-12  Dick Porter  <dick@ximian.com>
15365
15366         * gc.c: Don't run finalizers when the finalizer thread is
15367         finishing up, because the default domain has already been
15368         destroyed.
15369
15370 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15371
15372         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15373         value is null, we should throw an exception.   This is slightly
15374         different than the other conventions used for the constructor.
15375
15376 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15377
15378         * socket-io.c: fixed windows build.
15379
15380 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15381
15382         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15383
15384 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15385
15386         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15387         compilers.
15388
15389 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15390
15391         * class.c (mono_class_layout_fields): Add experimental GC aware
15392         auto layout facility. Requires class library changes to work correctly.
15393
15394         (mono_class_setup_vtable): Avoid overriding explicit interface
15395         method implementations. Fixes iface3.exe test.
15396
15397         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15398         object reference.
15399         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15400         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15401
15402         * metadata.h: Add new type classification macro which determines
15403         whenever the type holds an object reference.
15404
15405 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15406
15407         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15408
15409 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15410
15411         * gc.c (finalizer_thread): Work around a GC bug.
15412
15413 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15414
15415         * marshal.c (emit_struct_conv): allow unions
15416
15417         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15418
15419 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15420
15421         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15422
15423 2003-05-06  Martin Baulig  <martin@ximian.com>
15424
15425         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15426
15427 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15428
15429         * socket-io.c:
15430         (Select_internal): allow NULLs, don't create arrays if not needed.
15431         Coupled with Socket.cs changes.
15432
15433         * threadpool.c:
15434         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15435         register a finalizer for it that will close the semaphore handle. This
15436         fixes the leak and make Lupus' test run with > 4080 loops.
15437
15438 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15439
15440         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15441         Jerome Laban (bug #42287)
15442
15443 2003-05-02  Martin Baulig  <martin@ximian.com>
15444
15445         * debug-mono-symfile.h
15446         (MonoSymbolFile): Moved declaration into mono-debug.h.
15447         (MonoDebugMethodJitInfo): Likewise.
15448         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15449         argument.
15450         (_mono_debug_address_from_il_offset): Take a
15451         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15452
15453         * mono-debug.h
15454         (MonoDebugDomainData): New struct.
15455         (mono_debug_get_domain_data): New function.
15456         (mono_debug_add_method): Take an additional `MonoDomain *'
15457         argument.
15458         (mono_debug_source_location_from_address): Likewise.
15459         (mono_debug_il_offset_from_address): Likewise.
15460         (mono_debug_address_from_il_offset): Likewise.
15461
15462 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15463
15464         * reflection.c: one more check for null type in custom attrs.
15465
15466 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15467
15468         * reflection.c: avoid warning (comparison is always false due to limited
15469         range of data type).
15470
15471 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15472
15473         * icall.c: throw an exception in Type.GetField if the argument 'name'
15474         is NULL.
15475
15476 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15477
15478         * reflection.c: fixed handling of enums in named arguments to custom
15479         attributes (bug #42123).
15480
15481 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15482
15483         * reflection.c: use the right array element type and handle
15484         a null for a Type argument, too.
15485
15486 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15487
15488         * reflection.c: handle arrays as arguments to custom attributes.
15489
15490 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15491
15492         * reflection.c: handle a string value in a custom attr
15493         ctor that takes an object.
15494
15495 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15496
15497         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15498         (fix bug #42063)
15499
15500 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15501
15502         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15503
15504 2003-04-27  Martin Baulig  <martin@ximian.com>
15505
15506         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15507         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15508         MONO_DEBUGGER_EVENT_BREAKPOINT.
15509         (mono_breakpoint_trampoline_code): Removed.
15510         (mono_debugger_event_handler): The last argument is now a
15511         `guint32'.
15512         (mono_debugger_insert_breakpoint_full): Removed the
15513         `use_trampoline' argument.
15514         (mono_debugger_method_has_breakpoint): Likewise.
15515         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15516         mono_debugger_breakpoint_callback(); take the method and
15517         breakpoint number as arguments.
15518
15519 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15520
15521         * metadata.c: fix off by one when loading parameters attributes.
15522
15523 2003-04-24  Martin Baulig  <martin@ximian.com>
15524
15525         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15526
15527 2003-04-24  Martin Baulig  <martin@ximian.com>
15528
15529         * mono-debug-debugger.c: Moved all code which interacts with the
15530         Mono Debugger here.
15531
15532         * debug-mono-symfile.c: This code now just deals with the symbol
15533         file itself, the debugger code is now in mono-debug-debugger.c.
15534
15535 2003-04-23  Martin Baulig  <martin@ximian.com>
15536
15537         * mono-debug.c (mono_debug_source_location_from_il_offset):
15538         New method; like mono_debug_source_location_from_address(), but
15539         takes an IL offset instead of a machine address.
15540
15541 2003-04-23  Martin Baulig  <martin@ximian.com>
15542
15543         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15544         `line' field; this is now computed by the debugger.
15545
15546 2003-04-23  Martin Baulig  <martin@ximian.com>
15547
15548         * mono-debug.[ch]: New files.  This is the new debugging interface.
15549
15550         * mono-debug-debugger.[ch]: New files.  Moved all code which
15551         interacts with the Mono Debugger here.
15552
15553 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15554
15555         * domain.c (mono_init): initialize mono_defaults.monitor_class
15556
15557 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15558
15559         * reflection.c (method_encode_code): Add a spicy exception to help
15560         future compiler authors.
15561
15562 2003-04-21  Martin Baulig  <martin@ximian.com>
15563
15564         * icall.c
15565         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15566         Make this work with relative pathnames; g_filename_to_uri() needs
15567         an absolute filename.
15568
15569 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15570
15571         * icall.c: Track name changes in Object and ValueType.
15572
15573 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15574
15575         * metadata.c (mono_type_stack_size): size should be a multiple of
15576         sizeof (gpointer)
15577
15578 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15579
15580         * gc.c:
15581         (internal_domain_finalize): moved into mono_domain_finalize. No need
15582         to create another thread because the finalizers will be run in the
15583         finalizer thread.
15584         
15585         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15586         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15587         to be run (MS does this too).
15588
15589 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15590
15591         * object.c (mono_class_compute_gc_descriptor): Update comment.
15592
15593         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15594
15595         * image.h: Add synchronized wrapper cache.
15596
15597         * image.c (do_mono_image_open): Initialize cache.
15598
15599         * reflection.c (create_dynamic_mono_image): Initialize cache.
15600
15601 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15602
15603         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15604         ves_icall_System_Buffer_ByteLengthInternal.
15605
15606 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15607
15608         * reflection.c: setup klass->nested_in earlier. Allow
15609         a dash in the assembly name.
15610
15611 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15612
15613         * metadata.c (mono_type_to_unmanaged): dont access
15614         type->data.klass for MONO_TYPE_OBJECT
15615         (mono_type_to_unmanaged): consider System.Delegate class
15616
15617 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15618
15619         * class.c: just setup supertypes in the proper place instead of
15620         initializing the full element class for arrays.
15621
15622 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15623
15624         * class.c: ensure the element class of arrays is initialized.
15625         Setup the supertype info for array classes, too.
15626
15627 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15628
15629         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15630
15631 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15632
15633         * Makefile.am: re-added -m option when running cygpath. This way,
15634         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15635         separator.
15636         * mono-config.c: same codepath for locating mono config file for WIN32
15637         and the rest.
15638         * assembly.c: if mono_assembly_setrootdir is called, don't override
15639         the value set.
15640
15641 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15642
15643         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15644         MONO_ASSEMBLIES variable.
15645
15646 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15647
15648         * icall.c: added Assembly::GetNamespaces() icall.
15649
15650 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15651
15652         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15653
15654 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15655
15656         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15657         * object.c: fixed bug in the construction of vtable for proxies
15658
15659 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15660
15661         * object.c (mono_array_new): Mark mono_array_new as an icall.
15662
15663 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15664
15665         * class.c: fixed test for public method when overriding interfaces.
15666         Closes bug #40970.
15667
15668 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15669
15670         * appdomain.h, domain.c: added mono_domain_foreach() to
15671         be able to access the currently loaded appdomains.
15672         * object.c: make string interning work across sppdomains.
15673         Mark some functions for use as icalls.
15674
15675 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15676
15677         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15678
15679         * reflection.h reflection.c: Allocate long living data using 
15680         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15681
15682         * reflection.c: Double the allocation size in streams instead of
15683         increasing it, to prevent unneccesary copying on large assemblies.
15684         
15685         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15686         creation if the assembly does not have the Run flag set.
15687
15688 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15689
15690         * class.h: avoid the C++ keywords in header files (Jerome Laban
15691         spotted and fixed this).
15692
15693 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15694
15695         * object.c:
15696         (mono_unhandled_exception): fill in the arguments for the
15697         UnhandledException event. Only trigger that event for the default
15698         domain (as MS does).
15699
15700 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15701
15702         * object.c: Improve typed allocation stuff based on suggestions from
15703         Paolo. Also turn it on if the GC library supports it.
15704
15705 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15706
15707         * object.c object.h class.h: Added experimental typed allocation
15708         facility using the interfaces in gc_gcj.h.
15709
15710         * os/gc_wrapper.h: Added new include files.
15711         
15712 2003-04-03  Martin Baulig  <martin@ximian.com>
15713
15714         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15715         which is not yet enabled by default.
15716
15717         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15718         functions.
15719         (mono_gc_lock, mono_gc_unlock): New static functions.
15720
15721         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15722         functions; stop/start the world for the garbage collector.  This
15723         is using the windows API; we need to complete the SuspendThread()/
15724         ResumeThread() implementation in the io-layer to make this work on Unix.
15725         (mono_gc_push_all_stacks): New public function; tells the garbage
15726         collector about the stack pointers from all managed threads.
15727
15728 2003-04-03  Martin Baulig  <martin@ximian.com>
15729
15730         * object.h (MonoThread): Added `gpointer stack_ptr'.
15731
15732         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15733
15734 2003-04-03  Martin Baulig  <martin@ximian.com>
15735
15736         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15737
15738 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15739
15740         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15741         field.last.
15742
15743 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15744
15745         * loader.c (mono_lookup_internal_call): Report the corlib that is
15746         out of sync.
15747
15748 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15749
15750         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15751         System.DBNull (it's class not valuetype).
15752
15753 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15754
15755         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15756         if the array method was already assigned a token (fixes bug#40646).
15757
15758 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15759
15760         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15761         if no assembly is given.
15762
15763 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15764
15765         * metadata.h: Added the new tables.
15766
15767         * row-indexes.h: Added definitions for new tables.
15768
15769         * metadata.c: Add schemas for new tables, and add support for
15770         computing the sizes of them.
15771
15772         * class.c: Update for handling the new type cases.
15773
15774 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15775
15776         * metadata.h (MONO_TYPE_IS_VOID): new macro
15777
15778 2003-03-31  Martin Baulig  <martin@ximian.com>
15779
15780         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15781
15782         * threads.c (mono_thread_new_init): Call `thread_created' in the
15783         mono_thread_callbacks.
15784
15785 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15786
15787         * loader.h: added marshalbyrefobject_class to mono_defaults
15788         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15789         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15790           generation of output parameters.
15791           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15792         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15793           contextbound and the target object belongs to the context of the caller.
15794         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15795         * object.c: Implemented support for interfaces and abstract classes
15796           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15797           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15798
15799 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15800
15801         * class.h class.c (mono_class_is_subclass_of): New function.
15802         
15803         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15804         routines for most common case (calls from ArrayList::ToArray).
15805
15806         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15807         routine so programs which call Environment::Exit() can be profiled.
15808
15809         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15810         Added MONO_ARCH_SAVE_REGS.
15811
15812         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15813
15814 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15815
15816         * blob.h: Add a couple of new MonoType types definitions.
15817
15818         * tabledefs.h: Add a couple of new call convs.
15819
15820 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15821
15822         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15823         the layout of the class.
15824
15825         * reflection.c (alloc_table): double the size on overflow to avoid
15826         unnecessary copying.
15827
15828         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15829         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15830         null so it can be garbage collected.
15831         
15832 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15833
15834         * reflection.c (mono_reflection_get_type): Return the resolved type
15835         only if it is in the assembly we searched.
15836
15837         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15838
15839         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15840         method.
15841
15842 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15843
15844         * appdomain.c:
15845         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15846         the right one is 'file:///blah', but MS allows it.
15847         * assembly.c:
15848         (mono_assembly_open): allow 'file://blah'
15849
15850         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15851
15852 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15853
15854         * socket-io.c: fixes bug #40310.
15855
15856 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15857
15858         * reflection.c (mono_reflection_parse_type): handle deeply nested
15859         types correctly.
15860
15861         * reflection.c (mono_image_create_token): Use unique token values
15862         since they will be put into a hash table.
15863
15864         * class.c (mono_class_setup_vtable): If a method occurs in more than
15865         one place in the vtable, and it gets overriden, then change the
15866         other occurances too.
15867
15868         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15869         object as return type.
15870
15871 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15872
15873         * icall.c: Deleted "ToString" implementation for double and float
15874         because they are full implemented in managed code.
15875
15876 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15877
15878         * reflection.c, reflection.h: implemented and exported functions
15879         to retrieve info about custom attributes.
15880
15881 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15882
15883         * appdomain.c: moved Uri handling to assembly.c
15884         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15885         work when using a file Uri in *nix and windows.
15886
15887         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15888         GetReferencedAssemblies.
15889
15890 2003-03-18  Dick Porter  <dick@ximian.com>
15891
15892         * icall.c: Rename a couple of internal calls
15893
15894         * threads.c: Set the thread state to Stopped when a thread exits.
15895         Fixes bug 39377.
15896
15897 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15898
15899         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15900         New icall.
15901
15902         * object.c (mono_class_vtable): fix warning.
15903
15904 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15905
15906         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15907
15908         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15909         memory.
15910         (method_encode_clauses): Create exception info structures in the right
15911         order.
15912         (mono_reflection_setup_internal_class): Initialize supertypes field.
15913
15914         * class.c object.c: Handle interfaces which implement other interfaces 
15915         correctly.
15916
15917         * class.h class.c: Move the supertypes array initialization code into 
15918         a separate function so it can be used for dynamic types too. Also call
15919         it earlier, in mono_class_init(), since it can be used before the
15920         type is initialized.
15921
15922 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15923
15924         * Makefile.am:
15925         * assembly.c:
15926         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15927
15928         * appdomain.c:
15929         * appdomain.h:
15930         * marshal.c:
15931         * object.c: remove warnings.
15932
15933 2003-03-13  Martin Baulig  <martin@ximian.com>
15934
15935         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15936         (MonoDebugLexicalBlockEntry): New types.
15937
15938         * debug-mono-symfile.c
15939         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15940
15941 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15942
15943         * process.c: ret can be any non-zero value accroding to MS doc.
15944
15945 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15946
15947         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15948         fixing a warning for a miss-used prototype, would have cause
15949         random memory corruption.
15950
15951 2003-03-07  Martin Baulig  <martin@ximian.com>
15952
15953         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15954         getting really annoying ....
15955
15956 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15957
15958         * reflection.c (fixup_method): added support for array methods.
15959
15960 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15961
15962         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15963         (pointed out by Michael Adams).
15964
15965 2003-03-04  Dick Porter  <dick@ximian.com>
15966
15967         * icall.c: Temporarily reverted the Double and Single ToString()
15968         change, because it broke nunit.
15969
15970 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15971
15972         * object.h, threads.h: make include files compatible with C++
15973         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15974
15975 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15976
15977         * icall.c: Erased ToString helper functions for Double and Single.
15978         Now, that implementations ar all in managed code (Double and Single
15979         Formatters).
15980
15981 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15982
15983         * appdomain.c: Added method for initializing the default context of
15984         a domain. Added internal call for getting the default context.
15985         * appdomain.h: Added context variable in MonoDomain struct.
15986         * domain.c: mono_domain_set also sets the default context of the domain
15987         * icall.c: Mapped internal method InternalGetDefaultContext.
15988         * object.c: mono_object_get_virtual_method returns always a remoting
15989         wrapper if the object is a transparent proxy.
15990         mono_runtime_invoke_array: when creating an object by calling the
15991         constructor, if the created object is a proxy, then the constructor should
15992         be called using the a remoting wrapper.
15993
15994 2003-03-03  Dick Porter  <dick@ximian.com>
15995
15996         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15997         variable so it compiles on solaris.  Problem spotted by
15998         Christopher Taylor <ct@cs.clemson.edu>
15999
16000 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16001
16002         * appdomain.c:
16003         (get_info_from_assembly_name): don't leak value.
16004
16005         * icall.c:
16006         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
16007         result.
16008
16009 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
16010
16011         * assembly.c: export mono_image_load_references ().
16012         * class.c: handle function pointers. mono_class_from_name() now
16013         supports nested type names directly.
16014
16015 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
16016
16017         * reflection.h reflection.c: Encode already created dynamic methods 
16018         and fields correctly as a DEF instead of a REF.
16019
16020         * reflection.c: Get rid of the force_ref argument to 
16021         mono_image_typedef_or_ref since it was wrong in the first place.
16022
16023         * string-icalls.c: add error checking to string constructors according
16024         to the MSDN docs.
16025
16026         * reflection.c: Emit types in the order their TypeBuilders were 
16027         created. Previously, a new table index was assigned to each type before
16028         the tables were emitted. This was wrong because the signature blob
16029         might already refer to a type by its original table index.
16030
16031 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
16032
16033         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
16034         change.
16035         
16036 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16037
16038         * Makefile.am: make assemblies dir have \ instead of / on windows.
16039
16040 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
16041
16042         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
16043         iterate over the NESTEDCLASS table using a linear search since the
16044         table is not guaranteed to be sorted by the secondary key.
16045
16046         * class.c (mono_class_create_from_typedef): fixed up call to
16047         mono_metadata_nesting_typedef.
16048         
16049 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
16050
16051         * marshal.c (mono_string_to_byvalstr): clear the memory as
16052         suggested by Jerome Laban <jlaban@wanadoo.fr>
16053
16054 2003-02-26  Dick Porter  <dick@ximian.com>
16055
16056         * process.c: Cope with padding in .rsrc blocks
16057
16058 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16059
16060         * metadata.h: reverted the filter_len change, it breaks reflection
16061         
16062 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16063
16064         * metadata.h: added a new field to store the filter_len
16065         
16066
16067 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
16068
16069         * reflection.c: handle custom attributes for types and members
16070         created with Reflection.Emit (bug#38422).
16071
16072 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
16073
16074         * reflection.c: define RTSpecialName automatically for constructors for
16075         compatibility with MS.NET.
16076
16077         * reflection.c (mono_reflection_create_runtime_class): initialize
16078         nested_in field of dynamically created classes.
16079
16080 2003-02-22  Martin Baulig  <martin@ximian.com>
16081
16082         * debug-mono-symfile.h: Incremented version number.
16083
16084 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16085
16086         * object.h icall.c process.c: fix warnings.
16087
16088 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16089
16090         * appdomain.h appdomain.c:
16091         (mono_domain_try_type_resolve): split the 
16092         name_or_tb argument into a name and a tb argument.
16093         (mono_domain_has_type_resolve): new function to check whenever the
16094         application has registered a TypeResolve event handler.
16095         
16096         * icall.c reflection.h reflection.c: move the type resolve logic into
16097         mono_reflection_get_type () so it will be invoked when 
16098         Assembly::GetType () is called.
16099
16100         * reflection.c:
16101         (mono_reflection_get_type): renamed to get_type_internal.
16102         (mono_reflection_get_type): fixed type name generation so it works 
16103         for nested types too.
16104         (mono_reflection_get_type): call has_type_resolve () to avoid the 
16105         costly type name generation if there is no resolve event handler.
16106
16107 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16108
16109         * class.c, image.c: load exported types from file references.
16110
16111 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
16112
16113         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16114           used to cache the managed methods used to create proxies and make 
16115           remote invocation of methods.
16116         * class.h: Added in MonoVTable a flag to indicate that a class needs 
16117           to be remotely created.
16118         * object.c: Modified the method mono_class_vtable(). It now initializes 
16119           the remote flag of the vtable. Modified mono_object_new_specific(), 
16120           so now it checks the remote flag.
16121         * icall.c: Added a couple of internal methods, one for enabling instance 
16122           creation interception for a type, and one for creating objects bypassing
16123           the remote check.
16124
16125 2003-02-18  Martin Baulig  <martin@ximian.com>
16126
16127         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16128         New interncall to get a method's metadata token.
16129
16130         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16131         New interncall for the debugger.
16132
16133 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16134
16135         * class.c (mono_class_setup_vtable): allocate supertype array
16136
16137 2003-02-18  Martin Baulig  <martin@ximian.com>
16138
16139         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16140
16141 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16142
16143         * reflection.c:
16144         (assembly_name_to_aname): jump over unknown properties (i've found
16145         something like: 'type, assembly, version=xxx, custom=null, public...',
16146         so now will ignore custom=null and still get the rest of the values).
16147
16148 2003-02-17  Dick Porter  <dick@ximian.com>
16149
16150         * threads.c: Have Thread.Start() wait for a semaphore to signal
16151         that the thread has set up all its local data.  This fixes bug
16152         34323, where Abort() raced the new thread's TLS data.
16153
16154         Also removes the handle_store() call from start_wrapper, because
16155         threads are now always created suspended and there is no longer a
16156         race between the parent and child threads to store the info.
16157
16158 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16159
16160         * image.c: explain the #- heap issue in a message, hopefully
16161         avoiding FAQs on mono-list.
16162
16163 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16164
16165         * icall.c:
16166         (GetEntryAssembly): if the domain has not invoked
16167         AppDomain.ExecuteAssembly yet, return the assembly of the default
16168         AppDomain.
16169
16170 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16171
16172         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16173
16174 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16175
16176         * metadata.c, reflection.c: simple speedup to type hash
16177         and equals code.
16178
16179 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16180
16181         * image.c, image.h, class.c, assembly.c: move module loading
16182         to MonoImage. When loading metadata, consider alignemnet from
16183         the start of metadata, not from the metadata address in memory.
16184
16185 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16186
16187         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16188         AssemblyBuilder objects. Factored out custom attribute creation into
16189         a separate function.
16190         (create_custom_attr): new function to create custom attributes.
16191
16192 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16193
16194         * Makefile.am: Got tired of typing the full pathname to pedump.
16195         Until there is another option, am installing this.
16196
16197 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16198
16199         * class.c (class_compute_field_layout): always set field->parent 
16200         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16201
16202 2003-02-11  Dick Porter  <dick@ximian.com>
16203
16204         * threads-types.h:
16205         * monitor.c: Rewrote Monitor, making lock much faster and
16206         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16207         creates them as needed.
16208
16209         * exception.c: Added SynchronizationLockException
16210
16211         * threads.c: Deleted old Monitor implementation.  The new one is
16212         in a new file.
16213
16214 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16215
16216         * class.c: handled TypedReference type code. Set the correct size for
16217         class data. Setup interface_offsets for interface classes, too.
16218
16219 2003-02-09  Martin Baulig  <martin@ximian.com>
16220
16221         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16222
16223 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16224
16225         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16226         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16227         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16228         * verify.c: check for code that runs after the end of the method.
16229
16230 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16231
16232         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16233         "System.Math::Round2".
16234         * sysmath.h: Added Floor, Round and Round2 definitions.
16235         * sysmath.c: Modified certain functions that were not 100% compliant
16236         with MS.NET (math precision) and added the implementation of Floor,
16237         Round and Round2.
16238
16239 2003-02-07  Martin Baulig  <martin@ximian.com>
16240
16241         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16242
16243 2003-02-07  Martin Baulig  <martin@ximian.com>
16244
16245         * debug-mono-symfile.c: Reflected latest symwriter changes.
16246         (mono_debug_create_mono_symbol_file): Removed.
16247         (mono_debug_open_mono_symbol_file): Take an argument which
16248         specifies whether to create a dynamic symbol file.
16249
16250 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16251
16252         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16253
16254 2003-02-05  Martin Baulig  <martin@ximian.com>
16255
16256         * reflection.c (mono_image_build_metadata): Make this public,
16257         protect it against being called multiple times, don't create
16258         resources and don't build the compressed metadata here.
16259         (mono_image_create_pefile): Do this here.
16260
16261         * icall.c
16262         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16263
16264 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16265
16266         * socket-io.c: fixed bug #36322.
16267
16268 2003-02-06  Piers Haken <piersh@friskit.com>
16269
16270         * appdomain.[ch]:
16271         * class.h:
16272         * debug-mono-symfile.c:
16273         * icall.c:
16274         * loader.c:
16275         * mono-config.c:
16276         * monosn.c:
16277         * reflection.c:
16278         * socket-io.c: warning cleanups
16279
16280 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16281
16282         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16283         function. works like remoting invoke, but does a check for the Proxy first.
16284
16285 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16286
16287         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16288
16289 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16290
16291         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16292         array of pointers.
16293         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16294         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16295
16296         * object.c (mono_store_remote_field_new): used by the new jit
16297         instead of mono_store_remote_field
16298         (mono_load_remote_field_new): used by the new jit
16299         instead of mono_load_remote_field
16300
16301 2003-02-05  Patrik Torstensson
16302
16303         * appdomain.c: changed unload to take the domain id instead
16304         of domain
16305         
16306         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16307
16308
16309 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16310
16311         * appdomain.c: don't look for assemblies in ApplicationBase if
16312         PrivateBinPathProbe is set.
16313
16314 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16315
16316         * object.c: make the first argument in main_args contain the absolute
16317         path to the assembly. Fixes bug #37511.
16318
16319 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16320
16321         * icall.c: get correct UTC offset for countries not using daylight
16322         time saving. Fixes bug #30030.
16323
16324 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16325
16326         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16327         and 1 are the family).
16328
16329 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16330
16331         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16332
16333         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16334
16335 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16336
16337         * reflection.c: added support for SignatureHelper tokens, which is
16338         needed by the Calli opcode.
16339
16340         * reflection.h: track changes to SignatureHelper class.
16341
16342         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16343
16344 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16345
16346         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16347
16348 2003-02-03  Patrik Torstensson
16349         * appdomain.[c|h], domain.c : 
16350          - Added support for getting a domain via domain id
16351          - Support for setting and getting domain from System.AppDomain 
16352            (used in cross appdomain channel)
16353          - Added support for get/set for a MonoAppContext on a thread 
16354            (Context class in System.Runtime.Remoting.Contexts),
16355          - Removed hack in Get/SetData and ExecuteAssembly.
16356         
16357         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16358         the managed world to get control when a proxy is created.
16359
16360         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16361         
16362 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16363
16364         * icall.c
16365         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16366         Populate the codebase field as well.
16367
16368 2003-02-02  Martin Baulig  <martin@ximian.com>
16369
16370         * debug-mono-symfile.c
16371         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16372         (mono_debug_symfile_add_method): Allow interncalls.
16373
16374 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16375
16376         * icall.c: throw parse exception if strtod fails or the string is empty.
16377
16378 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16379
16380         * marshal.c: handle object type separately from defined
16381         class types.
16382
16383 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16384
16385         * marshal.c: handle NATIVE_LPSTR for strings when it's
16386         explicitly specified.
16387
16388 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16389
16390         * reflection.c, reflection.h, icall.c: setup the reflection
16391         handle cache for ModuleBuilders and AssemblyBuilders.
16392
16393 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16394
16395         * reflection.c (reflection_methodbuilder_to_mono_method): set
16396         pinvoke flag
16397
16398 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16399
16400         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16401
16402 2003-01-29  Dick Porter  <dick@ximian.com>
16403
16404         * threads.c: No need for the fake_thread kludge now that Thread
16405         doesn't run a class constructor
16406         
16407 2003-01-29  Dick Porter  <dick@ximian.com>
16408
16409         * threads.c: Use g_direct_hash instead of the rather bogus
16410         g_int_hash
16411
16412 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16413
16414         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16415         (fix pinvoke12.exe)
16416         (mono_marshal_get_struct_to_ptr): generate valid IL code
16417         (mono_marshal_get_ptr_to_struct): generate valid IL code
16418         (*): correctly set sig->pinvoke, we need to memdup the signature
16419         to do that
16420
16421 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16422
16423         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16424         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16425
16426 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16427
16428         * profiler.c: provide more callers information.
16429
16430 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16431
16432         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16433
16434         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16435
16436         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16437
16438 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16439
16440         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16441         exception instead of going into an infinite loop on dates which it 
16442         can't yet handle.
16443
16444         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16445         out-of-range exception if needed.
16446
16447         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16448         an implementation for an interface method and to override an inherited
16449         method at the same time. 
16450         Imagine a scenario when a virtual method is used to override a
16451         virtual abstract method in a parent class, and this same method 
16452         provides an implementation for an method inherited from an interface. 
16453         In this case, the interface resolution code will set im->slot, which 
16454         means that the virtual method override pass will skip this method 
16455         which means a pointer to the abstract method inherited from the parent
16456         will remain in the vtable of this non-abstract class.
16457
16458         * class.c: (mono_class_setup_vtable): continue search for a real 
16459         method if only an abstract method is found.     
16460
16461 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16462
16463         * reflection.c: add size to encoding for ByValStr and ByValArray
16464         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16465
16466 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16467
16468         * class.c (mono_class_setup_vtable): pass the override info as an
16469         argument.
16470
16471         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16472         correctly.
16473         
16474         * reflection.c (ensure_runtime_vtable); add support for method 
16475         overrides.
16476         
16477 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16478
16479         * reflection.c (resolution_scope_from_image): Hack to work to work with
16480         dynamic assemblies.
16481
16482         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16483         added a 'force_ref' argument to force this function to allways return 
16484         a TypeRef. This is needed by mono_image_get_memberref_token ().
16485         
16486 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16487
16488         * reflection.c (mono_image_get_type_info): interfaces really don't have
16489         a parent.
16490
16491         * reflection.c (mono_image_basic_init): fill out missing fields of
16492         image structure.
16493
16494         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16495         dynamic assemblies. This is required so dynamic assemblies show up in
16496         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16497         Type::GetType() etc. This is consistent with MS behaviour.
16498
16499         * image.c image.h reflection.c: add newly created classes to the name 
16500         cache so mono_class_get () will find them.      
16501
16502 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16503
16504         First part of changes to get IKVM.NET running under mono.
16505         
16506         * appdomain.h, appdomain.c: added new function 
16507         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16508         This function will call AppDomain::DoTypeResolve to do the actual work.
16509
16510         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16511         moved existing code dealing with dynamic tokens to a new function 
16512         called mono_reflection_lookup_dynamic_token (). This function will 
16513         raise TypeResolve events when appropriate. Since reflection.c is not 
16514         part of libmetadata, a new hook function called 
16515         mono_lookup_dynamic_token() is added to class.c which will call this.
16516
16517         * assembly.h assembly.c: make the invoke_load_hook function public,
16518         so it can be called for dynamic assemblies.
16519
16520         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16521
16522         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16523         type isn't found.
16524
16525         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16526         MonoGHashTable, since it contains pointers to objects which the GC 
16527         needs to track.
16528
16529         * assembly.c (search_loaded): remove unused variable.
16530         
16531 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16532
16533         * object.c: fixed issue exposed by gcc-generated IL programs
16534         that use RVA data for pointers.
16535
16536 2003-01-25  Martin Baulig  <martin@ximian.com>
16537
16538         * threads.c (start_wrapper): Moved the initialization of
16539         `start_func' above the mono_new_thread_init() call to which we
16540         pass it as argument.
16541
16542 2003-01-24  Martin Baulig  <martin@ximian.com>
16543
16544         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16545         the MonoThread pointer.
16546
16547 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16548
16549         * icall.c: Rename `PowImpl' to Pow.
16550
16551 2003-01-23  Dick Porter  <dick@ximian.com>
16552
16553         * threads.c (start_wrapper): Create a Thread object if needed, so
16554         the Main() thread can do the class initialisation in a subthread
16555         that has been set up to allow managed code execution.
16556
16557         Pass the thread ID instead of the MonoThread pointer to the thread
16558         start and attach callbacks.  This change is required, because the
16559         jit thread start callback must be called _before_ the Thread
16560         object can be created.
16561         
16562         (mono_thread_init): Removed much object creation code that is no
16563         longer needed.  No managed code is called from here now.
16564
16565         * object.c (mono_runtime_exec_managed_code): Create a subthread
16566         for Main, and call back to the runtime to use it.
16567         Set the exit code when Main exits.
16568
16569         * gc.c: Make sure domain finalisation happens in a subthread.
16570         Re-enable threaded GC, fixing bug 31333 (again).
16571
16572         * environment.c: System.Environment internall calls (so far just
16573         ExitCode is here, the others are still in icall.c)
16574
16575         * appdomain.c (mono_runtime_cleanup): All threads running managed
16576         code should have finished before mono_runtime_cleanup() is
16577         reached, so no need to clean up threads.
16578
16579 2003-01-22  Martin Baulig  <martin@ximian.com>
16580
16581         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16582         `gpointer func' arguments.      
16583         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16584         but added `MonoThread *thread' argument.
16585         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16586
16587         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16588         and pass it to the mono_thread_start_cb callback.
16589         (mono_install_thread_callbacks): New public function to install a
16590         set of callbacks which are set by the debugger.
16591         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16592
16593 2003-01-22  Martin Baulig  <martin@ximian.com>
16594
16595         * Makefile.am: Install debug-mono-symfile.h.
16596
16597 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16598
16599         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16600
16601 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16602
16603         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16604         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16605         (mono_array_class_get): correctly set access levels of arrays
16606
16607 2003-01-20      Patrik Torstensson
16608         * image.h (MonoAssemblyName): changed major, minor, build, revision
16609         from signed to unsigned.
16610
16611 2003-01-20  sean kasun <skasun@azstarnet.com>
16612
16613         * reflection.c (load_cattr_value): Now this handles
16614         MONO_TYPE_SZARRAY.  Fixes bug #35629
16615
16616 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16617
16618         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16619         integer value
16620
16621 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16622
16623         * decimal.c: fixed bug #26056.
16624
16625 2003-01-17  Martin Baulig  <martin@ximian.com>
16626
16627         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16628
16629 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16630
16631         * exception.[ch]:
16632         (mono_get_exception_type_initialization): new function.
16633
16634         * object.c: throw a TypeInitializationException when an exception is
16635         thrown invoking the class constructor.
16636
16637 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16638
16639         * reflection.c: fixed attribute reading.
16640
16641 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16642
16643         * icall.c:
16644         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16645         provided, look for the type in the calling assembly and then in
16646         mscorlib; if the assembly name is provided, only try that one.
16647
16648 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16649
16650         * object.c: register the vtable before there is a chance it's
16651         queried again recursively.
16652
16653 2003-01-13  Duncan Mak  <duncan@ximian.com>
16654
16655         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16656         gc-internal.h. 
16657         
16658 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16659
16660         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16661
16662 2003-01-11  Martin Baulig  <martin@ximian.com>
16663
16664         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16665         this to 20 for the release.
16666
16667 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16668
16669         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16670
16671         * loader.c (mono_method_get_marshal_info): bug fix
16672
16673         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16674         structures with explicit layout
16675
16676 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16677
16678         * profiler.c: made the output more readable (and sorted). 
16679         Added caller information for the allocation profiler.
16680
16681 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16682
16683         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16684
16685 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16686
16687         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16688         to get value types.
16689         
16690 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16691
16692         * object.c, profiler.h, profiler.c, profiler-private.h:
16693         Added object allocation profiler.
16694
16695 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16696
16697         * reflection.h, reflection.c: handle global methods.
16698         Compress blob entries.
16699
16700 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16701
16702         * marshal.c: fix compilation.
16703
16704 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16705
16706         * loader.c (mono_method_get_marshal_info): impl.
16707
16708         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16709
16710 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16711
16712         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16713         for reference types.
16714
16715 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16716
16717         * loader.c: fixed off by one error in loaded parameter names.
16718
16719 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16720
16721         * marshal.c (mono_marshal_get_icall_wrapper): like
16722         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16723         instead of a MonoMethod.
16724
16725 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16726
16727         * decimal.c: fixed bug #36537.
16728
16729 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16730
16731         * marshal.c: throw a missing method exception if a
16732         P/Invoke method is not found.
16733
16734 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16735
16736         * icall.c: allow a null this for constructors.
16737
16738 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16739
16740         * icall.c: raise the proper exceptions if the arguments to the
16741         internal Invoke are incorrect.
16742
16743 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16744
16745         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16746
16747 2003-01-03  Martin Baulig  <martin@ximian.com>
16748
16749         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16750
16751 2002-12-31  Martin Baulig  <martin@ximian.com>
16752
16753         * debug-mono-symfile.c: Completely rewrote the type section.
16754         Instead of using individual malloc()ed fields, we use one big
16755         continuous memory area and offsets into this area.
16756         See the comments in the source code for details.
16757
16758 2002-12-30  Martin Baulig  <martin@ximian.com>
16759
16760         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16761
16762 2002-12-30  Martin Baulig  <martin@ximian.com>
16763
16764         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16765         line number table in this data blob instead of using an external
16766         pointer.
16767
16768 2002-12-28  Martin Baulig  <martin@ximian.com>
16769
16770         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16771
16772 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16773
16774         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16775         as a boxed return type.
16776
16777 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16778
16779         * appdomain.c
16780         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16781         g_build_filename to properly get separators on the filename created.
16782
16783         * object.h: Small change, introduce MonoMarshalByRefObject to
16784         track the layout of that structure in the C# universe as we make
16785         changes there.
16786
16787 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16788
16789         * object.c: removed assert to allow static fields on interfaces.
16790         * loader.c: a TypeSpec may be used for any type, not just arrays.
16791
16792 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16793
16794         * class.c, class.h: added mono_class_array_element_size ().
16795         Ignore static methods in interfaces.
16796
16797 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16798
16799         * threads.c: fixed the build under cygwin.
16800
16801 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16802
16803         * reflection.c: handle nullref constants. Allocate keys for
16804         reflection handles with the GC.
16805
16806 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16807
16808         * threads.c, threads.h: added mono_thread_get_abort_signal()
16809         to get a suitable signal for thread abort.
16810
16811 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16812
16813         * metadata.c: fix handling of ExportedType table.
16814
16815 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16816
16817         * icall.c: added WriteWindowsDebugString internal call.
16818
16819 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16820
16821         * reflection.h: added fields to match C# implementation.
16822
16823 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16824
16825         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16826
16827 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16828
16829         * gc.h, gc-internal.h: Rename header for GC internal calls to
16830         gc-internal.h from gc.h as to not clash with Boehm GC having its
16831         header installed as <gc.h> in outside include paths.
16832         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16833         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16834
16835 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16836
16837         * icall.c: assign minor, build and revision in FillName.
16838
16839 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16840
16841         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16842         Added support for running code generated by Reflection.Emit.
16843
16844 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16845
16846         * appdomain.c: check for NULL argument in LoadFrom.
16847
16848 2002-12-10  Dick Porter  <dick@ximian.com>
16849
16850         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16851
16852 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16853
16854         * appdomain.c: fix buglet when building exe file name.  Handle full
16855         assembly name (needed after latest changes to AssemblyName).
16856         * image.c:
16857         (mono_image_close): free some hashtables.
16858
16859 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16860
16861         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16862         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16863         on some systems (redhat 7.3) 
16864
16865 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16866
16867         * threads.c: delete the critical section of a sync block,
16868         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16869
16870 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16871
16872         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16873
16874 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16875
16876         * appdomain.[ch]: handle the assembly preload event to try loading the
16877         assemblies using the paths we have in the current domain.
16878
16879         * assembly.[ch]: created an assembly preload hook that is called to try
16880         loading the assembly by other means that the ones provided here.
16881
16882         * domain.c: initialize the domain search path.
16883
16884         From now on, assemblies (TODO: except corlib and System) are loaded
16885         according to these rules when using mono_assembly_load ():
16886
16887                 1. It tries to load the assembly from the ApplicationBase
16888                 of the current domain appending .dll and .exe (TODO: have to
16889                 try loading from name/name.dll and name/name.exe).
16890
16891                 2. It tries the search path specified in PrivateBinPath for the
16892                 current domain (if any).
16893
16894                 3. Previous behavior.
16895
16896 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16897
16898         * icall.c: implemented GetInterfaceMap() related icall.
16899         * domain.c, loader.h: load MethodInfo in mono_defaults.
16900
16901 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16902
16903         * gc.c: disable the finalizer thread for now, untill all the issues
16904         with it are resolved.
16905
16906 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16907
16908         * string-icalls.c: handle embedded nulls in string ctor when the
16909         length is specified.
16910
16911 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16912
16913         * class.c: look for explicit interface implementation in parent
16914         classes, too.
16915
16916 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16917
16918         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16919
16920 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16921
16922         * gc.c: protect handles with a critical section.
16923
16924 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16925
16926         * icall.c:
16927         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16928         parameters. If no assembly specified, try getting the type from all
16929         the assemblies in the current domain, else, load the assembly and get
16930         the type from it.
16931
16932 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16933
16934         * marshal.c: applied patch from Aleksey Demakov that fixes
16935         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16936
16937 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16938
16939         * icall.c: fixed get_location.
16940
16941 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16942
16943         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16944         declarations to make it work with older gcc. 
16945
16946         * loader.c (mono_get_method): set signature->pinvoke for native calls
16947
16948 2002-11-20  Dick Porter  <dick@ximian.com>
16949
16950         * threads.c (mono_thread_init): Set the main thread's handle
16951
16952 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16953
16954         * gc.c: allow compilation without GC support. Changed to match the
16955         mono coding style.
16956
16957 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16958
16959         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16960
16961 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16962
16963         * reflection.c: set a public key token on the core assemblies.
16964
16965 2002-11-18  Dick Porter  <dick@ximian.com>
16966
16967         * threads.c: Split out some thread initialisation so that other
16968         files can set the start callback function.
16969
16970         * gc.c: Run finalisers in a separate thread, to avoid stack
16971         overflow.  Fixes bug 31333.
16972
16973         * appdomain.c: Set up GC finalisation thread.
16974
16975         * reflection.c: 
16976         * object.c: 
16977         * domain.c: Use gc.h macros for GC_malloc
16978         
16979 2002-11-15  Dick Porter  <dick@ximian.com>
16980
16981         * threadpool.c: 
16982         * threads.c:
16983         * appdomain.c: Removed mono_runtime_init_with_attach(),
16984         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16985         merging the extra parameter with the existing function.  Removed
16986         unneeded code in mono_thread_attach().
16987
16988 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16989
16990         * image.c (mono_image_loaded_by_guid): a method to get loaded
16991         images by guid. 
16992         (load_metadata_ptrs): we store the guid as string.
16993
16994 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16995
16996         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16997
16998         * metadata.c (mono_guid_to_string): imported method form Zoltan
16999         Varga (slightly modified)
17000
17001         * assembly.c (mono_assembly_open): load precompiled code
17002
17003         * loader.h (MonoMethod): we store the method token for use in the
17004         aot compiler. 
17005
17006 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17007
17008         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
17009         the hook function called when an assembly is loaded.
17010         
17011         * domain.c: Modified file.
17012         (mono_domain_assembly_load): removed hash table insertion of assemblies.
17013
17014         Fixes bug #33196.
17015
17016 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
17017
17018         * reflection.c: Map PEFileKind to the value expected by the WinNT
17019         image loader. 
17020
17021 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17022
17023         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
17024         Read until the buffer is filled completely.
17025
17026 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17027
17028         * icall.c: implemented MonoType.InternalGetEvent ().
17029
17030 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17031
17032         * appdomain.c: implemented InitAppDomainSetup. Delayed
17033         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
17034         the entry_assembly.
17035
17036         * assembly.c: base_dir is now an absolute path ending with
17037         G_DIR_SEPARATOR.
17038
17039         * icall.c: modified get_location according to the above changes.
17040
17041         * object.c: init AppDomain.SetupInformation for the default domain after
17042         we have the entry assembly.
17043
17044         * domain.c: when unloading a domain, setup = NULL.
17045
17046 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
17047
17048         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
17049
17050 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
17051
17052         * object.h, object.c: introduced mono_object_get_virtual_method ()
17053         to lookup the method invoked on an object when a callvirt is done on
17054         a method.
17055         * icall.c: make MethodInfo::Invoke() always do a virtual call.
17056
17057 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17058
17059         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
17060         current domain when loaded an assembly and failed to load it.
17061
17062         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
17063
17064 2002-10-31  Dick Porter  <dick@ximian.com>
17065
17066         * icall.c: 
17067         * file-io.h: 
17068         * file-io.c: Return the error status in a parameter, as the
17069         GetLastError() value has long since been blown away if we try and
17070         look it up in a subsequent internal call invocation.  Delete the
17071         GetLastError() internal call, because it's useless.
17072
17073 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
17074
17075         * class.[ch]: added cast_class to fix bug 29517
17076
17077 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
17078
17079         * marshal.c: create valid IL code in the filter clause:
17080         the new JIT is less forgiving:-)
17081
17082 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17083
17084         * icall.c: removed get_property internal call.
17085
17086 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
17087
17088         * appdomain.h domain.c: Added an ID to appdomains.
17089         
17090         * threads.c threads.h icall.c: Implement icall
17091         Thread:GetDomainID(), and remove unused icall 
17092         CurrentThreadDomain_internal.
17093
17094 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17095
17096         * icall.c: Don't recurse through the base types in GetConstructor.
17097         Fixes bug #32063. 
17098
17099 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17100
17101         * mempool.h, mempool.c: added mono_mempool_empty() and
17102         mono_mempool_stats().
17103
17104 2002-10-23  Dick Porter  <dick@ximian.com>
17105
17106         * file-io.c: 
17107         * file-io.h: 
17108         * icall.c: Added MonoIO.GetFileType internal call
17109
17110 2002-10-17  Dick Porter  <dick@ximian.com>
17111
17112         * appdomain.c (mono_runtime_cleanup): Don't signal the async
17113         delegate semaphore before waiting for all threads to finish,
17114         because new threads can also call async delegates.  Fixes bug
17115         32004.
17116
17117         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17118         of 3 seconds, in case another async job is queued.  (This part is
17119         needed because the bug fix reintroduced the 3s exit lag.)  This
17120         makes the mono_runtime_shutdown flag superfluous.
17121
17122 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17123
17124         * reflection.c: include ehader size in method section headers.
17125         Really check for suplicated modules entries.
17126
17127 2002-10-17  Martin Baulig  <martin@gnome.org>
17128
17129         * debug-mono-symfile.c: Added back support for locals.
17130
17131 2002-10-14  Martin Baulig  <martin@gnome.org>
17132
17133         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17134         MONO_TYPE_VOID.
17135
17136 2002-10-14  Martin Baulig  <martin@gnome.org>
17137
17138         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17139         mono_class_get() instead of looking in the class cache. 
17140
17141 2002-10-13  Martin Baulig  <martin@gnome.org>
17142
17143         * debug-mono-symfile.c: Set version number to 28, include the
17144         signature in method names.
17145
17146 2002-10-13  Martin Baulig  <martin@gnome.org>
17147
17148         * debug-mono-symfile.h: Set version number to 27.
17149
17150 2002-10-11  Martin Baulig  <martin@gnome.org>
17151
17152         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17153
17154 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17155
17156         * metadata.c, metadata.h: added helper function to allocate signatures.
17157
17158 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17159
17160         * icall.c: added internal call to get the location of machine.config.
17161
17162 2002-10-08  Martin Baulig  <martin@gnome.org>
17163
17164         * debug-mono-symfile.c: Ignore classes with a pending init for the
17165         moment.
17166
17167 2002-10-03  Dick Porter  <dick@ximian.com>
17168
17169         * threads.c: Freebsd pthread_t is a pointer
17170
17171 2002-10-03  Dick Porter  <dick@ximian.com>
17172
17173         * socket-io.c: Implemented GetHostName_internal
17174
17175 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17176
17177         * mono-config.c:
17178         (mono_config_parse_file): don't leak the text.
17179
17180 2002-10-02  Martin Baulig  <martin@gnome.org>
17181
17182         * debug-mono-symfile.c: Added support for methods.
17183
17184 2002-10-01  Martin Baulig  <martin@gnome.org>
17185
17186         * debug-mono-symfile.c: Don't emit methods and line numbers for
17187         the dynamic symbol file, just write the type table.  We can easily
17188         have an external helper program which creates a symbol file for an
17189         IL file.        
17190
17191 2002-10-01  Dick Porter  <dick@ximian.com>
17192
17193         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17194         Only add the handle to the cleanup array when we're about to
17195         launch the thread.  Bug 31425 deadlocked when the test was run on
17196         mono under w32.
17197
17198 2002-10-01  Martin Baulig  <martin@gnome.org>
17199
17200         * debug-mono-symfile.c: Added support for properties.
17201
17202 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17203
17204         * reflection.c: unaligned store fix from Mark Crichton
17205         <crichton@gimp.org>.
17206
17207 2002-09-27  Martin Baulig  <martin@gnome.org>
17208
17209         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17210         New interncall.
17211
17212 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17213
17214         * assembly.h, assembly.c: use a sane API to hook into the assembly
17215         loading process instead of a useless special-purpouse hack
17216         (ngen needs a hook, too, for example).
17217
17218 2002-09-27  Dick Porter  <dick@ximian.com>
17219
17220         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17221         io-layer can set up some process handle info.  Not needed on w32,
17222         but doesn't hurt either.
17223
17224         * process.c: Pass the program name in the second parameter to
17225         CreateProcess, so the path is searched.  Include the working
17226         directory. Implemented process name, process enumeration, and some
17227         process detail internal calls.
17228         
17229         * icall.c: Added internal calls for process lookup, and some
17230         process details
17231
17232 2002-09-26  Martin Baulig  <martin@gnome.org>
17233
17234         * assembly.c (mono_install_open_assembly_hook): New global
17235         function to install a function to be invoked each time a new
17236         assembly is loaded.
17237         (mono_assembly_open): Run this callback function if set.
17238
17239         * debug-mono-symfile.c: Put back line numbers for the dynamic
17240         symbol file and also record the .il file as source file.  This
17241         allows us to install the temporary symbol file as `file.dbg' just
17242         like a compiler-generated one.
17243
17244 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17245
17246         * Corrected typo in gc.c (BOHEM vs BOEHM).
17247
17248 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17249
17250         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17251         GetProperties. Also avoid calling g_slist_length in GetProperties and
17252         GetMethods.
17253
17254 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17255
17256         * reflection.c: avoid unaligned stores (bug spotted by
17257         Mark Crichton  <crichton@gimp.org>).
17258
17259 2002-09-25  Martin Baulig  <martin@gnome.org>
17260
17261         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17262         instead of guint64 for addresses and added prologue/epilogue info.
17263
17264 2002-09-25  Martin Baulig  <martin@gnome.org>
17265
17266         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17267         store line number info.  For the dynamic symbol file, we only need
17268         to provide the JIT generated dynamic line number info for the dynamic
17269         symbol file.
17270
17271 2002-09-25  Martin Baulig  <martin@gnome.org>
17272
17273         * debug-mono-symfile.h: Incremented version number.
17274
17275 2002-09-24  Martin Baulig  <martin@gnome.org>
17276
17277         * class.c (mono_debugger_class_init_func): New global function
17278         pointer variable.
17279         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17280         call it.
17281
17282         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17283         function.  This is called via the mono_debugger_class_init_func
17284         hook to add all types to the dynamic type table.
17285         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17286         from its metadata token.
17287
17288         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17289         New interncall for the debugger.
17290
17291 2002-09-24  Nick Drochak <ndrochak@gol.com>
17292
17293         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17294         before using it in case it is null.
17295         
17296 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17297
17298         * metadata.c: allow custom modifiers in local var signatures
17299         (bug spotted by Zoltan Varga).
17300
17301 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17302
17303         * class.c: deal with the <Module> class that may have a NULL vtable.
17304         Eliminate warnings.
17305
17306 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17307
17308         * image.c, image.h: more strong name helpers.
17309         * monosn.c: more work: convert pem keys to cryptoapi format.
17310
17311 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17312
17313         * string-icalls.c: speedup IndexOf.
17314
17315 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17316
17317         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17318
17319 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17320
17321         * icall.c: cleanup: use mono_object_domain ().
17322
17323 2002-09-23  Martin Baulig  <martin@gnome.org>
17324
17325         * debug-mono-symfile.c: Improved type support.
17326
17327 2002-09-22  Martin Baulig  <martin@gnome.org>
17328
17329         * debug-mono-symfile.c: Added support for reference types and strings.
17330
17331 2002-09-22  Martin Baulig  <martin@gnome.org>
17332
17333         * debug-mono-symfile.c: Started to work on the type table.
17334
17335 2002-09-21  Martin Baulig  <martin@gnome.org>
17336
17337         * debug-mono-symfile.c: Largely reworked the symbol table format.
17338         The symbol table is now incrementally updated each time a new
17339         method is added.  We're now also using our own magic and version
17340         so that you don't need to recompile all your classes if the
17341         dynamic table changes.
17342         (mono_debug_update_mono_symbol_file): Removed.
17343         (mono_debug_symfile_add_method): New function to add a method.
17344
17345 2002-09-21  Martin Baulig  <martin@gnome.org>
17346
17347         * icall.c
17348         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17349         New interncall.
17350
17351         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17352         New interncall to get a method from its metadata token.
17353
17354 2002-09-21  Martin Baulig  <martin@gnome.org>
17355
17356         * debug-mono-symfile.c: Create type table.
17357
17358 2002-09-20  Martin Baulig  <martin@gnome.org>
17359
17360         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17361
17362 2002-09-20  Martin Baulig  <martin@gnome.org>
17363
17364         * debug-mono-symfile.c: Provide information about params and locals.
17365
17366 2002-09-20  Martin Baulig  <martin@gnome.org>
17367
17368         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17369         New interncall.
17370
17371         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17372         interncall to get a method from its metadata token.
17373
17374 2002-09-20  Martin Baulig  <martin@gnome.org>
17375
17376         * debug-mono-symfile.c: Added a few checks for method->header
17377         being non-NULL.  This should never happen, but for the moment
17378         let's use a g_warning() rather than a g_assert().
17379
17380 2002-09-19  Mark Crichton  <crichton@gimp.org>
17381
17382         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17383         even if support for it isn't present.  Added an #ifdef to fix this.
17384
17385         * socket-io.c: Added checks back for Solaris support.
17386
17387 2002-09-19  Martin Baulig  <martin@gnome.org>
17388
17389         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17390         changes in the symbol file format.
17391
17392 2002-09-18  Martin Baulig  <martin@gnome.org>
17393
17394         * debug-mono-symfile.c: Set version number to 21.
17395
17396 2002-09-18  Dick Porter  <dick@ximian.com>
17397
17398         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17399         on netbsd.  Fixes bug 30051.
17400
17401 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17402
17403         * reflection.c:
17404         (set_version_from_string): little fix.
17405
17406 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17407
17408         * monosn.c, Makefile.am: added strong name utility.
17409         * reflection.h, reflection.c: implemented delayed signing,
17410         locale, version and hash id assembly attributes.
17411
17412 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17413
17414         * loader.c, metadata.c: load param attributes in signatures.
17415
17416 2002-09-16  Martin Baulig  <martin@gnome.org>
17417
17418         * debug-mono-symfile.c: Added string table with all method names.
17419
17420 2002-09-14  Martin Baulig  <martin@gnome.org>
17421
17422         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17423         fast method lookup.
17424
17425 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17426
17427         * reflection.c: record the public key token of referenced assemblies.
17428
17429 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17430
17431         * image.c, image.h: added functions to get the strong name and the
17432         public key of an assembly.
17433         * pedump.c: use them.
17434
17435 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17436
17437         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17438
17439 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17440
17441         * marshal.c (mono_marshal_get_managed_wrapper): Added
17442         MONO_TYPE_BOOLEAN 
17443
17444 2002-09-11  Martin Baulig  <martin@gnome.org>
17445
17446         * gc.c: Call GC_unregister_disappearing_link() on all links when
17447         finalizing them, this is necessary to aviod a crash in boehm's
17448         finalize handler.
17449
17450 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17451
17452         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17453         nick@chemlab.org.
17454
17455 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17456
17457         * icall.c: implemented MonoType::Module.
17458         * reflection.c, reflection.h: mono_module_get_object () from
17459         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17460
17461 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17462
17463         * icall.c: ignore overridden methods in GetMethods ().
17464         Fix for FieldInfo::SetValue().
17465         * object.c: handle float/double in runtime invoke.
17466
17467 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17468
17469         * object.c: allow a constructor to be called again on an object.
17470
17471 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17472
17473         * class.h, class.c: move field layout code to it's own function and
17474         export it. Get an interface id earlier. Move fields in MonoClass
17475         so they are more cache friendly and align the bitfields.
17476         * loader.c: temporary handle get_param_names() for a runtime method.
17477         * reflection.c, reflection.h: more code to handle runtime creation of
17478         types.
17479
17480 2002-09-09  Martin Baulig  <martin@gnome.org>
17481
17482         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17483         signature with the pinvoke field being set for the actual call.
17484
17485 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17486
17487         * icall.c: removed some unused icalls. Start of map of glib charsets
17488         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17489
17490 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17491
17492         * debug-helpers.c: break infinite loop (found and fixed by
17493         Holger Arnold <harnold@gmx.de>).
17494
17495 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17496
17497         * icall.c: target may be null in create_delegate.
17498
17499 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17500
17501         * marshal.c: handle a boolean return type.
17502
17503 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17504
17505         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17506
17507 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17508
17509         * gc.c: fix weakreferences.
17510
17511 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17512
17513         * icall.c: added icall to get default codepage.
17514
17515 2002-09-03  Dick Porter  <dick@ximian.com>
17516
17517         * threads.h: 
17518         * threads.c: Use MonoThread instead of MonoObject where
17519         apropriate.
17520
17521         Store running thread objects in a hash table, so that we have all
17522         the info to hand when waiting for them to finish
17523         (means we don't need OpenThread() any more, so mingw builds should
17524         be fully functional again.)
17525
17526         * verify.c:
17527         * object.h: Added thread ID to MonoThread
17528
17529 2002-09-03  Martin Baulig  <martin@gnome.org>
17530
17531         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17532
17533 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17534
17535         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17536
17537 2002-09-03  Martin Baulig  <martin@gnome.org>
17538
17539         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17540         argument to store the end address of the disassembled instruction.
17541
17542         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17543         here from debug-symfile.h.
17544         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17545         JIT into this struct.
17546         (MonoSymbolFile): Added `char *image_file' field.
17547         (MonoDebugGetMethodFunc): Removed.
17548         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17549         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17550         (mono_debug_find_method): New method.
17551
17552         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17553         create a full symbol file.
17554         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17555         and static symbol files.
17556         (mono_debug_find_method): The symbol file keeps an internal method hash,
17557         call this to get a MonoDebugMethodInfo from a MonoMethod.
17558
17559         * debug-symfile.[ch]: Removed.
17560
17561 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17562
17563         * image.c (do_mono_image_open): Remove linker version check.
17564
17565 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17566
17567         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17568         wrappers for instance methods.
17569         
17570 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17571
17572         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17573
17574 2002-08-28  Dick Porter  <dick@ximian.com>
17575
17576         * Makefile.am: Export HOST_CC for w32 builds
17577
17578 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17579
17580         * file-io.c process.c: MonoString are null terminated, no
17581         need for mono_string_to_utf16() anymore.
17582
17583 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17584
17585         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17586
17587 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17588
17589         * icall.c, reflection.h: speedup System.MonoType.
17590
17591 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17592
17593         * reflection.c: allow null as the value of a string argument in
17594         custom attributes constructors.
17595
17596 2002-08-27  Martin Baulig  <martin@gnome.org>
17597
17598         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17599         `trampoline_address' field.
17600
17601 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17602
17603         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17604         check (fixes bug #29486) 
17605
17606 2002-08-27  Martin Baulig  <martin@gnome.org>
17607
17608         * debug-mono-symfile.c: Changed the file format in a way that allows us
17609         open it read-only and to use a specially malloced area for all the
17610         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17611         debugging IL code and there is no MCS generated symbol file for it.
17612
17613 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17614
17615         * object.c: added a define for a good string and array
17616         creation speedup (not enabled by default because we need to deal with
17617         the synch stuff).
17618
17619 2002-08-26  Martin Baulig  <martin@gnome.org>
17620
17621         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17622         function to create a dynamic symbol file.  This is used by the
17623         debugger to create a symbol file for IL code on-the-fly.
17624
17625 2002-08-26  Martin Baulig  <martin@gnome.org>
17626
17627         * loader.c (mono_lookup_pinvoke_call): Include the error message
17628         from g_module_error() in the error message.
17629
17630 2002-08-24  Martin Baulig  <martin@gnome.org>
17631
17632         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17633         function to update the symbol file.  The symbol file is mmap()ed
17634         writable, but private.  This allows us to install the symbol file
17635         together with the assembly.
17636
17637 2002-08-24  Martin Baulig  <martin@gnome.org>
17638
17639         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17640         but they can read the new symbol file format which mcs is now creating.
17641
17642         * debug-symfile.c (mono_debug_find_source_location): Moved to
17643         debug-mono-symfile.c; this is now operating on the new symbol file.
17644
17645 2002-08-23  Martin Baulig  <martin@gnome.org>
17646
17647         * debug-helpers.c (mono_method_desc_from_method): New function to get
17648         a MonoMethodDesc from a MonoMethod.
17649
17650 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17651
17652         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17653         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17654
17655 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17656
17657         * string-icalls.[ch]: make helper methods static.
17658
17659 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17660
17661         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17662         types to it and to SetValueInternal.
17663
17664         * object.c: Moved handle_enum label to its proper place. This was the
17665         f... bug! ;-)
17666
17667         This time i compiled mcs and gtk-sharp and they both work.
17668
17669 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17670
17671         * icall.c: reverted partially my previous patch until 
17672         object.c:set_value handles enums correcly.
17673
17674 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17675
17676         * icall.c:
17677         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17678         (ves_icall_System_Environment_get_MachineName): removed warning when
17679         compiling under cygwin.
17680
17681 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17682
17683         * object.c: fixed field_get_value() for reference types.
17684
17685 2002-08-22  Dick Porter  <dick@ximian.com>
17686
17687         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17688         Don't free a buffer while it's still needed.  Patch from Jonathan
17689         Liger <Jonathan.liger@wanadoo.fr>
17690
17691 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17692
17693         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17694         internal call.
17695
17696 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17697
17698         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17699         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17700
17701         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17702         we call unmanaged code which throws exceptions.
17703
17704 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17705
17706         * appdomain.h: added per-domain entry_assembly.
17707         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17708         arguments.
17709         * icall.c: Assembly::GetEntryAssembly icall.
17710         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17711         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17712
17713 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17714
17715         * appdomain.h, gc.c: added mono_domain_finalize ().
17716
17717 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17718
17719         * object.c:
17720         (mono_print_unhandled_exception): changed g_warning by g_printerr
17721         because g_log has a 1024 characters limit (yeah, i got a big stack
17722         trace). Don't print exception name, that should be in ToString 
17723         returned string.
17724
17725 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17726
17727         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17728         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17729
17730 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17731
17732         * object.c:
17733         (mono_print_unhandled_exception): after previous commit, i realized
17734         that MS calls ToString on the exception. I changed this function to
17735         do that. This way we get stack_trace for free.
17736
17737 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17738
17739         * object.c:
17740         (mono_print_unhandled_exception): invoke Message property instead of
17741         getting 'message' field from Exception. Don't allocate memory for
17742         'trace' and 'message' if not needed.
17743
17744 2002-08-18  Dick Porter  <dick@ximian.com>
17745
17746         * unicode.c: Fix asserts to match Encoder.cs checks
17747
17748 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17749
17750         * marshal.c: fix unaligned store issue and a few wrong
17751         opcode argument types.
17752
17753 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17754
17755         * icall.c: added GetUninitializedObjectInternal internal call.
17756
17757 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17758
17759         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17760         to the right domain.
17761
17762 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17763
17764         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17765
17766         * class.c (class_compute_field_layout): set blittable to false for Strings
17767
17768         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17769
17770 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17771
17772         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17773         first chunk of code to create types at runtime. Code to
17774         handle ReflectedType/DeclaringType. Make reflection handles
17775         domain specific.
17776
17777 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17778
17779         * class.c: set correct name in arrays.
17780
17781 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17782
17783         * appdomain.c (mono_domain_transfer_object): make it work with
17784         valuetypes. bug fixes.
17785
17786 2002-08-12  Dick Porter  <dick@ximian.com>
17787
17788         * object.h: Rename some parameters to avoid c++ keywords (Patch
17789         from Joseph Wenninger <kde@jowenn.at>)
17790
17791 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17792
17793         * icall.c: added icall to implement Assembly.GetFile*.
17794
17795 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17796
17797         * reflection.h, reflection.c: code to embed managed resources.
17798
17799 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17800
17801         * class.c: move all the type size stuff into
17802         class_compute_field_layout().
17803
17804 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17805
17806         * class.c: ensure enums have always the correct instance size.
17807         * unicode.c: remove wrong assert.
17808
17809 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17810
17811         * assembly.c: fix mem corruption issue.
17812         * image.h, image.c: added mono_image_get_resource () to access
17813         managed resources.
17814         * icall.c: implemented Assembly.EntryPoint property and some
17815         Managed Resources related internalcalls.
17816
17817
17818 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17819
17820         * image.c, image.h: impemented mono_image_get_entry_point ().
17821         * appdomain.c: use mono_image_get_entry_point.
17822
17823 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17824
17825         * reflection.c: support the object type argument when loading
17826         custom attributes.
17827
17828 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17829
17830         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17831         String as return type.
17832
17833 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17834
17835         * reflection.c: fix encoding of named args for custom attrs to match
17836         the ms implementation. Read them back when instantiating custom
17837         attributes.
17838
17839 2002-08-02  Radek Doulik  <rodo@ximian.com>
17840
17841         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17842         by Dietmar as quick fix
17843         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17844         16 as stack size, used on more places as quick fix before Dietmar
17845         will fix it properly
17846
17847 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17848
17849         * object.h, object.c: added accessors for fields and properties.
17850
17851 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17852
17853         * class.c, class.h: made mono_class_get_field_from_name ()
17854         loop on parent types.
17855         Added mono_class_get_property_from_name ().
17856
17857 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17858
17859         * class.c, class.h: move the code to setup the type vtable in its own
17860         function so that it can be reused also for types created at runtime.
17861         Eliminate the "class" identifier from the header file.
17862         * reflection.c: setup the vtable for enums so that we can create
17863         objects for use in SetConstant ().
17864
17865 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17866
17867         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17868         instead of the delegate itself as this pointer (bug #28383)
17869
17870 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17871
17872         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17873         conversions.
17874
17875 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17876
17877         * loader.c: don't set the pinvoke bit on icalls.
17878
17879 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17880
17881         * debug-helpers.c (mono_method_full_name): only print a number to
17882         indicate wrapper type (so that the output is more readable in traces).
17883
17884 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17885
17886         * class.c (mono_class_init): include method override patch from Paolo
17887
17888 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17889
17890         * icall.c: fixed GetTypeCode().
17891
17892 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17893
17894         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17895         use real delegate invoke function to make it work with multicast
17896         delegates (fix bug# 28291).
17897
17898 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17899
17900         * object.c: load constant strings.
17901
17902 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17903
17904         * reflection.c: no magic numbers.
17905         * tabledefs.h: security action enum.
17906
17907 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17908
17909         * assembly.c: fix possible memory corruption.
17910
17911 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17912
17913         * reflection.h, reflection.c: added support for linking resources.
17914         * verify.c: check we have an updated corlib.
17915
17916 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17917
17918         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17919         string arrays.
17920         (mono_marshal_string_array): null terminate unmanaged string arrays.
17921         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17922
17923 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17924
17925         * icall.c: Type.GetType () can now return also types from the
17926         calling assembly.
17927
17928 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17929
17930         * loader.h, loader.c: stack walking support.
17931         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17932         GetCallingAssembly.
17933
17934 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17935
17936         * marshal.c: added optimisations for blittable types 
17937
17938         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17939         (mono_class_setup_mono_type): set blittable attribute for single
17940         and double.
17941
17942         * marshal.c (mono_string_utf8_to_builder): impl.
17943         (mono_string_builder_to_utf8): impl.
17944         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17945
17946 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17947
17948         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17949         (mono_marshal_get_managed_wrapper): impl. byref types
17950
17951 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17952
17953         * icall.c:
17954         (search_method): don't display debug message. 
17955
17956 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17957
17958         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17959
17960 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17961
17962         * appdomain.c: set the missing filename when throwing exception.
17963
17964 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17965
17966         * metadata.c (mono_type_size): code cleanup
17967         (mono_type_stack_size): removed some test code
17968
17969 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17970
17971         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17972         mono_get_exception_file_not_found now.
17973
17974         * exception.c (mono_exception_from_name_two_strings): New version
17975         that will call a constructor with two string arguments. 
17976         (mono_get_exception_file_not_found): New helper routine, used to
17977         report file-not-found errors.
17978
17979 2002-07-20  Dick Porter  <dick@ximian.com>
17980
17981         * process.h:
17982         * process.c: Pass file handles to CreateProcess
17983         
17984         * icall.c:
17985         * file-io.h:
17986         * file-io.c: Implemented CreatePipe
17987
17988 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17989
17990         * metadata.c (mono_get_param_info): set alignment for value types
17991
17992 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17993
17994         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17995         Constify mono_domain_assembly_open().
17996         * loader.c: handle null namespace in icalls.
17997
17998 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17999
18000         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
18001         (emit_str_to_ptr_conv): marshal object as structs
18002
18003         * metadata.c (mono_type_to_unmanaged): marshal object as structs
18004
18005         * marshal.c (mono_marshal_get_runtime_invoke): support value types
18006
18007 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
18008
18009         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
18010         (mono_marshal_get_native_wrapper): we an now return value types
18011
18012 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18013
18014         * verify.c: more checks implemented.
18015
18016 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
18017
18018         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
18019         (fix bug #27695)
18020         (mono_marshal_get_native_wrapper): allow byref arguments
18021         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
18022         impl. PtrToStringXXX methods
18023         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
18024         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
18025         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
18026         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
18027         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
18028
18029 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18030
18031         * reflection.c: fix buglet in parsing an assembly name.
18032
18033 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18034
18035         * marshal.c (emit_ptr_to_str_conv): first impl.
18036
18037 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18038
18039         * object.c, class.h: cache the vtable in the class as suggested by
18040         vargaz@freemail.hu (Zoltan Varga).
18041
18042 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * class.h, loader.c: added mono_field_from_token().
18045         * verify.c: first cut of type checking code.
18046
18047 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18048
18049         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
18050
18051 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
18052
18053         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
18054         (fix bug #27782)
18055         (mono_marshal_get_remoting_invoke): impl.
18056         (mono_delegate_begin_invoke): impl.
18057         (mono_mb_emit_save_args): impl.
18058         (mono_delegate_end_invoke): impl.
18059         (mono_marshal_get_delegate_begin_invoke):
18060         (mono_marshal_get_delegate_end_invoke):
18061         (mono_marshal_get_delegate_invoke): generate a special name for
18062         those methods (including the signature) and associate them whith
18063         the delegate class. 
18064
18065 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
18066
18067         * reflection.[ch]: 
18068         (mono_reflection_type_from_name): now it has a MonoImage parameter
18069         which is used as the default image to search the type in. If the image
18070         is NULL or getting the type from it fails, it defaults to corlib.
18071
18072         * icall.c: changed 1 call to mono_reflection_type_from_name to match
18073         new parameter.
18074
18075 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18076
18077         * reflection.c: update the parameter table index.
18078
18079 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18080
18081         * domain.c: don't include the mark byte in the string hash.
18082
18083 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18084
18085         * icall.cs: icall for Type.GetTypeCode ().
18086         * verify: a couple of fixes and disabled local initialization checks.
18087
18088 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
18089
18090         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18091
18092         * debug-helpers.c (mono_method_full_name): print the type of the
18093         runtime wrapper
18094
18095         * metadata.c (mono_signature_hash): a hash function for signatures
18096         (mono_signature_hash): better hash algorithm
18097
18098         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18099
18100         * debug-helpers.c (mono_method_full_name): this can now generate
18101         method names with signatures
18102
18103         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18104         method dont have this pointers.
18105
18106 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18107
18108         * reflection.c: fixup typebuilder tokens.
18109         * image.c: fix buglet.
18110         * marshal.h: remove whitespace.
18111         * metadata.h, metadata.c: reinstate code that was removed.
18112         * verify.c: handle catch directives and fix another couple of bugs.
18113
18114 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
18115
18116         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18117         (mono_marshal_get_native_wrapper): make it comp. with the old code
18118         (mono_marshal_get_native_wrapper): support boolean
18119         (mono_marshal_get_managed_wrapper): support more types
18120
18121 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
18122
18123         * class.c (class_compute_field_layout): compute class->blittable attribute.
18124
18125 2002-07-09  Dick Porter  <dick@ximian.com>
18126
18127         * threads.c: Make the thread cleaning up cope with threads that
18128         call ExitThread()
18129
18130 2002-07-08  Radek Doulik  <rodo@ximian.com>
18131
18132         * reflection.c (method_encode_code): use non-translated values to
18133         compute finally_start, this fixes exception handling on ppc, yay!
18134
18135         * decimal.h (struct signscale): fix endianess
18136
18137 2002-07-07  Radek Doulik  <rodo@ximian.com>
18138
18139         * reflection.c: swap box_val and not val
18140
18141 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18142
18143         * reflection.c, reflection.h: handle full assembly info in type name.
18144         Handle Type arguments when loading custom attributes.
18145         * icall.c: updated to use new mono_reflection_type_from_name () method.
18146
18147 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18148
18149         * loader.c:
18150         (method_from_memberref): also print assembly name when method not found.
18151
18152 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18153
18154         * icall.c:
18155         (ves_icall_TypeGetProperties): fixed bug #27473. 
18156
18157 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18158
18159         * reflection.c: display image name and token when cannot find the
18160         .ctor for an attribute.
18161
18162 2002-07-05  Martin Baulig  <martin@gnome.org>
18163
18164         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18165
18166 2002-07-04  Dick Porter  <dick@ximian.com>
18167
18168         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18169         compile on mingw.  This will cause mingw builds to not wait for
18170         subthreads to terminate after the main thread does.  I've lodged a
18171         bug with the mingw developers for them to wrap OpenThread().
18172
18173 2002-07-03  Dick Porter  <dick@ximian.com>
18174
18175         * threads.c: Store thread IDs instead of handles, because
18176         GetCurrentThread() returns a pseudohandle and therefore stores
18177         useless values.  mono_thread_cleanup() continues checking the
18178         array of threads until it is empty, to cope with subthreads
18179         spawning new threads after the main thread has finished.
18180
18181         * profiler.h:
18182         * profiler.c:
18183         * profiler-private.h: Pass the thread ID to thread profiler
18184         functions, instead of a handle
18185
18186 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18187
18188         * verify.c: fixes to make it more usable.
18189         * pedump.c: added --verify code to verify IL code in an assembly.
18190
18191 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18192
18193         * reflection.c: turn errors into warnings to allow compiling corlib.
18194
18195 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18196
18197         * reflection.c: add special cases to compile corlib.
18198
18199 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18200
18201         * reflection.c: handle properties with only a set method.
18202
18203 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18204
18205         * opcodes.h: add enum with opcodes in opval order.
18206
18207 2002-07-01  Dick Porter  <dick@ximian.com>
18208         
18209         * object.h:
18210         * object.c (mono_runtime_run_main): Removed unneeded argument
18211
18212 2002-06-28  Martin Baulig  <martin@gnome.org>
18213
18214         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18215
18216 2002-06-27  Dick Porter  <dick@ximian.com>
18217
18218         * threads.c: Store the handle in both the parent thread and in the
18219         subthread, to minimise the time between starting a new thread and
18220         storing its ID.
18221
18222 2002-06-26  Dick Porter  <dick@ximian.com>
18223
18224         * appdomain.c (mono_runtime_cleanup): Close the socket library
18225         after all the threads have finished, not before
18226
18227 2002-06-26  Martin Baulig  <martin@gnome.org>
18228
18229         * debug-symfile.c (mono_debug_find_source_location): Added
18230         `guint32 *line_number' argument.  If it's not NULL, store the line number
18231         there and return the file name without the line number.
18232
18233 2002-06-25  Dick Porter  <dick@ximian.com>
18234
18235         * icall.c:
18236         * process.h:
18237         * process.c: Process forking and other support functions
18238
18239 2002-06-25  Dick Porter  <dick@ximian.com>
18240
18241         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18242         things dont happen when the image is closed.
18243         (mono_image_lookup_resource): Walk the resource section looking
18244         for a particular entry
18245
18246         * cil-coff.h: PE resource section decoding
18247
18248 2002-06-25  Dick Porter  <dick@ximian.com>
18249         
18250         * assembly.h:
18251         * assembly.c: 
18252         (mono_assembly_foreach): Accessor functions to walk the list of
18253         loaded assemblies
18254         (mono_assembly_set_main):
18255         (mono_assembly_get_main): Process methods need to know which
18256         assembly is the "main" one
18257
18258         * object.c (mono_runtime_run_main): Record the main assembly
18259
18260         * debug-helpers.c: Fix typo
18261
18262 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18263
18264         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18265         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18266
18267 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18268
18269         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18270
18271 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18272
18273         * image.c (do_mono_image_open): Initialize reference count,
18274         otherwise we leak the MonoImage.
18275
18276 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18277
18278         * reflection.c: small tweak to handle self-hosting.
18279
18280 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18281
18282         * reflection.c: fix type name parse code.
18283
18284 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18285
18286         * reflection.c: break out of the loop.
18287         * image.c: special case corlib.
18288
18289 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18290
18291         * reflection.c: add all the custom attrs at the end to ensure the
18292         ctors have been properly initialized when the attributes are defined
18293         in the current assembly.
18294
18295 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18296
18297         * reflection.c: handle correctly multiple-nested types.
18298
18299 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18300
18301         * row-indexes.h: fix typos.
18302         * reflection.c: adjust for typos and fix method_def_or_ref
18303         encoding in MethodImpl table.
18304
18305 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18306
18307         * reflection.c: fix entry point patching (thanks Serge!).
18308
18309 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18310
18311         * verify.c: add check for System.Exception
18312
18313 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18314
18315         * image.c, class.c: minifix for code just c&p'ed.
18316         * reflection.c: warning fix.
18317         * object.h, loader.h, domain.c: load also StringBuilder.
18318
18319 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18320
18321         * marshal.h, marshal.c: some support code to handle complex marshaling.
18322
18323 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18324
18325         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18326         Better signatures with vtable error dump.
18327
18328 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18329
18330         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18331
18332 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18333
18334         * icall.c (ves_icall_Type_GetField): impl.
18335
18336 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18337
18338         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18339         to retrieve a marshal description blob for a field or param.
18340
18341 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18342
18343         * reflection.h, reflection.c: change order of nested type emission
18344         to avoid table corruption. The NestedTypes table is sorted.
18345         * icall.c: change order of GetConstructor results to workaround mcs bug.
18346
18347 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18348
18349         * reflection.h, reflection.c: handle field and param marshal
18350         information.
18351
18352 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18353
18354         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18355
18356 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18357
18358         * reflection.c: fix call convention.
18359
18360 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18361
18362         * reflection.h, reflection.c: mono_image_get_memberref_token()
18363         takes a type instead of a class, now. Added
18364         mono_image_get_array_token() to create tokens for the special
18365         multi-dim array methods.
18366
18367 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18368
18369         * assembly.c: handle modules (no assembly table). Split
18370         loading references in its own function.
18371         * class.c: handle moduleref resolution scope.
18372         * image.c, image.h: cache module name in image.
18373
18374 2002-06-07  Martin Baulig  <martin@gnome.org>
18375
18376         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18377         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18378
18379 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18380
18381         * icall.c: more signature fixes that used uint instead of int.
18382
18383 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18384
18385         * reflection.c: fixed signature of field refs.
18386
18387 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18388
18389         * class.c, reflection.c: handle typerefs of nested types
18390         (both on read and when writing files).
18391
18392 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18393
18394         * icall.c: fix method signatures that tried to workaround the previous
18395         typo, d'oh!
18396
18397 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18398
18399         * debug-helpers.c: fix typo.
18400
18401 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18402
18403         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18404         rewrote the PE/COFF writing code (our programs are understood by the
18405         ms runtime, now).
18406
18407 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18408
18409         * gc.c, gc.h, icall.c: weakreference support.
18410
18411 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18412
18413         * Makefile.am, mono-config.c: use $(sysconfdir).
18414
18415 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18416
18417         * icall.c: changed default precision of Double.ToString() to 15.
18418         Fixed memory leak. Unified with Single.ToString.
18419
18420 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18421
18422         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18423
18424 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18425
18426         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18427         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18428         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18429         and myself.
18430
18431 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18432
18433         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18434
18435 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18436
18437         * reflection.c, socket-io.c: more compilation fixes.
18438
18439 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18440
18441         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18442         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18443         unicode.c: warning and compiler compatibility fixes.
18444
18445 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18446
18447         * class.h, metadata.c: fixed warnings/compilation errors.
18448
18449 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18450
18451         * Makefile.am, mono-config.c, mono-config.h: configuration file
18452         support routines.
18453         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18454         config file. Export methods to insert and lookup mappings.
18455
18456 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18457
18458         * reflection.c: handle types and boxed objects in custom attr
18459         constructors.
18460
18461 2002-05-30  Martin Baulig  <martin@gnome.org>
18462
18463         * debug-symfile.c
18464         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18465
18466 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18467
18468         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18469         to lookup the implmap row for a P/Invoke method.
18470         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18471         P/Invoke method from the runtime on an as needed basis.
18472
18473 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18474
18475         * metadata.c (mono_metadata_parse_signature): impl.
18476
18477 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18478
18479         * class.c: handle .pack directive.
18480
18481 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18482
18483         * object.c: initialize static fields with RVA data.
18484
18485 2002-05-25  Martin Baulig  <martin@gnome.org>
18486
18487         * debug-symfile.c
18488         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18489
18490 2002-05-24  Martin Baulig  <martin@gnome.org>
18491
18492         * debug-symfile.c
18493         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18494         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18495         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18496
18497 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18498
18499         * object.c: special case string ctros in invoke.
18500         * gc.c: silly whitespace changes.
18501
18502 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18503
18504         * threadpool.[ch]: impl. a threadpool that can
18505         be used by mint and mono.
18506
18507 2002-05-22  Martin Baulig  <martin@gnome.org>
18508
18509         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18510         The first argument is now a `MonoReflectionModuleBuilder *', the return
18511         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18512         `methods' field to get the method builder.  The `token' argument is the
18513         unfixed token.
18514
18515         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18516         invalid characters instead of g_assert_not_reached()ing.  This seems
18517         to be the behaviour of mscorlib.
18518
18519 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18520
18521         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18522         Hestilow to fix bug #25104
18523
18524 2002-05-21  Martin Baulig  <martin@gnome.org>
18525
18526         * debug-symfile.c (mono_debug_find_source_location): New function.
18527         Looks up an IL offset in the line number table and returns the source
18528         location as a string.
18529
18530 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18531
18532         * icall.c:
18533         (mono_double_ToStringImpl): changed %f by %g until we have something
18534         better.
18535
18536 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18537
18538         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18539         parameters first in C#.
18540
18541 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18542
18543         * icall.c, reflection.h: added icall to get info about an event.
18544
18545 2002-05-20  Radek Doulik  <rodo@ximian.com>
18546
18547         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18548         endian
18549         (mono_value_box): don't use memcpy for small sizes on
18550         architectures with unaligned access
18551
18552 2002-05-20  Martin Baulig  <martin@gnome.org>
18553
18554         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18555         if `tb->parent == NULL'.
18556         (mono_reflection_create_internal_class): New function.  This is
18557         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18558         for enum types.
18559
18560         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18561         New interncall.
18562
18563 2002-05-19  Martin Baulig  <martin@gnome.org>
18564
18565         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18566         argument to get the length, don't default to the array length.
18567
18568 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18569
18570         * assembly.c (mono_assembly_setrootdir): New function used to
18571         override the MONO_ASSEMBLIES directory.
18572
18573 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18574
18575         * icall.c: ValueType_GetHashCode() initialize local var.
18576
18577 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18578
18579         * reflection.c: sort custom attributes table.
18580
18581 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18582
18583         * reflection.c: support named args in custom attributes (write support).
18584
18585 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18586
18587         * reflection.c: fix finally position calculation.
18588
18589 2002-05-15  Radek Doulik  <rodo@ximian.com>
18590
18591         * reflection.c: fixed endianess at many places
18592
18593         * icall.c (ves_icall_InitializeArray): comment out debug msg
18594
18595 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18596
18597         * object.c (mono_unhandled_exception): new function to handle
18598         unhandled exceptions.
18599         (mono_unhandled_exception): call the UnhandledException event.
18600         (mono_runtime_delegate_invoke): impl.
18601
18602 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18603
18604         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18605         returns the RVA, not the direct pointer to the data. Handle the case
18606         when the class size is fixed.
18607
18608 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18609
18610         * reflection.c: fix some endianess issues.
18611
18612 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18613
18614         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18615
18616         * threads.c (mono_thread_init): added a callback which is invoked
18617         at thread start.
18618
18619 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18620         
18621         * icall.c: make GetHashCode return non-negative values.
18622
18623 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18624
18625         * object.c, icall.c, gc.c: revert to address-based hashcode.
18626
18627 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18628
18629         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18630
18631 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18632
18633         * icall.c, class.c: special case <Module>.
18634
18635 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18636
18637         * icall.c: fix bug in GetNow().
18638
18639 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18640
18641         * object.c (mono_runtime_class_init): make sure that we call all
18642         static class constructors.
18643
18644 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18645
18646         * reflection.c: sort methodsemantics table.
18647
18648 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18649
18650         * reflection.h, reflection.c: honour init locals setting.
18651
18652 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18653
18654         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18655
18656 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18657
18658         * reflection.c: support ContructorBuilders in attribute blob creation.
18659
18660 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18661
18662         * reflection.c: some changes to build a binary that can be run
18663         directly in windows.
18664
18665 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18666
18667         * loader.c: print a big message when an icall can't be found.
18668
18669 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18670
18671         * string-icalls.c: fix bug 24248.
18672
18673 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18674
18675         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18676         icall.c, reflection.h: separate assembly loading by pathname and by
18677         assembly name. Use the MONO_PATH env var to search for assemblies.
18678
18679 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18680
18681         * assembly.c, image.h: add some support for assemblies
18682         with multiple modules.
18683         * class.c, class.h: export mono_class_from_typeref().
18684         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18685         instead.
18686
18687 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18688
18689         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18690         documentation says (the ECMA one is correct).
18691
18692 2002-05-02  Dick Porter  <dick@ximian.com>
18693
18694         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18695         Don't name the synchronisation mutex.
18696
18697 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18698
18699         * rand.c
18700         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18701         Make the prototypes match.
18702         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18703         Same.
18704
18705         * icall.c
18706         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18707         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18708         all systems have tm.tm_zone, so use strftime() with %Z to print
18709         the timezone abreviation into a temp string.
18710
18711         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18712         rather than mono_array_addr() on a MonoString on Big Endian
18713         machines.
18714
18715 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18716
18717         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18718         fix bug 24041
18719
18720 2002-04-30  Dick Porter  <dick@ximian.com>
18721
18722         * socket-io.c: Cope with SOCKET being an integer rather than a
18723         pointer now.
18724
18725         * threads.c: Added Thread_free_internal, to deal with thread
18726         handle cleanup.  Moved calls to handle_store() and handle_remove()
18727         to start_wrapper(), so each can only be called once.  Allocate
18728         synchronisation blocks with GC_malloc(), and use GC finalisation
18729         to close the handles.
18730
18731         * icall.c: added System.Threading.Thread::Thread_free_internal
18732
18733 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18734
18735         * icall.c: support Environment.Exit, CommandLineArgs().
18736
18737 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18738
18739         * object.c, object.h: added mono_runtime_run_main () and
18740         mono_runtime_get_main_args () for use in System.Environment.
18741
18742 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18743
18744         * gc.c: fix thinko, enable actual finalization since the jit is now
18745         fixed.
18746
18747 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18748
18749         * gc.c, object.c: take into account that an object may be offset wrt the address
18750         returned by GC_malloc().
18751
18752 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18753
18754         * image.c: handle files without entries in the assembly table (modules).
18755
18756 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18757
18758         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18759         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18760         allowed to be null when it's System.Object class setup.
18761
18762 2002-04-27  Martin Baulig  <martin@gnome.org>
18763
18764         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18765         if `tb->parent == NULL' rather than crashing.
18766
18767 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18768
18769         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18770         calling acos() where asin() should have been called.
18771
18772 2002-04-26  Martin Baulig  <martin@gnome.org>
18773
18774         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18775         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18776         there's a subdirectory called `System', but we don't want to read that
18777         subdirectory as an assembly.
18778
18779 2002-04-25  Martin Baulig  <martin@gnome.org>
18780
18781         * debug-symfile.c: Reflect latest MonoString changes.
18782
18783 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18784
18785         * rand.c, rand.h: instance method icalls need to have an explicit
18786         this pointer as first argument in the C implementation.
18787
18788 2002-04-25  Nick Drochak <ndrochak@gol.com>
18789
18790         * icall.c: Fix typo in map for GetNonZeroBytes
18791
18792 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18793
18794         * string-icalls.c : String does now passes unit tests without any 
18795         errors, the following changes has been made:
18796         
18797         Implemented replace methods.
18798         Renaming of methods to (try) follow the standard.
18799         Fixed compare ordinal
18800         Made all memory allocated directly to function instead of via icall function.
18801         Small performance fix in is_in_array function
18802                         
18803  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18804
18805         c (mono_string_Internal_ctor_charp_int_int):
18806         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18807         sindex < 0, throw ArgumentOutOfRangeException instead of
18808         ArgumentNullException.
18809
18810         Added new check for length == 0, however
18811         I need to make it return String.Empty from the C code.
18812         
18813         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18814         that calculate the length for us here.
18815         
18816         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18817         mono_string_new_utf16 with mono_string_new, since value is utf8.
18818
18819 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18820
18821         * object.c: register the object for finalization if needed.
18822         Allocate one more char in the string for the terminating 0 char.
18823
18824 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18825
18826         * class.c, class.h, image.c: check if a type implemenst a destructor.
18827         Use the proper key for array class lookups.
18828         * icall.c: register the icalls in the System.GC class.
18829         * gc.c, gc.h: GC-related functions and icalls.
18830
18831 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18832
18833         * icall.c:
18834         * socket-io.c:
18835         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18836         changed a couple of free () by g_free ().
18837
18838         * decimal.c: one-liner in the comments for decimal2string ().
18839
18840 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18841
18842         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18843
18844 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18845
18846         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18847         * object.c (mono_runtime_invoke_array) : handle null in params
18848
18849 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18850
18851         * string-icalls.c: fixed bug in split (one off bug)
18852
18853 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18854
18855         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18856         * icalls.c: added String::Equals as internal method
18857
18858 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18859
18860         * threads.c: fixed bug in the double interlocked functions
18861
18862 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18863
18864         * threads.c: implemented all of the new interlocked icalls.
18865         * string-icalls.c: fix a bug in insert.
18866         * icalls.c: added the icalls for interlocked, removed old string functions.
18867         
18868 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18869
18870         * loader.c: fix off-by-one error when reading argument names.
18871
18872 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18873
18874         * profiler.c: win32 counter implementation (untested).
18875         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18876         (the latter needs testing and more complete impl. from win32 folks).
18877
18878 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18879
18880         * object.c: mono_array_new_full workaround mono_array_class_get
18881         problem.
18882
18883 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18884
18885         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18886         * object.h (mono_string_chars): Changed casting type.
18887
18888 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18889
18890         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18891                            method signatures to use gunichar2 instead of gint16.
18892
18893 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18894
18895         * object.h, object.c: domain-specific versions of mono_object_new and
18896         mono_array_new.
18897
18898 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18899
18900         * object.c: changed String layout
18901
18902         * string-icalls.c (mono_string_Internal_ctor_chara): added
18903         internal string constructors.
18904
18905 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18906
18907         * threads.c: pass 'this' to the thread start routine.
18908
18909 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18910
18911         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18912         InternalCompareStr don't call twice mono_string_cmp_char for the last
18913         character. Improved performance in mono_string_cmp_char.
18914
18915 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18916
18917         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18918         code into its own library: libmonoruntime.
18919
18920 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18921
18922         * object.h, object.c: changed array format so that szarrays do not
18923         require a bounds structure.
18924         * icall.c, appdomain.c: support for new szarray format.
18925
18926 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18927
18928         * metadata.c: compare also the retuns type when comparing signatures:
18929         we didn't do this as an optimization since really overloaded methods
18930         must differ also in the arguments, but this doesn't work with
18931         low-level IL code (or when using explicit conversion operators: see
18932         bug#23498 for an example).
18933
18934 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18935
18936         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18937
18938 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18939
18940         * icall.c: make MonoType::GetElementType its own icall.
18941
18942 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18943
18944         * icall.c: remove MonoMethod_get_Name().
18945         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18946         object.
18947
18948 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18949
18950         * string-icalls.c: optimized a few methods.
18951
18952 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18953
18954         * icall.c: added all new string internal calls
18955         * string-icalls.c: added, new string internal call implementation.
18956         * object.c: added mono_string_new_size for allocating a string a size
18957
18958 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18959
18960         * object.c (mono_object_isinst): use the same code as in the
18961         optimized x86 version.
18962
18963 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18964
18965         * profiler.c: TSC-based timer code (faster and more accurate).
18966         Not hooked up in configure, yet (set USE_X86TSC to 1).
18967
18968 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18969
18970         * profiler.c, profiler.h: track time spent compiling methods.
18971         * threads.c: track thread creation/destruction.
18972
18973 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18974
18975         * profiler.c, profiler.h, profiler-private.h: profiling interface
18976         and sample implementation. Moved here so that it can be used also by
18977         the jit.
18978
18979 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18980
18981         * reflection.c, reflection.h: keep types and other handles separate in
18982         the hash tables for referred tokens. Add guid for modules.
18983
18984 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18985
18986         * assembly.c: fix bugs found with valgrind.
18987         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18988
18989 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18990
18991         * threads: added icall support for getting current domain for
18992                    the thread.
18993  
18994 2002-04-13  Martin Baulig  <martin@gnome.org>
18995
18996         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18997         (MonoDebugVarInfo): Added `index' field for register based addresses.
18998         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18999         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
19000         `MonoDebugVarInfo *params' and `guint32 this_offset' with
19001         `MonoDebugVarInfo *this_var'.
19002
19003         * debug-symfile.c (relocate_variable): New static function to write
19004         a location description for a local variable or method parameter.
19005
19006 2002-04-12  Martin Baulig  <martin@gnome.org>
19007
19008         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
19009         stack offset and begin/end scope address of a local variable.
19010         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
19011         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
19012         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
19013
19014         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
19015         Added new relocation types for start/end scope of a local variable.
19016
19017 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19018
19019         * object.h: add mono_object_domain() macro.
19020         * reflection.c: handle typespecs.
19021         * icall.c: MonoMethod::get_Name() implementation.
19022
19023 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19024
19025         * icall.c: String::GetHashCode() icall implementation.
19026
19027 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19028
19029         * icall.c: String::IndexOfAny icall.
19030         * object.c, object.h: make array->max_length more useful.
19031         Intrduced mono_object_class() and mono_string_length() macros.
19032
19033 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19034
19035         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
19036         instead of g_unichar_isdigit.
19037
19038 2002-04-11  Nick Drochak  <ndrochak@gol.com>
19039
19040         * icall.c: Implement a simple Double.ToString().
19041
19042 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19043
19044         * appdomain.h: only io-layer.h is supposed to be included.
19045         * icall.c: explicitly import environ. Fix warning.
19046
19047 2002-04-10  Nick Drochak  <ndrochak@gol.com>
19048
19049         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
19050                 return true even if it's not Daylight Savings time.
19051                 Only return false for the case where the function isn't
19052                 implemented for a plaform (read Windows).
19053
19054 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19055
19056         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
19057         data with a mutex.
19058
19059 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
19060
19061         * mempool.c (mono_mempool_alloc): only use g_malloc when
19062         absolutely necessary.
19063
19064 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19065
19066         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
19067
19068         * class.c (mono_class_vtable): use domain mempool to allocate vtable
19069         (mono_class_proxy_vtable): use domain mempool
19070
19071 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19072
19073         * appdomain.h, appdomain.c: split initialization that requires the
19074         execution engine support into mono_runtime_init().
19075
19076 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19077
19078         * class.c (mono_class_init): don't include vtable inside MonoClass
19079         to save some memory, gather some statistics.
19080         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
19081
19082 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19083
19084         * icall.c: internalcall implementation for ValueType.Equals().
19085
19086 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
19087
19088         * object.c (mono_message_init): moved 
19089         (mono_runtime_exec_main): new arch. independent impl.
19090         (mono_runtime_invoke_array): new method - like
19091         mono_runtime_invoke, but you can pass an array of objects.
19092         (mono_remoting_invoke): new arch. independent impl.
19093         (mono_message_invoke): new arch. independent impl.
19094         (mono_runtime_class_init): new arch. independent impl.
19095         (mono_runtime_object_init): new arch. independent impl.
19096
19097 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19098
19099         * metadata.c, object.c, reflection.c: documented the exported
19100         functions.
19101
19102 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19103
19104         * icall.c: simpler code to pass the assembly builder data to corlib.
19105         Implement GetNestedTypes() internalcall.
19106
19107 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19108
19109         * class.c: warn if a type can't be loaded.
19110
19111 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
19112
19113         * image.h: typedef MonoImageOpenStatus
19114         * types.h: removed unused file
19115         
19116 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
19117
19118         * icall.c: Enum_ToObject accepts enum value arguments.
19119
19120 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19121
19122         * class.c: move initialization of properties, events and nested
19123         classes, so that they happen for interfaces, too.
19124
19125 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19126
19127         * icall.c: cleanup some ugly casts in Array_SetValue*.
19128
19129 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19130
19131         * icall.c: the values array fro enums is of the correct type, now.
19132         Implement (correctly) getFullName instead of assQualifiedName for
19133         MonoType.
19134         * reflection.h, reflection.c: added mono_type_get_name ().
19135
19136 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19137
19138         * assembly.c, image.h: for each MonoImage, record from wich assembly
19139         it was loaded.
19140         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19141         Make Type.Assembly work.
19142
19143 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19144
19145         * debug-symfile.h: use char* instead of gpointer to avoid
19146         unnecessary casts.
19147
19148         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19149
19150         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19151         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19152
19153 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19154
19155         * icall.c (mono_message_init): impl. (code cleanup)
19156         (ves_icall_InternalExecute): impl. FieldGetter
19157
19158         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19159         defined we call all (non-static)methods through the vtable. 
19160
19161 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19162
19163         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19164         finalizer even though the memory is still referenced (and the chunk of
19165         memory is not freed).
19166
19167 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19168
19169         * assembly.c: fix brokeness.
19170
19171 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19172
19173         * class.c: kill some warnings. Check explicit interface method
19174         implementation also without considering the namespace.
19175         Load also literal strings in static class data.
19176
19177 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19178
19179         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19180         (default_assembly_name_resolver): Make the resolver take the
19181         "base" directory where the assembly was originally defined, so we
19182         can load DLLs that are in the same directory as the assembly that
19183         is being referenced.
19184
19185 2002-03-28  Dick Porter  <dick@ximian.com>
19186
19187         * file-io.h: 
19188         * file-io.c:
19189         * socket-io.c: 
19190         * unicode.h: 
19191         * unicode.c: Warning cleanups
19192
19193 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19194
19195         * object.h, reflection.h: use the correct type instead of MonoObject.
19196
19197 2002-03-28  Martin Baulig  <martin@gnome.org>
19198
19199         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19200         (mono_debug_update_symbol_file): Initialize classes if necessary.
19201
19202 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19203
19204         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19205         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19206
19207 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19208
19209         * assembly.h: fix function prototype.
19210         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19211         * mono-endian.h: use const cast.
19212
19213 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19214
19215         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19216
19217 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19218
19219         * loader.c: don't assert when a typeref can't be loaded, give
19220         a chance to the runtime to trow an exception instead.
19221         * loader.h: fix warning.
19222
19223 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19224
19225         * class.c (mono_class_proxy_vtable): added proxy support
19226
19227 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19228
19229         * icall.c: removed last of PAL calls, added System.Environment
19230         * file-io.h, file-io.c: MonoIO implementation
19231         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19232
19233 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19234
19235         * appdomain.c: do not use the byte marker in ldstr table lookup.
19236         * debug-helpers.c: allow two ':' to separate class and method name.
19237         * object.c: allocate arrays bounds with the GC, too.
19238         * verify: add a few more checks.
19239
19240 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19241
19242         * reflection.c: output also literal strings. Allocate parameter data
19243         with GC_malloc() (thanks, Martin, for catching this!).
19244
19245 2002-03-26  Martin Baulig  <martin@gnome.org>
19246
19247         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19248         include the `this' offset in the `param_offsets'.
19249
19250 2002-03-25  Martin Baulig  <martin@gnome.org>
19251
19252         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19253         mono_debug_get_class() function to get the classes. Added new
19254         relocation types for arrays and strings.
19255         (mono_debug_get_class): New static function to search in all
19256         referenced assemblies for a metadata token.
19257
19258         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19259
19260 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19261
19262         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19263         hold gc-allocated objects. Make the string heap a stream like the
19264         others. Removed duplicated code when writing stream info.
19265         Added asserts to catch possible buffer overflows. Set the sorted map
19266         for tables that need sorting. Added some documentation.
19267
19268 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19269
19270         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19271         for interned strings and vtables.
19272
19273 2002-03-24  Martin Baulig  <martin@gnome.org>
19274
19275         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19276         it in the array since it was created with g_slist_prepend().
19277
19278 2002-03-24  Martin Baulig  <martin@gnome.org>
19279
19280         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19281         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19282         (mono_debug_method_from_token): Renamed to
19283         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19284         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19285
19286         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19287         relocation types.
19288
19289         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19290
19291 2002-03-24  Martin Baulig  <martin@gnome.org>
19292
19293         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19294         (mono_debug_method_from_token): New func.
19295
19296         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19297         New interncall, calls mono_debug_local_type_from_signature().
19298         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19299         calls mono_debug_method_from_token().
19300
19301 2002-03-23  Martin Baulig  <martin@gnome.org>
19302
19303         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19304         specifies the number of bytes to be converted, not the array size.
19305         Return the number of chars, not the number of bytes.
19306         (ves_icall_iconv_get_chars): The `byteCount' argument
19307         specifies the number of bytes to be converted, not the array size.
19308
19309 2002-03-23  Martin Baulig  <martin@gnome.org>
19310
19311         * reflection.h (MonoReflectionSigHelper): New type.
19312
19313         * reflection.c (mono_reflection_sighelper_get_signature_local),
19314         (mono_reflection_sighelper_get_signature_local): New functions.
19315
19316         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19317         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19318         interncalls.
19319
19320 2002-03-23  Martin Baulig  <martin@gnome.org>
19321
19322         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19323         is_writeable is set.
19324         (mono_raw_buffer_update): New function to write the modified map
19325         back to disk.
19326
19327         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19328
19329         * debug-symfile.c (mono_debug_update_symbol_file): Call
19330         mono_raw_buffer_update() when done writing.
19331
19332 2002-03-23  Martin Baulig  <martin@gnome.org>
19333
19334         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19335
19336         * debug-symfile.c: Added support for arguments and local variables.
19337
19338 2002-03-23  Dick Porter  <dick@ximian.com>
19339
19340         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19341         protected by ifdefs, hence breaking the w32 build.
19342
19343 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19344
19345         * object.c: implement is_interned() the right way.
19346
19347 2002-03-21  Martin Baulig  <martin@gnome.org>
19348
19349         * debug-symfile.[ch]: New files to handle debugging information
19350         files. There's also support to dynamically update these symbol
19351         files to include machine dependent information.
19352
19353 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19354
19355         * threads.c (mono_thread_create): new function to create thread
19356         from C
19357
19358 2002-03-20  Martin Baulig  <martin@gnome.org>
19359
19360         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19361         method is a constructor.
19362         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19363         points to ves_icall_InternalInvoke().
19364
19365 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19366
19367         * file-io.c: Flush shouldn't throw exceptions.
19368
19369 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19370
19371         * file-io.c: FileStream flush support; FileSetLength now
19372         restores file pointer.
19373
19374 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19375
19376         * class.c: set image for pointer classes.
19377
19378 2002/03/19  Nick Drochak <ndrochak@gol.com>
19379
19380         * sysmath.c: Forgot one.
19381
19382 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19383
19384         * sysmath.c: Avoid redefining existing names.
19385
19386 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19387
19388         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19389         handled by runtime as icall rather than dllimport from libm.so
19390         * file-io.c, file-io.h: fixed handle argument type.
19391
19392 2002-03-18  Dick Porter  <dick@ximian.com>
19393
19394         * reflection.c (mono_image_get_type_info): rename interface to
19395         iface, because of "#define interface struct" on windows.
19396
19397 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19398
19399         * class.c, class.h: rename and export mono_ptr_class_get().
19400         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19401         * reflection.c, reflection.h, icall.c: better/saner type name
19402         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19403         method signatures.
19404
19405 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19406
19407         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19408
19409         * icall.c (ves_icall_InternalInvoke): impl.
19410
19411 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19412
19413         * reflection.c: output the interface map table, too.
19414
19415 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19416
19417         * class.c (class_compute_field_layout): separate computation of 
19418         static field layout
19419
19420 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19421
19422         * icall.c: added System.Buffer support.
19423         * file-io.c: moved file icalls from PAL to FileStream.
19424
19425 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19426
19427         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19428
19429 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19430
19431         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19432
19433 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19434
19435         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19436
19437 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19438
19439         * debug-helpers.{c,h}: moved here from monograph some useful functions
19440         to locate a method by name/signature in a class or image. Included
19441         also a small and flexible IL disassembler.
19442
19443 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19444
19445         * reflection.c: fixup tokens in methods with small header size, too.
19446
19447 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19448
19449         * object.c (mono_string_to_utf8): remove assert(!error), instead
19450         print a warning. 
19451
19452 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19453
19454         * icall.c: update to the new mono_Array_class_get interface.
19455
19456 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19457
19458         * appdomain.c, object.c: Boehm-GC enable.
19459         * icall.c: make get_data_chunk() support split data requests.
19460         Ensure a class is initialized in more cases. Return only the first
19461         property found in GetProperties() or the compiler gets confused. 
19462         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19463         * reflection.h, reflection.c: add fixup mechanism for field and method
19464         tokens. Initialize assembly->typeref in a single place. Output
19465         properties after events. Support custom attributes for events, too.
19466         Typo fix for paramter custom attrs.
19467
19468 2002-03-07  Martin Baulig  <martin@gnome.org>
19469
19470         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19471
19472 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19473
19474         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19475
19476 2002-03-06  Martin Baulig  <martin@gnome.org>
19477
19478         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19479         non-zero lower bounds. See testcases #F10-#F13.
19480
19481 2002-03-05  Martin Baulig  <martin@gnome.org>
19482
19483         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19484
19485         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19486         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19487         here.
19488         (ves_icall_System_Array_SetValue): Likewise.
19489         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19490         as argument and does the actual work. This function is used when copying a
19491         multi-dimensional array.
19492         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19493         now do all the widening conversions of value types.
19494         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19495
19496 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19497
19498         * class.c: remove some magic numbers and use the smbolic names,
19499         instead. Added init_events() to load event info at class init time.
19500         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19501         and mono_metadata_methods_from_event().
19502         * reflection.h, reflection.c: added support for writing out the evnets
19503         related information.
19504
19505 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19506
19507         * reflection.h, icall.c: use a different method (GetInterfaces)
19508         to gather interface info and add isbyref, isprimitive and
19509         ispointer to the ves_icall_get_type_info() return value.
19510
19511 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19512
19513         * class.h: stared adding support for events.
19514         * icall.c: split find_members implementation. Added debug icall to get
19515         the address of an object.
19516         * reflection.c: handle TypeBuilders in mono_type_get_object().
19517
19518 2002-03-01  Martin Baulig  <martin@gnome.org>
19519
19520         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19521         ArgumentOutOfRangeException(), not an ArgumentException().
19522         (ves_icall_System_Array_GetLowerBound): Likewise.
19523         (ves_icall_System_Array_GetValue): Improved argument checking.
19524         (ves_icall_System_Array_SetValue): Improved argument checking.
19525
19526 2002-03-01  Martin Baulig  <martin@gnome.org>
19527
19528         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19529         called with invalid arguments rather than just dying with g_assert().
19530         (ves_icall_System_Array_SetValue): Likewise.
19531         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19532         raise a NotImplementedException instead.
19533         (ves_icall_System_Array_GetLength): Added argument checking.
19534         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19535
19536 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19537
19538         * object.h (mono_assert): new macros mono_assert and
19539         mono_assert_not_reached
19540
19541 2002-02-28  Martin Baulig  <martin@gnome.org>
19542
19543         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19544         and "System::String::IsInterned" to "System::String::_IsInterned".
19545
19546 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19547
19548         * icall.c: remove hacks for typebuilder. Added icall to create a
19549         modified type from a tybebuilder.
19550         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19551         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19552         to create a backing MonoClass for a TypeBuilder.
19553
19554 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19555
19556         * class.c, class.h: more refactoring of class init.
19557         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19558
19559 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19560
19561         * marshal.c, marshal.h: start of marshaling interface.
19562
19563 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19564
19565         * icall.c: fix order in assembly qualified name icall.
19566
19567 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19568
19569         * class.c: do not free str, since we store it in the hash table.
19570         * reflection.h: add label field to MonoILExceptionInfo.
19571         * reflection.c: handle references to more than one assembly. Handle
19572         case when there isn't a module created in the assembly.
19573
19574 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19575
19576         * class.c: Fix typo. Start refactoring of class init code.
19577
19578 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19579
19580         * appdomain.c: exit with 1 on error.
19581         * class.c: we already have the name in MonoClassField.
19582         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19583         MonoStreamHeader instead of an offset of image->raw_metadata.
19584
19585 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19586
19587         * appdomain.c (mono_init): Be even more descriptive about the error.
19588
19589 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19590
19591         * appdomain.c: give the user an informative message when corlib can't
19592         be loaded.
19593
19594 2002-02-26  Martin Baulig  <martin@gnome.org>
19595
19596         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19597         New icall to get the time zone data.
19598
19599 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19600
19601         * reflection.c: set virtual and raw size of section correctly.
19602         * threads.c: transfer domain information to newly created threads.
19603
19604 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19605
19606         * class.c: when instancing a class in a domain, load the default
19607         vaules for static fields from the constant table. Fix System.Enum to
19608         not be an enum.
19609         * icall.c: implement Object::GetType() internalcall. Implemented
19610         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19611         Fixed checking of binding flags in find_members().
19612         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19613         * reflection.c: handle enumerations when writing to the constant
19614         table. Use a different object cache for types.
19615
19616
19617 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19618
19619         * object.c (mono_object_isinst): fix for arrays
19620
19621         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19622
19623 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19624
19625         * object.c: don't use mprotect ()  and fix intern pool hash table
19626         lookup for big endian systems.
19627
19628 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19629
19630         * icall.c: change type_is_subtype_of () signature.
19631
19632 2002-02-21  Mark Crichton  <crichton@gimp.org>
19633
19634         * rand.c, rand.h: Added random number generator for
19635         System.Security.Cryptography classes.
19636
19637         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19638
19639         * icall.c: Added System.Security.Cryptography calls.
19640
19641 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19642
19643         * class.c, icall.c, metadata.c: better support for pointer types.
19644         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19645         * reflection.c: Add support for getting custom attrs for properties
19646         and simplify some code.
19647
19648 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19649
19650         * icall.c: change getToken () and add custom attribute GetBlob()helper
19651         method.
19652         * reflection.h: add custom attrs array to the reflection builder structures.
19653         * reflection.c: encode and emit custom attributes for all the relevant
19654         reflection objects. Cache fieldref and methodref tokens. Change
19655         mono_image_create_token() interface to take a MonoDynamicAssembly.
19656         More complete custom attributes decoder. Load custom attributes for
19657         Assembly, Field, Method and Constructor objects, too. Make the
19658         returned array an Attribute[] one, not object[]. Added
19659         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19660         custom attribute constructor.
19661
19662 2002-02-20  Dick Porter  <dick@ximian.com>
19663
19664         * icall.c:
19665         * rawbuffer.c:
19666         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19667         problem code out for now).
19668
19669 2002-02-19  Radek Doulik  <rodo@ximian.com>
19670
19671         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19672
19673 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19674
19675         * icall.c: register the GetCustomAttributes method.
19676         * object.c, object.h: add mono_string_new_len ().
19677         * reflection.h, reflection.c: added mono_runtime_invoke(),
19678         mono_install_runtime_invoke(). Added
19679         mono_reflection_get_custom_attrs () to load custom attributes and
19680         create the attribute objects.
19681
19682 2002-02-19  Dick Porter  <dick@ximian.com>
19683         * threads-dummy-types.c:
19684         * threads-dummy-types.h:
19685         * threads-dummy.c:
19686         * threads-dummy.h:
19687         * threads-pthread-types.c:
19688         * threads-pthread-types.h:
19689         * threads-pthread.c:
19690         * threads-pthread.h:  Deleted obsolete files
19691
19692 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19693
19694         * class.c (mono_class_vtable): runtime init the class when we
19695         allocate static class data.
19696
19697         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19698
19699         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19700         and String - but we will need generic marshalling support in the
19701         future. 
19702         (mono_init): set the domain name in a ms compatible way
19703
19704         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19705         String[].
19706
19707 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19708
19709         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19710         for sizes
19711
19712         * appdomain.c (mono_domain_unload): impl.
19713
19714 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19715
19716         * appdomain.c, object.c: fix intern pool implementation.
19717         * class.c: fix alignment code.
19718
19719 2002-02-16  Radek Doulik  <rodo@ximian.com>
19720
19721         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19722         and s2 > s1, just copy lower bytes to be compatible with little
19723         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19724         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19725
19726         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19727         force big_endian to be 1 for big endian machines 
19728         (ves_icall_iconv_new_decoder): ditto
19729
19730 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19731
19732         * socket-io.c (convert_sockopt_level_and_name): If the system
19733         doesn't define SOL_IP or SOL_TCP, get them by hand using
19734         getprotobyname() and caching the values (because this could be a
19735         slow operation).
19736         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19737         Use the appropriate struct when the system does support it. Ie,
19738         not all systems have struct ip_mreqn so use struct ip_mreq when
19739         appropriate.
19740
19741 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19742
19743         * reflection.c: handle finally clauses.
19744
19745 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19746
19747         * socket-io.c: use g_snprintf() instead of snprintf.
19748
19749 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19750
19751         * reflection.c (mono_param_get_objects): Cast second argument to
19752         mono_method_get_param_names to a const char** to silence the
19753         compiler warning.
19754
19755         * appdomain.c (mono_domain_assembly_open): Put parens around the
19756         truth statement in the for-loop.
19757
19758         * unicode.c (iconv_convert): Got rid of a compiler warning about
19759         int i being unused when the system has a new iconv.
19760         (iconv_get_length): Same.
19761
19762         * image.c (load_class_names): Cast the second argument to
19763         g_hash_table_insert() to char* to hush compiler warnings about the
19764         arg being a const.
19765         (mono_image_open): Same here.
19766
19767         * socket-io.c: Don't conditionally include sys/filio.h or
19768         sys/sockio.h here anymore since we now get them from
19769         io-layer/io-layer.h
19770         (inet_pton): If the system doesn't support inet_aton, implement
19771         using inet_addr and also #define INADDR_NONE if it isn't defined
19772         by the system.
19773
19774 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19775
19776         * metadata.c, metadata.h: added function to get packing and size info
19777         of a typedef.
19778         * reflection.h, reflection.c: handle field RVA data. Save info about
19779         the table layout if needed. Assign typedef indexes to all the types
19780         before dumping the info about them to avoid forward reference problems.
19781
19782 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19783
19784         * socket-io.c (convert_sockopt_level_and_name): ifdef
19785         SO_ACCEPTCONN because it is not defined on my system (old debian)
19786
19787 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19788
19789         * opcode.c: use stddef.h to get NULL.
19790
19791 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19792
19793         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19794         for FIONBIO, FIONREAD and SIOCATMARK.
19795         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19796         define INADDR_NONE and besides, inet_addr() is deprecated and
19797         should not be used. Use inet_pton() instead - it also has the
19798         added bonus that it can easily handle IPv6 addresses as well.
19799         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19800
19801 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19802
19803         * decimal.c: remove _MSC_VER conditional.
19804
19805 2002-02-13  Dick Porter  <dick@ximian.com>
19806
19807         * socket-io.c: 
19808         * icall.c: Internal calls for Blocking, Select, Shutdown,
19809         GetSocketOption and SetSocketOption
19810
19811 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19812
19813         * assembly.cs: better resolver: use it instead of some kludgy
19814         code.
19815
19816 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19817
19818         * reflection.c: the best way to speed-up the compiler is to avoid
19819         infinite loops.
19820
19821 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19822
19823         * class.c (mono_class_vtable): changed the object layout
19824         (obj->vtable->class). 
19825         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19826
19827 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19828
19829         * assembly.c: look for assemblies in the assembly dir, too.
19830
19831 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19832
19833         * class.c: fix thinko in mono_class_from_type().
19834
19835 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19836
19837         * exception.h, exception.c: added TypeLoadException.
19838         * object.h, object.c: added mono_array_clone ().
19839         * icall.c: handle throwOnError in AssemblyGetType().
19840         Added Array.Clone().
19841         * opcode.h, opcode.c: use a single value for the opcode val.
19842         Compile fix for non-gcc compilers.
19843
19844 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19845
19846         * opcodes.c, opcodes.h: export interesting info about opcodes.
19847
19848 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19849
19850         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19851         icalls. 
19852
19853         * class.c (class_compute_field_layout): set element_class for enums
19854         (mono_class_create_from_typedef): set element_class for normal classes
19855
19856         * icall.c (ves_icall_System_Enum_get_value): impl.
19857
19858         * class.c (mono_class_create_from_typedef): do not set valuetype
19859         flag for System.ValueType and System.Enum
19860
19861 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19862
19863         * unicode.c (iconv_convert): fix big endian problem.
19864
19865 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19866
19867         * class.c: add asserts if we are ever going to scribble over memory.
19868         * socket-io.c: not all systems have AF_IRDA defined.
19869
19870 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19871
19872         * class.c (class_compute_field_layout): do not consider static
19873         fields to compute alignment
19874
19875 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19876
19877         * appdomain.c (mono_appdomain_get): impl.
19878         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19879
19880 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19881
19882         * icall.c: ignore "file://" prefix when loading an assembly.
19883
19884 2002-01-23  Dick Porter  <dick@ximian.com>
19885
19886         * socket-io.c:
19887         * icall.c:
19888         * Makefile.am: Added socket support
19889
19890 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19891
19892         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19893         code back.  This should return the assemblies that are loaded by
19894         the runtime on behalf of an application domain. 
19895
19896         The current implementation is still broken, it just returns every
19897         assembly loaded, but until we get real applications domain this
19898         will do.
19899
19900 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19901
19902         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19903         AppDomain object.
19904
19905 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19906
19907         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19908         the mono_class_from_name lookup.
19909         (ves_icall_get_parameter_info): ditto.
19910         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19911         method.
19912         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19913
19914 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19915
19916         * class.c: load also nested classes on class init.
19917         System.ValueType instance methods gets passed boxed
19918         values, unless methods in derived classed that get a pointer to the
19919         data.
19920         * icall.c: use better name parsing code in GetType().
19921         * image.c, image.h: add mono_image_loaded ().
19922         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19923         * reflection.c, reflection.h: added mono_reflection_parse_type().
19924
19925 2002-01-22  Veronica De Santis <veron78@interfree.it>
19926
19927         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19928         * threads.c : Added the implementation of internal calls for events
19929         * threads.h : Added prototypes of internal calls for events
19930         
19931 2002-01-21  Radek Doulik  <rodo@ximian.com>
19932
19933         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19934
19935 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19936
19937         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19938         (mono_class_value_size): use min_align
19939
19940 2002-01-20  Dick Porter  <dick@ximian.com>
19941
19942         * threads.h:
19943         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19944         so it compiles on w32.
19945
19946 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19947
19948         * metadata.c (mono_type_stack_size): impl.
19949
19950         * class.c (mono_class_get_field): impl. memberref token
19951
19952 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19953
19954         * icall.h : Added the internal calls mapping for CreateMutex_internal
19955                     and ReleaseMutex_internal.
19956         * threads.h : Added the prototype of mutexes internal calls.
19957         * threads.c : Added the implementations of mutexes internal calls.
19958
19959 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19960
19961         * metaparse.h: removed unused file.
19962         * reflection.c, reflection.h: added stream_data_align () function 
19963         to align data in streams and keep stream aligned. Add support for
19964         exception support in method headers.
19965
19966 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19967
19968         * unicode.c: make iconv_convert () return the number of bytess written
19969         in the output buffer.
19970
19971 2002-01-15  Dick Porter  <dick@ximian.com>
19972         * threads.c: Make the runtime's idea of infinite timeouts coincide
19973         with the class library's
19974
19975         Fix a particularly egregious bug in mono_thread_cleanup(). That
19976         code was so utterly bogus it must have been written on a Monday.
19977
19978 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19979
19980         * reflection.h: add subtypes field to TypeBuilder.
19981         * reflection.c: encode constants for literal fields.
19982         Handle subtypes. Fix user string token (and add a zero byte)
19983         at the end.
19984         
19985 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19986
19987         * class.c (mono_class_init): bug fix: assign slot numbers for
19988         abstract methods.
19989
19990 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19991
19992         * reflection.c: don't try to output a code RVA for abstract methods.
19993         Small fixes for method header format. Output parameter info to the
19994         ParamDef table. Save method overriding info to MethodImpl table.
19995         Fix property support. Allow typedef.extends to be a type in the
19996         building assembly.
19997         * verify.c: fix off-by-one error.
19998
19999 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
20000
20001         * class.c: fix mono_class_from_mono_type () for szarray types.
20002         Remove unused cache check in mono_class_from_type_spec().
20003         * icall.c: *type_from_name () functions handle simple arrays and byref.
20004         * reflection.c: handle byref and szarray types. Handle methods without
20005         body (gets P/Invoke compilation working). Handle types and fields in
20006         get_token ().
20007         * reflection.h: add rank to MonoTypeInfo.
20008
20009 2002-01-10  Dick Porter  <dick@ximian.com>
20010
20011         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
20012         internal calls
20013
20014 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20015
20016         * icall.c: initialize class in type_from_handle ().
20017         Loop also in parent classes for get_method ().
20018         * reflection.c: properly encode class and valuetype types.
20019         Start on encoding TypeBuilder types. Handle fieldrefs.
20020         Use correct length when registering a user string.
20021         Handle ConstructorBuilder and MonoMethod in get_token ().
20022         Make mono_type_get_object () aware of cached types.
20023         * object.c: back out change to mono_string_new ().
20024
20025 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
20026         * object.c: mono_string_new should return a NULL when the string 
20027         passed in is NULL -- not try to deference it.
20028         
20029 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20030
20031         * icall.c: hack to make IsSubType work for TypeBuilders.
20032         * reflection.c: emit constructors before methods.
20033         Retrieve param names in mono_param_get_objects().
20034
20035 2002/01/05  Nick Drochak  <ndrochak@gol.com>
20036
20037         * Makefile.am: fix list of headers and sources so automake 1.5
20038         doesn't complain. Removed \# at end of list.
20039
20040 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20041
20042         * reflection.c: get token for a method ref. Set return type of
20043         constructor to void.
20044         * loader.c: debug message.
20045         * class.c: typo fix.
20046
20047 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
20048
20049         * icall.c: fix array init with rank > 1. FindMembers
20050         loops in parent class as well.
20051         * image.c: do not insert nested types in name cache.
20052         * reflection.c: warning fix.
20053         * reflection.h: add override method (for interface impl).
20054
20055 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
20056
20057         * metadata.c: fix customattr decoding.
20058
20059 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
20060
20061         * rawbuffer.cs: Added native Win32 implementation, avoids using
20062         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
20063
20064 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
20065
20066         * class.c: make the low-level routines handle the cache.
20067
20068 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
20069
20070         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
20071
20072 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
20073
20074         * class.c: fix mono_array_element_size() for objects.
20075         * class.h, class.c: add properties to MonoClass and load them
20076         at init time.
20077         * icall.c: check with isinst() when assigning a value to an array
20078         instead of requiring the classes to match exactly.
20079         Implemented icall for System.Type::GetType().
20080         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
20081         enums. Handle bindingflags when looking for methods and fields.
20082         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
20083         and mono_metadata_methods_from_property().
20084         * reflection.h, reflection.c: added structures for propreties,
20085         parameters and enums. Implemented mono_property_get_object() and
20086         mono_param_get_objects().
20087
20088 2001-12-18  Dick Porter  <dick@ximian.com>
20089
20090         * file-io.c: Use mono_string_to_utf16() instead of
20091         mono_string_chars()
20092
20093         * object.c: Added mono_string_to_utf16(), which copies the non
20094         NULL-terminated MonoString into a new double-null-terminated
20095         buffer.
20096
20097 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
20098
20099         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20100
20101 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
20102
20103         * file-io.c: raise exceptions if handle is invalid.
20104
20105 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20106
20107         * assembly.c: yet another check for mscorlib.
20108         * class.c, class.h: load nesting info for classes.
20109         * icall.c: many new functions to support the Reflection classes.
20110         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20111         * reflection.h, reflection.c: mono_image_create_token(),
20112         mono_assembly_get_object(), mono_type_get_object(),
20113         mono_method_get_object(), mono_field_get_object(): methods to return
20114         objects that parallel the C representation of assemblies, types,
20115         methods, fields.
20116
20117 2001-12-11  Dick Porter  <dick@ximian.com>
20118
20119         * icall.c:
20120         * file-io.c: Internal calls for file IO.
20121
20122 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20123
20124         * tabledefs.h: missing FileAttributes.
20125         * verify.h, verify.c: use is_valid_string () to simplify and check for
20126         valid strings more correctly. Fix warnings and speeling.
20127         Check more tables: Filed, File, ModuleRef, StandAloneSig.
20128         Check code: branches, maxstack, method calls.
20129
20130 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20131
20132         * object.c (mono_object_allocate): removed static, so that the jit
20133         can allocate value types.
20134
20135         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20136
20137 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20138
20139         * class.c: init enum types right away and register the
20140         token->MonoClass map in mono_class_create_from_typedef ().
20141         * verify.h, verify.c: first cut of the verifier.
20142         * pedump.c: add --verify switch to verify metadata tables.
20143         * tabledefs.h: add some missing enums.
20144
20145 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20146
20147         * class.c (mono_install_runtime_class_init): impl.
20148         (mono_class_init): renamed mono_class_metadata_init to
20149         mono_class_init, also removed the metadata_inited flag
20150
20151         * object.c (mono_object_isinst): use faster algorithm
20152
20153 2001-11-30  Radek Doulik  <rodo@ximian.com>
20154
20155         * mono-endian.h: reverted last change
20156         added function prototypes
20157
20158         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20159         add mono-endian.c back
20160
20161         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20162         for unaligned access, I've mistaked it with endianess. I am
20163         sorry.
20164         (mono_read16): fix reverted endianess
20165         (mono_read64): ditto
20166         (mono_read32): ditto
20167
20168 2001-11-30  Dick Porter  <dick@ximian.com>
20169
20170         * exception.c: Implement mono_exception_from_name()
20171
20172 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20173
20174         * metadata.h, metadata.c: remove params_size and locals_size and their
20175         calculation from the metadata code: they are only usefult to the
20176         interp.
20177
20178 2001-11-29  Radek Doulik  <rodo@ximian.com>
20179
20180         * object.c (mono_ldstr): swap bytes here, it's probably not the
20181         best place, but works for me now, I'll redo it once I know mono
20182         better, also note that I add PROT_WRITE and don't reset back, also
20183         note that it's only affects big endians, so x86 should be OK
20184
20185         * mono-endian.h (read16): use just glib macros for both endians
20186
20187         * mono-endian.c: removed as glib macros are used in in
20188         mono-endian.h so we don't need to care about endianess for read
20189         macros as glib does that for us already
20190
20191 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20192
20193         * class.h, class.h: take minimum alignment into consideration so
20194         that the fields of a class remain aligned also when in an array.
20195
20196 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20197
20198         * loader.h, loader.c: add mono_method_get_param_names().
20199         * class.c: 0-init class fields.
20200
20201 2001-11-26  Dick Porter  <dick@ximian.com>
20202
20203         * icall.c:
20204         * threads-types.h:
20205         * threads.c: New file that handles System.Threading on all platforms
20206
20207         * object.c: 
20208         * object.h: Remove the synchronisation struct from MonoObject,
20209         replace it with a pointer that gets initialised on demand
20210
20211         * Makefile.am: Replace all the system-specific threading code with
20212         a single file that uses the new wrapper library
20213
20214 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20215
20216         * class.c, class.h: add mono_install_trampoline() so that the runtime
20217         can register a function to create a trampoline: removes the ugly
20218         requirement that a runtime needed to export arch_create_jit_trampoline.
20219         * object.h, object.c: added mono_install_handler() so that the runtime
20220         can install an handler for exceptions generated in C code (with
20221         mono_raise_exception()). Added C struct for System.Delegate.
20222         * pedump.c: removed arch_create_jit_trampoline.
20223         * reflection.c: some cleanups to allow registering user strings and
20224         later getting a token for methodrefs and fieldrefs before the assembly
20225         is built.
20226         * row-indexes.h: updates and fixes from the new ECMA specs.
20227
20228 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20229
20230         * class.h, class.c: add enum_basetype field to MonoClass.
20231         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20232         to get index in the constant table reated to a field, param or
20233         property.
20234         * reflection.h, reflection.c: handle constructors. Set public-key and
20235         version number of the built assembly to 0.
20236         * row-indexes.h: update from new ECMA spec.
20237
20238 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20239
20240         * class.h, class.c: add a max_interface_id to MonoClass.
20241         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20242         since it's used to do that. Added mono_type_type_from_obj().
20243         Make GetType() return NULL instead of segfaulting if the type was not
20244         found. Handle simple arrays in assQualifiedName.
20245         * object.h: add a struct to represent an Exception.
20246         * reflection.c: output call convention in method signature.
20247         Add code to support P/Invoke methods and fixed offsets for fields.
20248
20249 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20250
20251         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20252         the value.
20253         * icall.c: use mono_array_addr instead of array->vector: fixes the
20254         reflection image writing.
20255         * reflection.c: init call convention byte to 0 in method signature.
20256         Encode the property signature. Don't output property-related methods
20257         twice. Really process the properties for a type (don't cast a field to
20258         a property, my mom always told me that).
20259         Fix 64 bit issues in pointer alignment in a different and more
20260         readable way.
20261
20262 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20263
20264         * loader.h: Removed type class from MonoDefaults, added monotype
20265
20266         * loader.c: Loaded MonoType, removed loading of Type
20267
20268         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20269         and fills in System.Type._impl with a RuntimeTypeHandle rather
20270         than the actual MonoClass *
20271
20272         (ves_icall_type_from_handle): change from type_class to
20273         monotype_class
20274
20275         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20276         implemented
20277
20278         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20279         implemented
20280
20281         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20282
20283         (ves_icall_System_Reflection_Assembly_GetType): implemented
20284
20285         (ves_icall_System_MonoType_assQualifiedName): implemented
20286
20287         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20288
20289 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20290
20291         * assembly.c (mono_assembly_open): Implement a cache for the
20292         assemblies. 
20293
20294         (mono_assembly_close): only destroy the assembly when the last
20295         reference is gone.
20296         
20297 2001-11-09  Dick Porter  <dick@ximian.com>
20298
20299         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20300
20301 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20302
20303         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20304
20305 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20306
20307         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20308         from Martin Weindel.
20309         * object.h: add mono_string_chars ().
20310
20311 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20312
20313         * reflection.c (build_compressed_metadata): Eliminates warnings
20314         and uses 64-bit clean code.
20315
20316         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20317         (mono_type_equal): Change signature to eliminate warnings.
20318
20319 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20320
20321         * icall.c, loader.c: remove the internalcall array constructors.
20322         Changes to match the new MonoArray structure.
20323         * object.h, object.c: an array object doesn't allocate an extra
20324         vector. Add mono_array_new_full () to create jagged arrays easily.
20325
20326 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20327
20328         * metadata.h, metadata.c: add mono_metadata_field_info () to
20329         retreive all the info about a field from vairous tables.
20330         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20331         * class.h, class.c: augment MonoClassField with more info.
20332         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20333         policy and load a field's RVA if needed.
20334
20335 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20336
20337         * class.c (mono_class_metadata_init): create a trampoline for all
20338         virtual functions instead of actually compiling them.
20339
20340 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20341
20342         * class.h, class.c: include name in MonoClassField.
20343         * class.c: fix fundamental type of System.Object and System.String.
20344         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20345         tokens in ldtoken.
20346         * icall.c: remove internalcalls for the Reflection stuff that is now
20347         done in C# code.
20348         * loader.c: mono_field_from_memberref () implementation.
20349         * mono-endian.c: thinko (s/struct/union/g).
20350         * object.c, object.h: make the mono_string_* prototypes actually use
20351         MonoString instead of MonoObject.
20352         * reflection.c, reflection.h: updates for changes in the reflection
20353         code in corlib: we use C structures that map to the actual C# classes.
20354         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20355         fat method header if needed and use the info from the ILGenerator for
20356         methods. Handle fields in types. Misc fixes.
20357
20358 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20359
20360         * class.c (mono_class_metadata_init): bug fix: always allocate
20361         space for static class data
20362
20363 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20364
20365         * class.c (mono_compute_relative_numbering): use relative
20366         numbering to support fast runtime type checks.
20367
20368 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20369
20370         * class.c (mono_class_create_from_typeref): added debugging output
20371         to print class name when MonoDummy is returned instead of real class
20372
20373 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20374
20375         * class.c (mono_class_metadata_init): interface offset table now
20376         contains pointers into the vtable - this is more efficient for the jit
20377
20378 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20379
20380         * class.c (mono_class_metadata_init): use a temporary vtable (the
20381         old algorithm only worked for the interpreter, but not for the jit)
20382
20383 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20384
20385         * loader.c (method_from_memberref): use mono_class_get to get the
20386         class of an array instead of using System.Array directly.
20387         (mono_get_method): also add MEMBERREF methods to the method cache
20388         which usefull for arrays.
20389
20390 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20391
20392         * pedump.c (arch_compile_method): added to compute vtable entry
20393
20394         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20395         number of interfaces.
20396         
20397         * class.h: merged MonoArrayClass into MonoClass
20398
20399         * class.c (mono_class_create_from_typedef): compute the vtable size and
20400         allocate space to include the vtable inside MonoClass
20401         (mono_class_metadata_init): initialize the vtable
20402
20403 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20404
20405         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20406         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20407         * image.c: endian fixes by Laurent Rioux.
20408         * object.h, object.c: rename MonoStringObject to MonoString and
20409         MonoArrayObject to MonoArray. Change some function names to conform to
20410         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20411         guint16* as first argument, so don't use char*.
20412         Provide macros to do the interesting things on arrays in a portable way.
20413         * threads-pthread.c: updates for the API changes and #include <sched.h>
20414         (required for sched_yield()).
20415         * icall.c: updates for the API changes above.
20416         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20417         platforms that need them.
20418
20419 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20420
20421         * class.c: set the correct type for all the fundamental
20422         type when loading the class.
20423
20424 2001-10-05  Dick Porter  <dick@ximian.com>
20425
20426         * threads-pthread.c (pthread_mutex_timedlock): Simple
20427         compatibility version for C libraries that lack this call.
20428
20429 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20430
20431         * class.c: MonoTypes stored in MonoClass are stored as
20432         fundamental MonoTypes when the class represents a
20433         fundamental type (System.Int32, ...).
20434         The TypeHandle return by ldtoken is a MonoType*.
20435         * icall.c: ves_icall_get_data_chunk () write out all the
20436         PE/COFF stuff. Implement ves_icall_define_method (),
20437         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20438         * image.c: properly skip unknown streams.
20439         * loader.h, loader.c: add type_class to mono_defaults.
20440         * metadata.c, metadata.h: export compute_size () as
20441         mono_metadata_compute_size () with a better interface.
20442         Typo and C&P fixes.
20443         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20444         * reflection.c, reflection.h: many cleanups, fixes, output method
20445         signatures and headers, typedef and typeref info, compress the metadata
20446         tables, output all the heap streams, cli header etc.
20447         * row-indexes.h: typo fixes.
20448
20449 2001-10-04  Dick Porter  <dick@ximian.com>
20450
20451         * object.h: Add a synchronisation mutex struct to MonoObject
20452
20453         * object.c (mono_new_object): Initialise the object
20454         synchronisation mutexes
20455
20456         * icall.c: System.Threading.Monitor internal calls
20457         
20458         * threads-pthread.h:
20459         * threads-pthread.c: System.Threading.Monitor internal calls
20460
20461         * threads-types.h: New file, includes the system-specific thread
20462         structures
20463         
20464         * threads-pthread-types.h:
20465         * threads-pthread-types.c: New files, handle pthread-specific
20466         synchronisation types
20467
20468         * threads-dummy-types.h: 
20469         * threads-dummy-types.c: New files of dummy support for
20470         thread-specific types
20471
20472         * metadata.c:
20473         * image.c:
20474         * pedump.c: include mono-endian.h not endian.h
20475         
20476         * Makefile.am: More threads files.
20477         Name mono-endian.h not endian.h
20478
20479 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20480
20481         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20482         stuff and implement a few more bits.
20483         * icall.c: a field needs to be dereferenced twice. Do not use the same
20484         name for two variables in the same scope.
20485         * image.c, image.h: cleanups.
20486
20487 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20488
20489         * class.c (mono_class_metadata_init): bug fix: compute the right size
20490
20491 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20492
20493         * icall.c: implemented some of the Reflection internalcalls.
20494         * image.c, image.h: start writing out the PE/COFF image.
20495         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20496         that does the reverse than decode_blob_size ().
20497         * object.c: use mono_metadata_encode_value (). Move here
20498         temporary implementation of mono_string_to_utf8 ().
20499         * rawbuffer.c: make malloc_map static.
20500
20501 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20502
20503         * metadata.c: fix type comparison for arrays.
20504         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20505         Added a couple of new classes to monodefaults.
20506         * icall.c: added a couple of Reflection-related internalcalls.
20507         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20508         Added a byval_arg MonoType to MonoClass.
20509
20510 2001-09-28  Dick Porter  <dick@ximian.com>
20511
20512         * icall.c:
20513         * threads-pthread.h: 
20514         * threads-pthread.c: Implemented internal calls for
20515         LocalDataStoreSlot operations.  Applied mutexes around all shared
20516         data.  Reworked the thread creation and Start() operations to
20517         avoid a race condition.
20518         
20519         * threads-dummy.h:
20520         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20521
20522 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20523
20524         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20525
20526 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20527
20528         * class.c, loader.c: warn and return NULL instead of erroring out.
20529         * icall.c: added System.AppDomain::getCurDomain().
20530         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20531
20532 2001-09-25  Dick Porter  <dick@ximian.com>
20533
20534         * threads-pthread.h:
20535         * threads-pthread.c: Implemented timed thread joining and added
20536         System.Threading.Thread::Join_internal internal call
20537
20538         * icall.c: Added System.Threading.Thread::Join_internal internal call
20539
20540         * threads-dummy.h:
20541         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20542
20543 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20544
20545         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20546         mono_string_intern () to implement the semantics of the ldstr opcode
20547         and the interning of System.Strings.
20548         * icall.c: provide hooks to make String::IsIntern and String::Intern
20549         internalcalls.
20550
20551 2001-09-23  Dick Porter  <dick@ximian.com>
20552
20553         * threads-dummy.c: 
20554         * threads-dummy.h: New files of dummy threading routines
20555
20556         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20557         support code based on system specifics
20558
20559         Rename PTHREAD_LIBS to THREAD_LIBS
20560         
20561 2001-09-23  Dick Porter  <dick@ximian.com>
20562
20563         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20564         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20565         internal calls.
20566         (mono_thread_init): Set up a Thread object instance to return when
20567         the main thread calls Thread.CurrentThread
20568         (mono_thread_cleanup): Wait for all subthreads to exit
20569
20570         * icall.c: New internal calls for System.Threading.Thread::Sleep
20571         (including Schedule) and CurrentThread
20572
20573         * threads.h: New file, to insulate thread-specific stuff from the
20574         rest of the code
20575
20576 2001-09-21  Dick Porter  <dick@ximian.com>
20577
20578         * threads-pthread.h: 
20579         * threads-pthread.c: New file, for handling pthreads-style
20580         threading support.  Start() now starts a new thread and executes
20581         the ThreadStart delegate instance.
20582
20583         * icall.c: Added the internalcall for
20584         System.Threading.Thread::Start_internal
20585
20586         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20587
20588 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20589
20590         * loader.c: work around the different signatures for delegates
20591         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20592
20593 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20594
20595         * class.h, class.c: add mono_class_get_field_from_name ().
20596         * *: Fix C comments and other ANSI C issues.
20597
20598 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20599
20600         * endian.h, assembly.c: fix some endianness issues.
20601
20602 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20603
20604         * loader.h, load.c: add delegate_class to mono_defaults.
20605         Handle runtime provided methods in mono_get_method ().
20606
20607 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20608
20609         * loader.c (mono_get_method): use pinvoke for internal call
20610
20611         * icall.c: use pinvoke for internal call
20612
20613         * loader.c (method_from_memberref): set the method name
20614
20615 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20616
20617         * metadata.c: help the compiler generate better code for
20618         mono_class_from_mono_type ().
20619
20620 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20621
20622         * class.c (mono_class_metadata_init): delayed computing of the
20623         class size to mono_class_metadata_init ()
20624
20625 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20626
20627         * class.c, class.h: add an interfaces member to MonoClass.
20628         * image.c, image.h: add assembly_name field to MonoImage
20629         from the assembly table.
20630         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20631
20632 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20633
20634         * class.c: Handle Array in mono_class_from_mono_type ().
20635         * metadata.c, pedump.c: some endian fixes.
20636
20637 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20638
20639         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20640         * metadata.c: fix small problem introduced with the latest commit.
20641
20642 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20643
20644         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20645         We don't need a MonoMetadata pointer anymore to compare signatures in
20646         mono_metadata_signature_equal (), update callers.
20647         Reduced memory usage an number of allocations for MonoMethodHeader and
20648         MonoMethodSignature.
20649
20650 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20651
20652         * metadata.c: added compare for szarray.
20653
20654 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20655
20656         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20657         and add a couple more types to it and mono_defaults. Give an hint on
20658         classes that need implementing in our corlib and are referenced
20659         in mscorlib.
20660
20661 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20662
20663         * class.h, class.c: keep track if a class is also an Enum.
20664         * loader.c: Implement a couple more types for use in libffi
20665         marshalling. Gives better diagnostics when failing to dlopen
20666         a library. Set method->klass for P/Invoke methods, too.
20667
20668 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20669
20670         * class.c, class.h: add a MonoType this_arg to MonoClass that
20671         represents a pointer to an object of the class' type that
20672         can be used by the interpreter and later the type cache.
20673         Add best guess alignment info for valuetype objects.
20674
20675 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20676
20677         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20678         into MonoType: one less level of indirection and allocation and
20679         simplifies quite a bit of code. Added cache for MonoTypes that are
20680         used frequently, so that we don't need to allocate them all the time.
20681
20682 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20683
20684         * class.c (mono_class_create_from_typedef): System.Enum is also a
20685         value type, although it does not derive from System.ValueType
20686         (maybe a bug in the ms compiler?)
20687
20688         * metadata.c (mono_type_size): return the right size for value types
20689
20690         * loader.c (mono_get_method): only initialize method header if not abstract
20691
20692         * class.c (mono_class_from_mono_type): use mono_default values. 
20693
20694 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20695
20696         * *: use MonoClass pointers instead of <type_tokens>
20697         
20698         * class.h: new flag: metadata_inited.
20699
20700         * class.c (mono_class_metadata_init): impl.
20701         (mono_class_instance_size): impl.
20702         (mono_class_data_size): impl.
20703
20704 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20705
20706         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20707         MonoClass now has the name and name_space fields. 
20708         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20709         mono_get_method () takes and optional MonoClass as argument.
20710         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20711         instead that takes advantage of a map from class names to typedef
20712         tokens in MonoImage.
20713
20714 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20715
20716         * metadata.c: zero is not a valid alignment boundary.
20717         Merge MONO_TYPE_VOID in default decoding code.
20718
20719 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20720
20721         * image.h: merged MonoMetadata into MonoImage
20722
20723         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20724         identify the type of elements.
20725
20726 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20727
20728         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20729         * cil-coff.h: split MonoMSDOSHeader and add size info.
20730         * image.c: add some consistency checks.
20731         * metadata.c: fix row size computation: one programmer
20732         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20733         add explanation for the locator routine.
20734         Fix decoding of size in method header.
20735         
20736 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20737
20738         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20739         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20740         function from gnome-libs.  This uses the right path separator
20741         based on the OS, and also works around a bug in some systems where
20742         a double slash is not allowed. 
20743         (default_assembly_name_resolver): Use g_concat_dir_and_file
20744         (mono_assembly_open): ditto.
20745
20746 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20747
20748         * metadata.c (mono_metadata_signature_equal): impl.
20749
20750         * *: void is now a realy MonoType (instead of using NULL)
20751         
20752         * metadata.c (do_mono_metadata_parse_type): use
20753         mono_metadata_parse_type to parse void value.
20754
20755 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20756
20757         * metadata.c, metadata.h: in the signature and method header store
20758         only the space required for holding the loca vars and incoming arguments.
20759
20760 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20761
20762         * metadata.c (do_mono_metadata_parse_type): treat void like any
20763         other type (instead of assigning NULL);
20764
20765 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20766
20767         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20768
20769 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20770
20771         * image.c (do_mono_image_open): added a cache for arrays.
20772
20773 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20774
20775         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20776         decode a single column from a row in a metadata table and changes
20777         to take advantage of it in the typedef locator (gives a nice speed up).
20778         Store offset info for function params.
20779
20780 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20781
20782         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20783
20784 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20785
20786         * assembly.c: how could mono_assembly_close () had ever worked?
20787         * metadata.c, metadata.h: provide offset info for local vars.
20788         Implement mono_type_size () to take care of alignment as well
20789         as size (it was mono_field_type_size in cli/class.c before).
20790
20791 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20792
20793         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20794
20795         * assembly.h (CORLIB_NAME): set to corlib.dll
20796
20797         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20798
20799 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20800
20801         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20802         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20803         tokentype.h: massive namespace cleanup.
20804
20805 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20806
20807         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20808
20809 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20810
20811         * metadata.c (mono_metadata_free_type): added check for type !=
20812         NULL (void) before calling mono_metadata_free_type()
20813
20814 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20815
20816         * metadata.h, row_indexes.h: added header with enumerations to use
20817         to index in the columns from tables in metadata and to decode coded
20818         tokens: we should start using this instead of embedding magic numbers
20819         all over the code.
20820
20821 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20822
20823         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20824         Move metadata_t info from cli_image_info_t to MonoImage, where
20825         it's easily accessible. Changed all the uses accordingly.
20826         Added the method and class caches to MonoImage.
20827         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20828         and mono_metadata_decode_value () signature to be more consistent
20829         with the other parse functions (and simplify code). Taken advantage
20830         of zero-length array allocation with GCC. Removed reduntant (and
20831         wrong) MonoFieldType struct and use MonoParam instead. Changed
20832         mono_metadata_parse_field_type () to use common code for parsing.
20833         Added mono_metadata_typedef_from_field () and
20834         mono_metadata_typedef_from_method () to lookup a typedef index from a
20835         field or method token.
20836         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20837
20838 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20839
20840         * metadata.c (mono_metadata_parse_field_type): Implement. 
20841         (do_mono_metadata_parse_type): Split engine from
20842         mono_metadata_parse_type, so that we can create smaller structures
20843         for things that just have one pointer to the MonoType (look at
20844         the MonoFieldType)
20845
20846 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20847
20848         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20849         as Jan Gray found out, it is incorrect. 
20850
20851 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20852
20853         * assembly.c: Implement asssembly loading.  This loads an image
20854         and loads all the referenced assemblies.  Come to think of it, we
20855         could always do lazy loading of the assemblies. 
20856
20857         * image.c (mono_image_open): Keep loaded images in a hashtable.
20858
20859         * image.h (MonoImage): Add reference count.
20860
20861 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20862
20863         * assembly.c (mono_assembly_open): Keep track of the file name in
20864         case the assembly has no ASSEMBLY table.
20865
20866         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20867         from get.c here.
20868
20869 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20870
20871         * metadata.c, metadata.h: decode local vars in method header
20872         parse function. Change callers accordingly.
20873
20874 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20875
20876         * metadata.h, cil-coff.h: protect against multiple inclusion.
20877         Added some new structures to hold information decoded from metadata:
20878         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20879         and relevant decoding/free functions.
20880         * metadata.c: implement decoding functions. Add warning for out of bounds
20881         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20882         all the info about a method signature and invocation. Remove check on
20883         uninitialized local var in parse_mh() and fix memory leak.
20884
20885 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20886
20887         * metadata.h: More macros.
20888
20889         * tokentype.h: New file.
20890
20891 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20892
20893         * assembly.c: added a consistency check and initialize
20894         some structures with g_new0().
20895         * metadata.c: fixed a couple more bugs in table size computation
20896         and add other checks for out-of bound access to metadata.
20897
20898 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20899
20900         * metatada.c: fix bugs computing table sizes. Spew a
20901         warning when index in string heap is out of bounds.
20902
20903 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20904
20905         * metadata.h: Add a couple of macros to manipulate tokens. 
20906
20907 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20908
20909         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20910         cli_section_tables).
20911
20912 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20913
20914         * metadata.c (mono_metadata_user_string): New function, provides
20915         access to the UserString heap. 
20916
20917 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20918
20919         * metadata.c: Add inline documentation.
20920
20921 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20922
20923         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20924         files. 
20925
20926 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20927
20928         * typeattr.h: New file, TypeAttribute flags. 
20929
20930 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20931
20932         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20933         mono_assembly_ensure_section): Section loading code.
20934         (load_section_tables): Load the sections.
20935
20936         * mono/metadata/metadata.c (mono_metadata_locate_token,
20937         mono_metadata_locate): Functions to locate the information
20938         definition given a token or a table and an index.
20939         (mono_metadata_compute_table_bases): New.
20940         (compute_size): New function to compute the sizes of the various
20941         tables.
20942
20943         * mono/metadata/metadata.h: Finish listing the different index
20944         types. 
20945
20946         * mono/metadata/pedump.c: Improve to dump new information.
20947
20948 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20949
20950         * mono/metadata/metadata.c: Entered all the tables matching
20951         Beta2. 
20952
20953         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20954
20955
20956