Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
3
4         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
5         provide a managed method that does fast allocations without needing
6         a managed->unmanaged transition. Boehm GC implementation currently
7         enabled for ptrfree objects on sane architectures.
8
9 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
10
11         * marshal.c, marshal.h: exported a couple of useful functions and
12         added mono_mb_get_label () to easily handle backward branches.
13
14 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
15
16         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
17
18 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
19
20         * loader.c (find_method): Fixed the regression introduced while
21         fixing bug #81466.
22
23 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
24
25         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
26         well.
27         
28         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
29         icall.c reflection.c: Pass a MonoGenericContext argument to 
30         mono_lookup_dynamic_token ().
31
32         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
33         #82744.
34         
35 2007-09-09  Robert Jordan  <robertj@gmx.net>
36
37         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
38         for generic methods.
39
40         * object.c (mono_object_get_virtual_method): Handle generic methods.
41         Fixes bug #78882.
42
43         Code is contributed under MIT/X11 license.
44
45 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
46
47         * image.c: fix locking in mono_image_load_file_for_image ().
48
49 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
50
51         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
52         used only as a cache: added an icall to fill it.
53
54 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
55
56         * reflection.h: exposed mono_reflection_free_type_info
57         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
58         since mono_reflection_bind_generic_parameters makes a copy of it.
59         * reflection.c (free_type_info): subinfos should be freed.
60         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
61         made non static.
62         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
63         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
64         this fixes #82695 and #81726.
65    
66
67 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
68
69         * process.h, process.c:  added support for user profile/info in
70           ProcessStartInfo. For now only Windows works.
71
72 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
73
74         * metadata.c: consider the generic arguments when comparing
75         signatures (bug #82614).
76
77 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
78
79         * cil-coff.h, image.c: updated assembly loader to cope with the
80         PE32+ 64 bit file format.
81
82 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
83
84         * assembly.c, class.c, domain.c, loader.c: remove useless
85         inclusion of cil-coff.h.
86
87 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
88
89         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
90         if interface is marked with CoClassAttribute. 
91    
92         Code is contributed under MIT/X11 license.
93
94 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
95
96         * sgen-gc.c: ensure no object from the to space is copied again or finalized
97         if it's seen twice in major collections.
98
99 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
100
101         * sgen-gc.c: big objects are not copied to the gray area, but they
102         need to be considered for scanning, too, if they are brought alive
103         by an object ready for finalizations or a survived one.
104
105 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
106
107         * sgen-gc.c: properly account the number of disappearing links when
108         they are nullified.
109
110 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
111
112         * sgen-gc.c: share the code to scan the registered roots between the
113         different types of collections.
114
115 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
116
117         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
118
119 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
120
121         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
122         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
123
124 2007-08-28  Mark Probst  <mark.probst@gmail.com>
125
126         * security-manager.c (mono_security_manager_get_methods):
127         LinkDemandSecurityException now has 2 arguments instead of 3.
128
129 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
130
131         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
132         platforms which need it.
133
134 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
135
136         * sgen-gc.c: unregister thread data structures with a pthread_key_t
137         dtor.
138
139 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
140
141         * threads.c: free the thread static data on thread exit.
142
143 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
144
145         * class.c: walk the hierarchy to find the generic definition for
146         a class (fixes runtime part of bug #82498).
147
148 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
149
150         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
151         ...
152
153         * image.c (mono_image_close): Here. Hopefully fixes #82510.
154
155 2007-08-24  Mark Probst  <mark.probst@gmail.com>
156
157         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
158
159 2007-08-24  Robert Jordan  <robertj@gmx.net>
160
161         * appdomain.c: don't perform the ':'->';' substitution on Win32.
162
163 2007-08-24  Jb Evain  <jbevain@novell.com>
164
165         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
166         for byref types.
167
168 2007-08-24  Mark Probst  <mark.probst@gmail.com>
169
170         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
171         #82286.
172
173 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
174
175         * assembly.c: Fix a warning.
176         
177 2007-08-23  Marek Habersack  <mhabersack@novell.com>
178
179         * appdomain.c: parse the <runtime> section looking for the probing
180         element with the 'privatePath' attribute, which sets additional
181         directories in which the runtime should look for assemblies.
182
183 2007-08-23  Robert Jordan  <robertj@gmx.net>
184
185         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
186         Fixes #82499.
187
188 2007-08-23  Martin Baulig  <martin@ximian.com>
189
190         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
191         _mono_debug_init_corlib() and remove it from the header file.
192
193 2007-08-23  Martin Baulig  <martin@ximian.com>
194
195         * mono-debug-debugger.c
196         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
197         don't notify the debugger about it.
198
199         * mono-debug-debugger.h
200         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
201
202 2007-08-23  Robert Jordan  <robertj@gmx.net>
203
204         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
205         Code is contributed under MIT/X11 license.
206
207 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
208
209         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
210
211 2007-08-22  Martin Baulig  <martin@ximian.com>
212
213         * mono-debug.c: Store debugging info on a per-domain basis and
214         free it on domain unload.  Add support for unloading symbol files.
215
216         * mono-debug.h
217         (MonoDebugList): New typedef.
218         (MonoSymbolTable):
219         - add `data_tables and `type_table'.
220         - replace 'symbol_files' and `num_symbol_files' with a
221           `MonoDebugList *'.
222         (mono_debug_data_table): Removed.
223         (mono_debug_list_add): New public function.
224         (mono_debug_list_remove): New public function.
225         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
226         (mono_debug_init_2_memory): Renamed into
227         mono_debug_open_image_from_memory().
228         (mono_debug_close_image): New public function.
229         (mono_debug_domain_create): Likewise.
230         (mono_debug_domain_unload): Likewise.
231         (MONO_DEBUGGER_VERSION): Bump to 60.
232
233         * mono-debug-debugger.h
234         (MonoDebuggerEvent):
235         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
236         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
237         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
238         - rename `THREAD_CREATED' and `THREAD_EXITED' into
239           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
240         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
241           meaning.
242         (mono_debugger_add_symbol_file): Removed.
243         (mono_debugger_add_type): Removed.
244         (mono_debugger_lookup_type): Removed.
245         (mono_debugger_lookup_assembly): Removed.
246
247         * domain.c
248         (mono_domain_create): Call mono_debug_domain_create().
249         (mono_init_internal): Call mono_debug_init_corlib().
250
251         * assembly.c
252         (mono_assembly_close): Call mono_debug_close_image().
253
254 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
255
256         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
257         mmap call.
258
259 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
260
261         * sgen-gc.c: ensure section->pin_queue_end is initialized
262         correctly when non pinning objects in the section have been found.
263
264 2007-08-22  Marek Habersack  <mhabersack@novell.com>
265
266         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
267         containing a list of directories separated by ':'. MSDN docs say
268         the directories should be separated with ';'. Part of a bugfix for
269         bug #81446
270
271 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
272
273         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
274         it should MonoType and not MonoClass.
275
276 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
277
278         * culture-info-table.h : regenerated.
279
280 2007-08-20  William Holmes  <billholmes54@gmail.com>
281
282         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
283          to call ReplaceFile Kernel32 on windows or in io-layer.
284         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
285         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
286          as an internal call.
287
288         Code is contributed under MIT/X11 license.
289
290 2007-08-20  Jb Evain  <jbevain@novell.com>
291
292         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
293         and MONO_EXCEPTION_FIELD_ACCESS.
294
295         * debug-helpers.[c|h]: new mono_field_full_name function.
296
297 2007-08-20  Mark Probst  <mark.probst@gmail.com>
298
299         * class.c: Removed class_security_level() and moved it to
300         security-core-clr.c.
301
302         * security-core-clr.c, security-core-clr.h: class_security_level()
303         is now public and renamed to mono_security_core_clr_class_level().
304         It also looks for security attributes in the classes a class is
305         nested in.
306
307 2007-08-20  Mark Probst  <mark.probst@gmail.com>
308
309         * security-core-clr.c, security-core-clr.h: CoreCLR security
310         utility functions.
311
312         * Makefile.am: Added security-core-clr.[ch].
313
314         * security-manager.c, security-manager.h: Functions and enum for
315         setting and getting the security mode.
316
317         * class.c: CoreCLR security checks.
318
319 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
320
321         * icall-def.h, process.c, process.h: implemented icall to get
322         user/system processor times.
323
324 2007-08-17  Mark Probst  <mark.probst@gmail.com>
325
326         * domain.c, threads.c, class-internals.h, domain-internals.h: New
327         reader-lock-free jit_info_table.
328
329 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
330
331         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
332
333         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
334
335         * object-internals.h (MonoException): Add missing _data member.
336
337 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
338
339         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
340         checking that only methods with matching qname or fqname are picked
341         from implemented interfaces.
342
343 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
344
345         * verify.c (do_newarr):added, do type verification of
346         newarr ops, push the right value on the eval stack.
347         * verify.c (mono_method_verify): use do_newarr
348
349
350 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
351
352         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
353         factored the common code into get_boxable_mono_type, which
354         is now using mono_type_get_full, this fixed byref related tests.
355
356 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
357
358         * class.c: added mono_type_get_full, this function has the same
359         behavior of mono_class_get_full but the returned MonoType has
360         all metadata of the associated token in case of a typespec token.
361         * class.c: added mono_type_retrieve_from_typespec, used by 
362         mono_type_get_full to retrieve the token type.
363         * class.c (mono_class_create_from_typespec): changed to use
364         mono_type_retrieve_from_typespec.
365         * class.c (mono_ldtoken): changed to use mono_type_get_full
366         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
367         * class-internals.h: exported mono_type_get_full for internal use.
368
369 2007-08-16  Jb Evain  <jbevain@novell.com>
370
371         * domain.c (supported_runtimes): add entry for
372         the 'moonlight' runtime version.
373
374 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
375
376         * verify.c (mono_method_verify): small typo sliped in.  
377
378 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
379
380         * verify.c (do_unbox_value): added, do type verification of
381         unboxing ops
382         * verify.c (mono_method_verify): use do_unbox_value
383
384
385 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
386
387         * verify.c (dump_stack_value): fixed typo, was printing string
388         instead of object on stack.
389         * verify.c (do_box_value): moved the byref check up as it leads
390         to invalid code and should be done earlier.
391         * verify.c: improved error messages for and ldobj
392
393 2007-08-15  William Holmes  <billholmes54@gmail.com>
394
395         * marshal.c (emit_marshal_custom): Omit the call to 
396           marshal_native_to_managed when calling native to managed 
397           and the argument is specified as an out argument.
398
399         Code is contributed under MIT/X11 license.
400
401 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
402
403         * verify.c: fixed the type checks for generics, function pointers and vectors.
404         Added type verification for ldobj and ldtoken. The verifier
405         would segfault if header or signature of a method contained references
406         to non-existant types.
407
408 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
409
410         * marshal.c (cominterop_get_ccw): Patch from
411         Bill Holmes to no walk up interface hierarchy. 
412         All parent methods should be present in the interface for COM.
413    
414         Code is contributed under MIT/X11 license.
415
416 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
417
418         * marshal.c (emit_marshal_com_interface): Patch from
419         Bill Holmes to handle COM Interfaces as return values
420         for native->managed calls.
421    
422         Code is contributed under MIT/X11 license.
423
424 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
425
426         * marshal.c (cominterop_get_idispatch_for_object): Implement
427         for runtime callable wrappers.
428    
429         Code is contributed under MIT/X11 license.
430
431 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
432
433         * pedump.c (main): changed from mono_init to mono_init_from_assembly
434         so 2.0 types are accessible
435
436
437 2007-08-13  Miguel de Icaza  <miguel@novell.com>
438
439         * domain.c (mono_init_internal): Call mono_assembly_load_friends
440         once we load mscorlib.   Due to the order in which we initialize,
441         the mono_assembly_load_full routine that loads mscorlib did not
442         load friends.   We now load it once we load the
443         mono_defaults.internals_visible_class class. 
444
445         * assembly.c: Expose the mono_load_friend_assemblies method.
446
447 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
448
449         * verify.c: improved the handling of boxing, better
450         type checking for unary ops and conversion. Fix bug
451         regarding managed pointer compatibility checking
452
453 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
454
455         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
456
457         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
458
459 2007-08-09  Raja R Harinath  <rharinath@novell.com>
460
461         * reflection.c (dup_type): Remove.
462         * class.c (dup_type): Remove.
463         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
464         instead of the dodgy 'dup_type'.
465         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
466         handle the case where 'dup_type' needed the second argument.
467
468 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
469
470         * domain.c: Fix a warning.
471
472 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
473
474         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
475         checking that methods with the same fqname are not overridden
476         with a method from an ancestor.
477
478 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
479
480         * threads.c (free_thread_static_data_helper): Avoid a crash if
481         thread->static_data is not yet set.
482
483 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
484
485         * marshal.c: Use correct image when emitting
486         native wrapper for COM calls.
487    
488         Code is contributed under MIT/X11 license.
489
490 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
491
492         * icall-def.h, security.c, security.h :
493           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
494
495 2007-08-07  Martin Baulig  <martin@ximian.com>
496
497         * mono-debug-debugger.h
498         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
499
500         * domain.c (mono_domain_free): Call
501         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
502
503 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
504
505         * verify.c (check_underflow, check_overflow): error message now returns IL offset
506         * verify.c (in_same_block): code should test if either offset is inside the clauses
507         * verify.c (mono_method_verify): push the exception into the eval stack of exception
508         and filter blocks
509
510 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
511
512         * image.c (mono_image_close): Fix a leak.
513
514         * object.c (mono_runtime_invoke_array): Avoid using alloca.
515
516         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
517
518 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
519
520         * domain.c, threads.c, threads-types.h: fix memory retention issue
521         with thread static variables not being cleared on domain unload.
522         Reuse thread static slots after domain unload.
523
524 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
525
526         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
527         nullable type.
528
529         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
530         now done in mono_runtime_invoke_array.
531
532         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
533         receiver is a nullable type.
534
535         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
536         generic parameter.
537
538 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
539
540         * marshal.c: Implement COM Objects as return type for 
541         managed->unmanaged calls. Added Release calls for COM Object
542         out/return values in managed->unmanaged calls.
543
544         Code is contributed under MIT/X11 license.
545
546 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
547
548         * threads.h, threads-type.h: move the hazard pointer declarations
549         to the private header.
550
551 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
552
553         * file-io.c, appdomain.c: memory leak fixes.
554
555 2007-08-02  Dick Porter  <dick@ximian.com>
556
557         * socket-io.c
558         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
559         SO_REUSEADDR setting into io-layer/sockets.c.
560
561 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
562
563         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
564         from Object when called on a generic parameter. Fixes #82211.
565
566 2007-08-01  Dick Porter  <dick@ximian.com>
567
568         * file-io.c (convert_share): Test FileShare values bit-by-bit.
569         Fixes bug 79250 yet again.
570
571 2007-07-30  Martin Baulig  <martin@ximian.com>
572
573         Merged the `debugger-dublin' branch.
574
575         * mono-debug.h
576         (MonoDebugDataTable): New typedef.
577         (MonoDebugMethodAddressList): New typedef.
578         (MonoDebugWrapperData): Removed.
579         (MonoDebugSymbolTable): Removed `current_data_table',
580         `current_data_table_size', `current_data_table_offset'.
581         (MonoDebugDataItemType): Moved into mono-debug.c.
582         (MonoDebugMethodJitInfo): Remove `address'.
583         (mono_debug_data_table): New global variable.
584         (mono_debug_lookup_method_addresses): New public function.
585         (mono_debug_find_method): Take a `MonoMethod *', not a
586         `MonoDebugMethodInfo *'.
587
588         * mono-debug.c: Drop support for the old symbol tables.
589
590 2007-06-28  Martin Baulig  <martin@ximian.com>
591
592         * mono-debug.c (mono_debug_debugger_version): New public variable.
593
594 2007-07-31  William Holmes  <billholmes54@gmail.com>
595
596         * metadata.c Changed mono_type_create_from_typespec to not insert
597           the type into the hash map until after
598           do_mono_metadata_parse_type has completed.
599         Fixes Bug #82194
600         Code is contributed under MIT/X11 license.
601
602 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
603
604         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
605         generic parameter. Fixes #82211.
606
607 2007-07-27  Jb Evain  <jbevain@novell.com>
608
609         * pedump.c (dump_metadata, dump_metadata_header): dump
610         versions contained in the metadata header.
611
612 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
613
614         * threads.c: register small_id_table with the GC.
615
616 2007-07-27  Mark Probst  <mark.probst@gmail.com>
617
618         * threads.c, threads.h, class-internals.h, object-internals.h:
619         Hazard pointers, to be used by lock-free parallel algorithms.
620
621 2007-07-26  Dick Porter  <dick@ximian.com>
622
623         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
624         routine on non-windows platforms, as I've not managed to think of
625         a non-kludgy way of doing this.  Finishes off bug 78739.
626
627 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
628
629         * object.c: properly setup interface_bitmap in proxy vtables.
630
631 2007-07-25  Marek Habersack  <mhabersack@novell.com>
632
633         * appdomain.c (get_shadow_assembly_location): do not use TickCount
634         to create unique shadow copy target directories, use the domain's
635         serial number instead. Each domain gets a unique target directory
636         that way.
637
638         * domain.c (mono_domain_create): added code to increment domain
639         shadow copy serial number and cache the value in the current
640         domain structure.
641
642         * domain-internals.h (struct _MonoDomain): added a new field -
643         shadow_serial to hold the serial number used in generation of
644         shadow-copy directories. This is to make sure that the directory
645         name is unique for each and every domain created. We avoid a race
646         condition with overriding assemblies already in use by other app
647         domains.
648
649 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
650
651         * class.c (mono_bounded_array_class_get): fixed memory leak when 
652         binding generic parameters.
653
654 2007-07-24  Raja R Harinath  <rharinath@novell.com>
655
656         * metadata.c (do_mono_metadata_parse_generic_class): Use
657         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
658         error.
659
660 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
661
662         * loader.c, class-internals.h, reflection.c: removed the per-method
663         generics hashtable: we use the global one through the call of
664         mono_class_inflate_generic_method ().
665
666 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
667
668         * class.c, metadata.c, class-internals.h: introduce yet another
669         generics global cache for inflated methods (fixes 98% of the perf
670         issue in bug #81806).
671
672 2007-07-23  Raja R Harinath  <rharinath@novell.com>
673
674         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
675         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
676         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
677         return a MonoGenericInst containing (a copy) of those types.
678         (mono_metadata_inflate_generic_inst): Update to changes.
679         (mono_metadata_parse_generic_inst): Likewise.
680         (mono_get_shared_generic_inst): Likewise.
681         * reflection.c (mono_class_bind_generic_parameters): Likewise.
682         (mono_reflection_bind_generic_method_parameters): Likewise.
683         * metadata-internals.h: Likewise.
684         * icall.c (free_generic_context): Kill.
685         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
686
687         * reflection.c (reflection_methodbuilder_to_mono_method): Use
688         mono_metadata_type_dup.
689         * marshal.c (mono_mb_create_method): Likewise.
690
691         * metadata.c (mono_metadata_type_dup): Rename from
692         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
693         MonoImage.  Handle a few more cases, esp. when no mempool is given.
694         * marshal.c, metadata-internals.h: Update to changes.
695
696 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
697
698         * class.c: fixed a small leak for array classes and removed warning.
699
700 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
701
702         * loader.c (mono_method_get_param_token): Make this work on generic methods.
703         Return 0x8000000 for return parameters. Fixes #82161.
704
705 2007-07-21  Marek Habersack  <grendello@gmail.com>
706
707         * appdomain.c (get_shadow_assembly_location): append the current
708         ticks value to the path. Avoids overwriting the same assemblies by
709         several threads at the same time.
710
711 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
712         and Raja R Harinath  <rharinath@novell.com>
713
714         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
715         Simplify slightly.
716         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
717         property for testing if a method is a generic method definition.
718
719 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
720
721         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
722
723 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
724
725         * verify.c: used function from private branch, reverted to the one in class.h 
726
727 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
728
729         * verify.c: a typo slipped in and the code wont compile
730
731 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
732
733         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
734         disabled box instruction as it is doing the wrong thing
735         improved stack dump messages, now it is easier to debug type related issues
736
737
738 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
739
740         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
741
742 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
743
744         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
745         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
746         grouped with class and valuetype. This change will simply 
747         the code as it should be handled just like unmanaged pointers.
748
749 2007-07-19  Mark Probst  <mark.probst@gmail.com>
750
751         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
752
753 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
754
755         * verify.c: several stack merge issues fixed, reference comparisons now
756         check the type size. strict type check now works correctly.
757         added more uses of IS_MANAGED_POINTER macro.
758         fixed issues pointed by running the test suite against .net.
759         
760
761 2007-07-19  Mark Probst  <mark.probst@gmail.com>
762
763         * class.c, loader.c, class-internals.h: Removed the
764         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
765         defines.
766
767         * icall.c: Better error checking in some internal reflection
768         methods.
769
770 2007-07-18  William Holmes  <billholmes54@gmail.com>
771
772         * filewatcher.c : removed unused variable 'filename' in 
773           ves_icall_System_IO_FSW_SupportsFSW
774
775 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
776
777         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
778         obsolete, removed.
779
780 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
781
782         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
783         
784         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
785
786 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
787
788         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
789         Implement generics support.
790         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
791
792         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
793         type_args and method_args arguments.
794         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
795         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
796         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
797
798 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
799
800         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
801           It adds a rootimage parameter to mono_reflection_get_type_internal,
802           adds new function mono_reflection_get_type_with_rootimage and use
803           the rootimage to resolve the types instead of the current image
804
805 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
806
807         * culture-info-table.h: Forgot to update after r78304.
808
809 2007-07-13  Raja R Harinath  <rharinath@novell.com>
810
811         * class.c (mono_class_is_open_constructed_type)
812         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
813
814 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
815
816         * class.c (mono_bounded_array_class_get):  method fails if used with
817         an incomplete TypeBuilder enum (no basetype field), fixed it by 
818         avoiding calculating the size for such array as it cannot be instantiated.
819         Fix bug #82015
820
821 2007-07-12  Raja R Harinath  <rharinath@novell.com>
822
823         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
824         field.
825         * metadata.c, reflection.c: Update to changes.
826
827 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
828
829         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
830         mono_class_is_valid_enum, they are used to valide a enum when loading.
831         * reflection.c: used new functions to throw TypeLoadException when and
832         invalid enum is build with TypeBuilder. Fixes #82018
833   
834 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
835
836         * object.c: forgot commit of mono_class_setup_methods () to access
837         iface->methods.
838         * object-internals.h: added a few more handy fields to
839         MonoIMTCheckItem.
840
841 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
842
843         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
844         iface->methods.
845
846 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
847
848         * class-internals.h, object-internals.h, object.c: IMT-based
849         interface invocation core from Massimiliano Mantione
850         (massi@ximian.com) with a reworked arch-specific interface,
851         bsearch implementation and a few bugfixes and memory savings by me.
852
853 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
854
855         * class.c (mono_class_create_from_typedef): mono would segfault if 
856         an enum did not have a __value field. It now throws a TypeLoadException
857         for such cases. Fix bug #82022
858
859 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
860
861         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
862
863 2007-07-09  Mark Probst  <mark.probst@gmail.com>
864
865         * class.c (mono_class_init): If a class is already inited but has
866         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
867
868 2007-07-09  Mark Probst  <mark.probst@gmail.com>
869
870         * class.c: Properly handle the case of an unimplemented interface
871         method.  Fixes: 81673.
872
873 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
874
875         * class-internals.h, object.c: cleanup patch from massi: use
876         MonoVTable->interface_bitmap since the vtable interfaces offset array
877         is going away.
878
879 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
880
881         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
882         GetMDStreamVersion icall instead.
883
884 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
885
886         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
887         not use mono_dl_build_path() with a full library name: makes
888         fallbacks to libgaim and libfam work.
889
890 2007-07-06  William Holmes  <billholmes54@gmail.com>
891
892         * assembly.c: Added a continue statement in probe_for_partial_name when
893          parse_assembly_directory_name fails.  Fixes : 82002
894
895 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
896
897         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
898         and added a verification  for TYPEDBYREF.
899         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
900         make native int interchangeable with int32 and some small cleanup and formating.
901         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
902         handle byref of byref.
903         * verify.c (push_local): handle byref of byref.
904         * verify.c (do_binop): invalid mix of values is unverifiable
905         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
906         added visibility checks
907         * verify.c (field related method): added visibility checks
908         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
909
910 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
911
912         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
913         string.
914
915 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
916
917         * profiler.c (mono_profiler_load): Fix an off-by-one error.
918
919         * marshal.c (emit_marshal_string): When returning a string from managed code,
920         allways make a copy even for unicode strings. Fixes #81990.
921
922 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
923
924         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
925         of byref generic inst types (bug #81997).
926
927 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
928
929         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
930         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
931
932 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
933
934         * marshal.c (emit_marshal_string): Add support for unicode strings in
935         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
936
937 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
938
939         * verify.c: field load/store are now verified, missing only access checks now
940
941 2007-06-28  Martin Baulig  <martin@ximian.com>
942
943         * mono-debug.c (mono_debug_debugger_version): New public variable.
944
945 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
946
947         * locales.c: When constructing DateTimeFormat or NumberFormat for
948         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
949         MonoCultureInfo contructed from the current locale is always
950         read-only and has UseUserOverride set to true. All MonoCultureInfo
951         instances returned for GetCultures have both IsReadOnly and
952         UseUserOverride set to true. Fixes part of bug #81930.
953
954 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
955
956        * icall-def.h: Update System.__ComObject icalls
957        * marshal.c: Avoid managed transition (and object creation)
958        when looking up COM interface in RCW.
959        * marshal.h: Ditto.
960        
961        Code is contributed under MIT/X11 license.
962
963 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
964
965         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
966         to avoid crashes during assembly unloading.
967
968 2007-06-22  Raja R Harinath  <rharinath@novell.com>
969
970         Fix MethodInfo.IsGenericMethodDefinition
971         * reflection.c (mono_reflection_bind_generic_method_parameters):
972         Rearrange code to ensure we always uses a generic method definition.
973         * class.c (mono_class_inflate_generic_method_full): Set
974         'generic_container' field only for generic method definitions.
975         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
976         Use presense of 'generic_container' field as indication of being a
977         generic method definition.
978
979 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
980
981         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
982
983         * object-internals.h: Reflect changes in the layout of the managed Delegate
984         class.
985         
986         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
987         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
988         runtime memory used by the dynamic method. Fixes #77146.
989
990 2007-06-21  Dick Porter  <dick@ximian.com>
991
992         * file-io.h: 
993         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
994         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
995         81767.
996
997 2007-06-21  Raja R Harinath  <rharinath@novell.com>
998
999         * reflection.c (method_encode_methodspec): Add a tripwire.
1000         * class.c (inflate_generic_type): The fully open generic type is
1001         not the same as the generic type definition.
1002
1003 2007-06-21  Martin Baulig  <martin@ximian.com>
1004
1005         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1006
1007         * mono-debug-debugger.h
1008         (MonoDebuggerBreakpointInfo): Removed.
1009         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1010         (mono_debugger_remove_breakpoint): Likewise.
1011         (mono_debugger_breakpoint_callback): Likewise.
1012         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1013
1014 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1015
1016         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1017         generic type is not the same as the generic type definition.
1018         * class.c (mono_generic_class_get_class): Likewise.
1019
1020 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1021
1022         * icall.c: The second argument to 
1023         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1024         is a MonoType not a MonoClass.
1025
1026 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1027
1028         * verify.c: support for function pointers in the verifier
1029
1030 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1031
1032         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1033
1034 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1035
1036         * assembly.c: removed Mono.Data.SqliteClient from the list of
1037         forward-compatible assemblies as it breaks the ABI (bug #81899).
1038
1039 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1040
1041         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1042         lookup/update with the loader lock.
1043         * reflection.c (mono_class_bind_generic_parameters): No need to
1044         protect mono_metadata_lookup_* with the loader lock.
1045         * class.c (inflate_generic_type): Likewise.
1046         
1047         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1048         on a generic instantiated type.
1049
1050 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1051
1052         *verify.c: produce meanfull error messages on verification error
1053         *verify.c: fixed some cases of verification errors reported as validation errors
1054         *pedump.c: fixed the error name array, now it shows validation errors properly
1055         *verify.h: fixed the contant that should be used for verification errors
1056
1057 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1058
1059         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1060         for bug #77596, 81858 and 80743 (generics data structures on domain
1061         unload).
1062
1063 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1064
1065         Avoid allocating 'MonoGenericContext' on the heap.
1066         * class-internals (_MonoMethodInflated::context): Make field
1067         inline, not a pointer.
1068         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1069         stack.  Use the context embedded within the inflated method as the
1070         hash key, rather than 'new_context'.
1071         * class.c (inflate_generic_context): Simplify.  Return a struct
1072         rather than allocating on the heap.
1073         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1074         doesn't salt away a copy of the context -- simplifying the
1075         lifetime rules of a 'MonoGenericContext *'.
1076         (mono_method_get_context): Return pointer to embedded context.
1077         (setup_generic_array_ifaces): Allocate temporary context on stack.
1078         * reflection.c (inflate_mono_method): Likewise.
1079         (mono_reflection_bind_generic_method_parameters): Likewise.
1080         Use the context embedded within the inflated method as the hash key.
1081
1082         Avoid a source of allocation of 'MonoGenericContext'.
1083         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1084         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1085         * class.c: Update to changes.
1086         (mono_generic_class_get_context): Simplify drastically.  Now just
1087         returns a pointer to the field.
1088         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1089         argument as a const pointer.
1090         (mono_metadata_generic_context_equal): Likewise.
1091         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1092         Update to changes.
1093
1094 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1095
1096         * verify.c improved the handling of brtrue/brfalse, factored out common code
1097
1098 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1099
1100         Kill MonoGenericMethod.
1101         * class-internals.h (MonoGenericContext::method_inst): Rename from
1102         'gmethod' and convert to a MonoGenericInst.
1103         (MonoGenericMethod): Remove.
1104         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1105         * loader.c (method_from_methodspec): Update to changes.  Use a
1106         MonoGenericContext as the key to the hashtable.
1107         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1108         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1109         (mono_metadata_generic_context_hash): Likewise from
1110         'mono_metadata_generic_method_hash'.  Change hash function.
1111         (mono_metadata_load_generic_params): Update to changes.
1112         (mono_get_shared_generic_method): Remove.
1113         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1114         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1115         (inflate_generic_context): Likewise.
1116         (mono_class_inflate_generic_method_full): Likewise.
1117         (setup_generic_array_ifaces): Likewise.
1118         (mono_class_create_from_typespec): Likewise.
1119         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1120         (method_encode_methodspec): Update callsite.
1121         (reflection_methodbuilder_to_mono_method): Update to changes.
1122         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1123         MonoGenericContext as the key to the hashtable.
1124         (inflate_mono_method): Update to changes.
1125
1126         * class-internals.h (MonoGenericMethod::container): Remove.
1127         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1128
1129 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1130
1131         * profiler-private.h, profiler.c, profiler.h: added API to profile
1132         exception events.
1133
1134 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1135
1136         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1137
1138 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1139
1140         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1141         Fixed overflow and underflow not aborting the verification process.
1142
1143 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1144
1145         * class-internals.h (MonoStats): Added stats entries for dynamic
1146         code allocations.
1147
1148 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1149
1150         * loader.c (mono_free_method): Free header->locals and header->clauses.
1151
1152         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1153         dynamic case.
1154
1155         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1156
1157         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1158
1159 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1160
1161         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1162         the tables.
1163
1164 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1165
1166         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1167
1168 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1169
1170         MonoGenericMethod on a diet
1171         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1172         here ...
1173         (_MonoGenericMethod::reflection_info): ... from here.
1174         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1175         Update to changes.
1176         * reflection.c (inflate_mono_method): Likewise.
1177         (mono_reflection_bind_generic_method_parameters): Likewise.
1178
1179 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1180
1181         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1182         *verify.c: factored long ldarg forms to share code with short forms
1183
1184 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1185
1186         *verify.c: fixed code formating factored some duplicate code
1187         into a new function
1188
1189         *verify.h: fixed binary incompatibility introduced earlier
1190
1191         *pedump.c: fixed formating
1192
1193 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1194
1195         Fix assertion when disassembling Mono.C5.dll
1196         * loader.c (method_from_methodspec): Avoid inflating a method
1197         twice with the same context.  If the methodref is inflated, use
1198         the declaring method instead.
1199
1200         * class.c (mono_class_from_generic_parameter): Fix case similar to
1201         bug #81830 handled below, but for method containers.
1202
1203 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1204
1205         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1206         get_shared_generic_class.  Directly inflate the instance.
1207         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1208         (inflate_generic_class): Delete.
1209         (get_shared_generic_class): Delete.  Move setting of
1210         'cached_class' and 'cached_context' ...
1211         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1212
1213         * metadata.c (mono_metadata_lookup_generic_class): Change
1214         signature to take the components of a MonoGenericClass rather than
1215         an allocated MonoGenericClass.  Change semantics to be intern-like.
1216         * reflection.c (mono_class_bind_generic_parameters): Update to
1217         changes.  Make locking region tighter.
1218         * class.c (inflate_generic_class): Update to changes.
1219         (get_shared_generic_class): Likewise.
1220         * metadata-internals.h: Likewise.
1221
1222         * reflection.c (mono_class_bind_generic_parameters): Take and
1223         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1224         (mono_reflection_bind_generic_parameters): Use
1225         'mono_class_bind_generic_parameters' rather than duplicate the code.
1226         * class.c (mono_bounded_array_class_get): Update to changes.
1227         * object-internals.h: Likewise.
1228
1229         * reflection.c (mono_class_bind_generic_parameters): Only support
1230         parameterizing generic type definitions.  Remove support for other
1231         open types.
1232
1233 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1234
1235         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1236
1237         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1238         in the dynamic case.
1239
1240 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1241
1242         * threads.c: When cleaning up thread, reset the Background bit.
1243         Fixes bug #81720.
1244
1245 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1246
1247        * metadata.c: Move variable declarations to top of scope.
1248        * verify.c: Move variable declarations to top of scope.
1249
1250        Code is contributed under MIT/X11 license.
1251
1252 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1253
1254         * reflection.c (mono_class_bind_generic_parameters): Replace
1255         open-coded loop with mono_metadata_inflate_generic_inst.
1256
1257         * class.c (get_shared_generic_class): Don't call
1258         mono_get_shared_generic_inst.  Use the container's own
1259         'class_inst'.
1260
1261         * metadata.c (mono_metadata_load_generic_params): Move
1262         initialization of 'context' field here from ...
1263         * class.c (mono_class_create_from_typedef): ... here, and ...
1264         * loader.c (mono_get_method_from_token): ... here.
1265
1266         * class.c (get_shared_generic_class): Rename from
1267         mono_get_shared_generic_class and make static.
1268         (mono_get_shared_generic_inst): Move to metadata.c.
1269         * loader.c (mono_get_shared_generic_method): Likewise.
1270         * class-internals.h, metadata-internals.h: Update to changes.
1271
1272         Fix #81830
1273         * class.c (mono_class_from_generic_parameter): Don't assume a
1274         generic container owner exists.  Generic containers from monodis
1275         don't have any.
1276
1277 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1278
1279         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1280         * verify.h: new typedefs to returns the non-verifiable status
1281         * verify.c: initial implementation of generics, stack merging and object compatibility check
1282
1283 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1284
1285         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1286         a MonoInternalHashTable again (fixed bug in internal hash table
1287         code).
1288
1289 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1290
1291         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1292         MonoInternalHashTable again (fixed bug in internal hash table
1293         code).
1294
1295 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1296
1297         * class.c, image.c, class-internals.h, domain.c,
1298         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1299         changes.  Have to figure out what makes them break the SWF
1300         regression.
1301
1302 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1303
1304         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1305         a MonoInternalHashTable now.
1306
1307 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1308
1309         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1310         MonoInternalHashTable now.
1311
1312 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1313
1314         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1315         invoke_impl code.
1316
1317         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1318
1319         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1320         dependent trampoline.
1321
1322         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1323
1324         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1325
1326 2007-05-29  Robert Jordan  <robertj@gmx.net>
1327
1328         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1329
1330 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1331
1332         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1333
1334 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1335
1336        * marshal.c: Fix interface lookup loops for
1337        cominterop_get_com_slot_for_method and 
1338        cominterop_get_method_interface. Only need to lookup
1339        if type is a class, else use interface type method is on.
1340
1341        Code is contributed under MIT/X11 license.
1342
1343 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1344
1345         * reflection.c: HasSecurity can be present even if no specially 
1346         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1347         SecurityAttribute). Fix CAS regression tests on buildbot.
1348
1349 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1350
1351        * appdomain.c: Add configure checks for header files.
1352        * image.c: Add configure checks for header files.
1353        * file-io.c: Add configure checks for header files.
1354        * debug-mono-symfile.c: Add configure checks for header files.
1355        * threadpool.c: Add configure checks for header files.
1356        * console-io.c: Add configure checks for header files.
1357        * profiler.c: Add configure checks for header files.
1358        * rawbuffer.c: Add configure checks for header files.
1359        * icall.c: Add configure checks for header files.
1360        * rand.c: Add configure checks for header files.
1361        * socket-io.c: Add configure checks for header files.
1362
1363        Code is contributed under MIT/X11 license.
1364
1365 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1366
1367         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1368         assertion as it breaks the build.
1369         
1370         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1371
1372         * reflection.c (lookup_custom_attr): Make a copy here too.
1373
1374         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1375         dynamic images.
1376
1377         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1378         images.
1379
1380         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1381         info.
1382
1383 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1384
1385         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1386         (load_cattr_value): Ditto.
1387
1388 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1389
1390         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1391
1392 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1393
1394         * threads.c: In "start_wrapper", set apartment_state to MTA if
1395         apartment_state is Unknown and we're running on 2.0 profile or
1396         higher.
1397         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1398         to main method, then set apartment_state to Unknown on 1.0 profile,
1399         and MTA on 2.0 profile.
1400
1401 2007-05-16  Jb Evain  <jb@nurv.fr>
1402
1403         * class-internals.h (MonoDefaults): Add an attribute_class and
1404           customattribute_data_class.
1405         * domain.c (mono_init_internal): Populate them.
1406         * reflection.c: Use them to remove duplicates. Make a vew
1407         MonoClass variables `static'.
1408
1409 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1410
1411         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1412         step in implementing IMT, so that all isinst checks now can go
1413         through the bitmap.
1414         This was needed because vtables for TransparentProxy need to look
1415         like the vtable of the "target" class, so they need to point to
1416         its interface bitmap directly.
1417
1418         * object.c: inside "mono_class_create_runtime_vtable" and
1419         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1420
1421 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1422
1423         * object-internals.h
1424           culture-info.h : added territory field in MonoCulture and
1425           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1426         * locales.c : fill territory field above too.
1427         * culture-info-table.h : regenerated.
1428
1429 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1430
1431         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1432         Fixes #81599.
1433
1434 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1435
1436         * object.c: Always initialize apartment, even if 
1437         there is no custom attributes on entry point.
1438         
1439         Code is contributed under MIT/X11 license.
1440
1441 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1442
1443         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1444         * metadata.c: If no encoding is set, check for unicode
1445         on class.
1446         
1447         Code is contributed under MIT/X11 license.
1448
1449 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1450
1451         * threads.c: Handle if mono_thread_current returns NULL 
1452         
1453         Code is contributed under MIT/X11 license.
1454
1455 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1456
1457         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1458         in start_wrapper. Added mono_thread_init_apartment_state and
1459         mono_thread_cleanup_apartment_state.
1460         * object.c: Initialize thread apartment state on main thread
1461         by checking for STAThreadAttribute on entry point.
1462         * object-internals.h: Add apartment_state field to MonoThread.
1463         * threads-types.h: Add unmanaged definition of 
1464         System.Threading.ApartmentState, MonoThreadApartmentState.
1465         
1466         Code is contributed under MIT/X11 license.
1467         
1468 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1469
1470         * class.c: Fix windows build.
1471         * class-internals.h: Fix windows build.
1472         
1473         Code is contributed under MIT/X11 license.
1474
1475 2007-05-08  Robert Jordan  <robertj@gmx.net>
1476
1477         * process.c (CreateProcess_internal):
1478         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1479         .CreateNoWindow was specified. Fixes #81496.
1480
1481 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1482
1483         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1484         step in implementing IMT, replaced it with two compact arrays
1485         (interfaces_packed and interface_offsets_packed) and a bitmap that
1486         is used for isinst checks (interface_bitmap).
1487
1488         * class.c: (compare_interface_ids): compare function to pass to
1489         bsearch when looking for an interface with a given id.
1490         (mono_class_interface_offset): reimplemented using bsearch on
1491         interfaces_packed, getting the offset from interface_offsets_packed.
1492         (print_implemented_interfaces): utility debugging function.
1493         (setup_interface_offsets): reworked to initialize interfaces_packed,
1494         interface_offsets_packed and interface_bitmap.
1495
1496         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1497         with uses of interfaces_packed and interface_offsets_packed.
1498
1499 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1500
1501         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1502         mono_class_interface_offset prototype to wrap all accesses to
1503         "MonoClass.interface_offsets".
1504
1505         * class.c: Implemented mono_class_interface_offset, and wrapped all
1506         accesses to "MonoClass.interface_offsets".
1507
1508         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1509         "MonoClass.interface_offsets".
1510
1511 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1512
1513         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1514         GetMethodFromHandle overloads (bug #78637).
1515
1516 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1517
1518         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1519         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1520
1521 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1522
1523         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1524         #81498.
1525
1526         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1527         gracefully.
1528         (mono_custom_attrs_from_index): Ditto.
1529
1530         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1531         Fixes #81501.
1532
1533 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1534
1535         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1536         is now allocated from a mempool.
1537
1538 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1539
1540         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1541         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1542
1543 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1544
1545         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1546         mono_loader_clear_error () too late. Fixes #81463.
1547
1548 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1549
1550         * culture-info-table.h : regenerated.
1551
1552 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1553
1554         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1555         is missing.
1556
1557 2007-04-25  Dick Porter  <dick@ximian.com>
1558
1559         * Makefile.am: Put the mingw enforced-optimisation back into the
1560         PLATFORM_WIN32 section.
1561
1562 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1563
1564         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1565         patch.
1566
1567         * image.c (mono_image_load_module): New API function to load a module reference.
1568
1569         * image.c (load_modules): Load modules lazily. Fixes #80812.
1570
1571         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1572         
1573         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1574
1575         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1576         to mono_image_load_module_dynamic.
1577
1578 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1579
1580         * marshal.c: Fix calling convention for CCW on non-windows
1581         platforms. STDCALL on windows, CDECL everywhere else to work 
1582         with XPCOM and MainWin COM.
1583         
1584         Code is contributed under MIT/X11 license.
1585
1586 2007-04-23  Martin Baulig  <martin@ximian.com>
1587
1588         Fix #80969.
1589
1590         * loader.c
1591         (method_from_memberref): Added `gboolean *used_context' argument.
1592         (mono_get_method_from_token): Likewise.
1593         (mono_get_method_full): Don't insert the method in the cache when
1594         `used_context' is true.
1595
1596 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1597
1598         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1599
1600         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1601         create new MonoTypes for returned types.
1602         * class.c (mono_generic_class_get_class): Export mono-internal.
1603         * class-internals.h: Update to changes.
1604
1605 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1606
1607         * threadpool.c, threadpool.h, icall-def.h: patch from
1608         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1609
1610 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1611
1612         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1613         
1614         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1615
1616         * threads.c (mono_thread_get_stack_bounds): New helper function.
1617
1618         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1619         Correctly compute stack bounds when attaching. Fixes #81394.
1620
1621 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1622
1623         * reflection.c: fix handling of doubles in custom attributes
1624         for the arm-fpa format (bug #81368).
1625
1626 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1627
1628         * reflection.c (assembly_add_win32_resources): Mildly relax an
1629         bounds check to let the end pointer point just past the end of the
1630         allocated buffer.  (may fix #81384)
1631
1632 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1633
1634         * culture-info-table.h : regenerated.
1635
1636 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1637
1638         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1639         the thread is aborted early.
1640
1641 2007-04-05  Dick Porter  <dick@ximian.com>
1642
1643         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1644         FindFirstFile()/FindNextFile() to find entries.  This lets the
1645         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1646         81038.
1647
1648         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1649         the parameters of
1650         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1651
1652 2007-04-04  Martin Baulig  <martin@ximian.com>
1653
1654         * debug-helpers.c
1655         (mono_method_desc_full_match): Add support for nested classes.
1656
1657 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1658
1659         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1660
1661 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1662
1663         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1664         waiting for too many threads.
1665
1666 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1667
1668         * environment.c: Fix return value check on uname so we can get the 
1669         executing version on Solaris operating systems.
1670
1671 2007-03-28  Jb Evain  <jbevain@gmail.com>
1672
1673         * class.c (mono_type_get_name_recurse): Complete the
1674         fix for the creation of assembly qualified names for
1675         pointer types. Fixes #81208.
1676
1677 2007-03-27  Dick Porter  <dick@ximian.com>
1678
1679         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1680         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1681         changed.
1682
1683         * threads.c
1684         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1685         the value of ReleaseMutex().
1686
1687 2007-03-27  Dick Porter  <dick@ximian.com>
1688
1689         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1690         in little-endian order, not network endian, so must be converted
1691         to host endian here.  Fixes bug 80593.
1692
1693 2007-03-22  Jb Evain  <jbevain@gmail.com>
1694
1695         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1696         qualified names for pointer types. Fixes #81208.
1697
1698 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1699
1700         * marshal.c: Add support for PreserveSigAttribute. 
1701         
1702         Code is contributed under MIT/X11 license.
1703
1704 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1705
1706         * process.c: Fix endianness issues. Fixes #81126.
1707
1708         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1709         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1710
1711         * image.c (mono_image_lookup_resource): Make this work on big-endian
1712         machines.Change API contract so the caller needs to free the return value.
1713         
1714         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1715         API change.
1716         
1717 2007-03-14  Martin Baulig  <martin@ximian.com>
1718
1719         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1720         mono_type_get_desc() as well.
1721
1722 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1723
1724         * icall.c:  Fix environ access in VS.  
1725         
1726 2007-03-13  Alp Toker  <alp@atoker.com>
1727
1728         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1729         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1730         #63841.
1731
1732 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1733
1734         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1735         circular references among dynamic methods. Fixes #81091.
1736
1737         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1738
1739 2007-03-09  Martin Baulig  <martin@ximian.com>
1740
1741         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1742
1743 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1744
1745         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1746         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1747         
1748         Code is contributed under MIT/X11 license.
1749         
1750 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1751
1752         * loader.c: Reapply patch for bug #79424.
1753
1754 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1755
1756         * metadata.c (mono_type_to_unmanaged): Only convert object to
1757         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1758
1759 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1760
1761         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1762         (and incorrectly set) is_reference field from MonoGenericInst.
1763
1764 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1765
1766         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1767         a little earlier.
1768
1769         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1770
1771         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1772
1773 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1774
1775         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1776         FileOptions.1 value to mean "temporary", map that to
1777         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1778
1779         Fixes 80688
1780
1781 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1782
1783         * appdomain.c: implement MS .Net style shadow copying. Copies of
1784         the assemblies are made in a subdirectory of the dynamic base
1785         directory, the assembly names are preserved.
1786         Copy .mdb and .config files along with the assemblies being shadowed.
1787
1788 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1789
1790         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1791         (emit_marshal_handleref): Ditto.
1792
1793         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1794         on Visual C++. Fixes #80671.
1795
1796 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1797
1798         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1799         for clone operations.
1800
1801 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1802
1803         * marshal.c: Fix warnings.
1804
1805 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1806
1807         * loader.c: allow case-insensitive matching of the dll name
1808         in dllmap handling when prefixed with "i:".
1809
1810 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1811
1812         * threads.c: Fix #ifdef for dummy_apc function for VS.
1813
1814 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1815
1816         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1817
1818 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1819         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1820         giving precedence to the methods with a fully qualified name
1821         (InterfaceName.MethodName) when building the interface sections
1822         of the vtable.
1823
1824 2007-02-16  Dick Porter  <dick@ximian.com>
1825
1826         * threadpool.c (append_job): Fix fast-path array handling, so it's
1827         less likely the array will grow exponentially when the load is
1828         heavy.
1829
1830 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1831
1832         * metadata-internals.h, loader.c: fix dllmap lookup order
1833         for non-function maps, too, and prepare for fallback code.
1834
1835 2007-02-12  Robert Jordan  <robertj@gmx.net>
1836
1837         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1838         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1839         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1840         GlobalFree. Fixes a part of bug #77075.
1841
1842 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1843
1844         * loader.c: implemented typedef parent in field memberref.
1845
1846 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1847
1848         * marshal.c: Fix warnings and remember to call Release on
1849         IUnknown of RCW.
1850         
1851         Code is contributed under MIT/X11 license.
1852
1853 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1854
1855         * class-internals.h: Add MonoHandleRef definition, and
1856         handleref_class to mono_defaults. 
1857
1858         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1859         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1860
1861         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1862         (do nothing on this stage)
1863         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1864         (emit_marshal_handleref): New method, used for argument handling
1865         of HandleRefs. 
1866
1867 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1868
1869         * class.c (mono_class_setup_parent): Lazily init com types.
1870         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1871         init com types.
1872         * object.c (mono_remote_class_vtable): Lazily init com types.
1873         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1874         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1875         * domain-internals.h: Expose mono_init_com_types.
1876         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1877         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1878         Add support for COM Callable Wrapper marshalling.
1879         * marshal.h: Add icall definitions.
1880         * gc.c: Handle freeing of CCWs in finalizer code.
1881         
1882         Code is contributed under MIT/X11 license.
1883
1884 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1885
1886         * reflection.c: changed all the signature encoding code to use
1887         a variable-sized buffer.
1888
1889 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1890
1891         * marshal.c: locking fixes: never take the loader lock
1892         or other runtime locks when holding the marshal lock
1893         (fixes bug#80664).
1894
1895 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1896
1897         * marshal.c: make the delegate function pointer mapping
1898         work for the moving GC.
1899
1900 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1901
1902         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1903         for bug #80618.
1904
1905 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1906
1907         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1908         gmodule.
1909
1910 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1911
1912         * threadpool.c: made the code moving-GC safe.
1913
1914 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1915
1916         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1917         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1918         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1919         warning cleanup.
1920         * reflection.c: warning cleanup, some threading and moving GC fixes.
1921
1922 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1923
1924         * class.c, loader.c: create the needed Set/Get/Address array methods
1925         as well as the .ctors in mono_class_init (), fixes bug #80567.
1926
1927 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1928
1929         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1930         we doesn't decrease its alignment. Should fix the sparc build.
1931
1932 2007-01-24  Dick Porter  <dick@ximian.com>
1933
1934         * socket-io.c
1935         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1936         Create the returned object if we need to ignore an unsupported
1937         socket option.  Fixes a segfault reported by Atsushi.
1938
1939 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1940
1941         * class.c, object.c: restrict GC-tracked fields to
1942         UIntPtr fields used inside corlib, so we provide better
1943         type info to the GC and also allow broken packing as in
1944         bug #80580.
1945
1946 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1947
1948         * sgen-gc.c: removed duplicated function.
1949
1950 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1951
1952         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1953         value that means that the value is not supported, but that we
1954         should not return a failure, but instead report this as a
1955         successful operation.
1956
1957 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1958
1959         Fix tests/bug79956.2.il
1960         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1961         (mono_generic_class_get_class): If the generic definition in an
1962         enum, copy over other fields related to it.
1963
1964 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1965
1966         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1967         genericinst enums (bug #79215).
1968
1969 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1970         * class.c: Fix bug 80307.
1971
1972 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1973
1974         * image.c: if the file table is not present, try to load
1975         all the modules, since we don't have info about them
1976         having or not metadata (bug #80517).
1977         * assembly.c: allow mono_assembly_load_references () to
1978         work for netmodules.
1979
1980 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1981
1982         * image.c, metadata-internals.h, object.c: execute module
1983         cctors when running on the 2 runtime if present (bug #80487).
1984
1985 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1986
1987         * icall.c: optimized InitializeArray() on bigendian.
1988
1989 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1990
1991         * icall.c: fix for the broken ARM FPA double format.
1992
1993 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1994
1995         * icall.c: handle endian issues for r4 and r8 types, too, in
1996         the InitializeArray() icall.
1997
1998 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1999
2000         * loader.c (mono_loader_error_prepare_exception): Clear the error
2001         once we have extracted the information from it, do this before we
2002         call into the JIT's class loading mechanisms.
2003
2004         * object.c (mono_class_create_runtime_vtable): Do not clear the
2005         loader error before calling mono_class_get_exception_for_failure
2006         as the loader error is needed inside
2007         mono_class_get_exception_for_failure to throw the error (thinko).
2008
2009         Fixes #80521
2010         
2011 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2012
2013         * reflection.c: align fields rva data so it's faster to load at
2014         runtime.
2015
2016 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2017
2018         Prepare to simplify GenericMethod handling.
2019         * class-internals.h (mono_method_get_context): New accessor function.
2020         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2021         rather than directly accessing '->context' field.
2022
2023         * class-internals.h (_MonoGenericParam.method): Move ...
2024         (_MonoGenericContainer): ... here.  Add into union with klass field.
2025         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2026         Update to changes.
2027
2028 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2029
2030         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2031         the wrapper type enum and reduce relocations.
2032
2033 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2034
2035         * reflection.c (inflate_mono_method): Reuse method instantiation
2036         from the generic method, if available.
2037
2038 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2039
2040         * marshal.c (emit_marshal_variant): Fix conv_arg
2041         type in last commit, based on whether parameter is byref.
2042         
2043 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2044
2045         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2046         marshalling.
2047         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2048         MONO_TYPE_OBJECT back for VARIANT support.
2049
2050 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2051
2052         * marshal.c, marshal.h, icall-def.h: Implement 
2053         Marshal.ReAllocCoTaskMem.
2054
2055 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2056
2057         * marshal.c: memory retention fixes: use the proper
2058         image cache for runtime_invoke method lookups.
2059
2060 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2061
2062         * mempool.c: added code to help debug mempool allocations.
2063
2064 2007-01-11  Dick Porter  <dick@ximian.com>
2065
2066         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2067         support (experimenting with faking it with IP_MTU_DISCOVER for
2068         systems that don't have IP_DONTFRAGMENT.)
2069         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2070         icall.
2071
2072         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2073
2074         * socket-io.h: Add new fields to MonoSocketAsyncResult
2075         corresponding to the new ones in Socket.cs.
2076
2077 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2078
2079         Fix IronPython regression mentioned in #80249
2080         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2081         'cached_context' field, since it may have been initialized as a
2082         side-effect of metadata parsing.
2083
2084         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2085         (_MonoGenericClass.cached_class): Move here and rename from lone
2086         remaining field of ...
2087         (_MonoInflatedGenericClass): ... this.  Remove.
2088         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2089         to changes.
2090
2091         Fix mcs/tests/test-128.cs regression.
2092         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2093         2007-01-10 change below.
2094         [MONO_TYPE_OBJECT]: Recurse into array case.
2095
2096 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2097
2098         * class-internals.h (mono_get_inflated_generic_class): Remove.
2099         * class.c (mono_get_inflated_generic_class): Remove.
2100         (mono_generic_class_get_class): Rename from
2101         mono_class_create_generic.
2102         (mono_class_from_mono_type) [GENERICINST]: Use it.
2103         * reflection.c, metadata.c: Update to changes.  Use
2104         'mono_class_from_mono_type'.
2105
2106 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2107
2108         * reflection.c: use passed type when encoding an array element
2109         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2110
2111 2007-01-09  Robert Jordan  <robertj@gmx.net>
2112
2113         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2114         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2115         Fixes bug #80392.
2116
2117 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2118
2119         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2120
2121         * object.c (set_value): Avoid aliasing between type->data.klass
2122         and type->data.generic_class.
2123
2124         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2125
2126 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2127
2128         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2129         between type->data.klass and type->data.generic_class.
2130
2131 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2132
2133         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2134         value in out parameters.
2135
2136 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2137
2138         Simplify invariant for MonoGenericClass::klass field.
2139         * class.c (mono_class_create_generic): Verify 'klass' is null.
2140         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2141         initialize 'klass' field.
2142
2143 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2144
2145         Ongoing work to avoid redundant data and simplify invariants.
2146         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2147         'generic_class', and change type to a GenericInst.
2148         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2149         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2150
2151 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2152
2153         * class.c : skip io-layer under PLATFORM_WIN32.
2154
2155 2007-01-03  Tor Lillqvist  <tml@novell.com>
2156
2157         Fix #80305: In a bundled executable, look in the bundled exe
2158         assembly to determine the runtime version. Add the possibility to
2159         bundle also the machine.config file.
2160         
2161         * assembly.c (mono_assembly_open_from_bundle): Make
2162         non-static. Allow being called even if we have no bundled
2163         assemblies, and return NULL right away in that case.
2164
2165         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2166         here.
2167
2168         * domain.c (app_config_parse): Take an assembly exe file name as
2169         parameter instead of a config file name. Check for a bundled
2170         config file for that assembly by calling
2171         mono_config_string_for_assembly_file() (see below) before looking
2172         for one in the file system.
2173         (get_runtimes_from_exe): Corrsponding change to call of
2174         app_config_parse().
2175         (get_runtimes_from_exe): Check for bundled assembly exe file first
2176         by calling mono_assembly_open_from_bundle(). If no bundled
2177         assembly exe file is found, call mono_image_open() as before to
2178         look it up in the file system.
2179
2180         * mono-config.c: Add variable bundled_machinec_onfig.
2181         (mono_config_string_for_assembly_file): New function.
2182         (mono_config_for_assembly): Move code snippet that looks for a
2183         bundled assembly .config file into the above new function. Call
2184         it.
2185         (mono_register_machine_config, mono_get_machine_config): New
2186         functions to set and retrieve
2187
2188         * assembly.h: Declare mono_register_machine_config().
2189
2190         * mono-config.h: Declare mono_get_machine_config() and
2191         mono_config_string_for_assembly_file().
2192
2193         * icall.c: No declaration of environ necessary on Win32. It is
2194         declared (as a macro expanding to a function call) in stdlib.h.
2195         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2196         New internal mono function. Returns the value of
2197         mono_get_machine_config() as a Mono string.
2198
2199         * icall-def.h: Add get_bundled_machine_config().
2200
2201 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2202
2203         Remove redundant field
2204         * class-internals.h (_MonoGenericContext.container): Remove field.
2205         * loader.c (mono_method_get_signature_full): Don't parse a
2206         "container" for a signature parse when the signature is inflated
2207         immediately.
2208         (method_from_methodspec): Likewise, for a generic_inst.
2209         * class.c, metadata.c, reflection.c: Update to changes.
2210
2211 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2212
2213         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2214         'cached_context', and change semantics -- it starts off NULL, and
2215         is initialized on demand.
2216         * class.c (mono_generic_class_get_context): New accessor to
2217         replace 'context' field accesses.
2218         (mono_class_get_context): New helper.
2219         (*): Update to changes.
2220         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2221
2222 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2223
2224         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2225         before the memcpy.   Fixes Marshal2 regression.
2226
2227 2007-01-02  Jb Evain  <jbevain@gmail.com>
2228
2229         * blob.h: add a MONO_TYPE_ENUM definition
2230         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2231         fix the encoding of arrays of enums in custom attributes.
2232
2233         Fixes #79666.
2234
2235 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2236
2237         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2238         string is null terminated, but only cut the string short if it
2239         overflows the buffer.   
2240         
2241         (mono_string_to_byvalstr): Also fix this routine.   The code here
2242         was not properly terminating a string (it was only terminated
2243         because of the previous catch-all memset). 
2244
2245         I left the memset, because I do not know if applications expect
2246         the runtime to clear this region. 
2247
2248         Fixes #79944.
2249
2250         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2251         Clear the error before returning to unmanaged code to prevent the
2252         runtime from being confused later on (fixes  80420).
2253         (ves_icall_type_from_name): Always call mono_loader_clear_error
2254         after parsing a type that could have failed.
2255         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2256
2257         * loader.c (mono_loader_clear_error): Fix indentation.
2258
2259 2006-12-28  Martin Baulig  <martin@ximian.com>
2260
2261         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2262
2263 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2264
2265         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2266         getting a token for an EnumBuilder.
2267
2268 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2269
2270         * reflection.c: be more careful in case resource generation
2271         fails to create the data array.
2272
2273 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2274
2275         * sgen-gc.c: write barrier for clone and fix unregister handles.
2276
2277 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2278
2279         * reflection.c: some fixes needed in the generics code for the moving GC.
2280
2281 2006-12-22  Robert Jordan  <robertj@gmx.net>
2282
2283         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2284         account. Fixes bug #80299.
2285
2286 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2287
2288         Fix WaitHandle usage in delegates.
2289         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2290         * object.c (mono_wait_handle_new): Use the property set method to
2291         initialize the handle.
2292         (mono_wait_handle_get_handle): New.
2293         * threadpool.c (mono_async_invoke): Use it.
2294         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2295         Likewise.
2296         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2297
2298 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2299
2300         * marshal.c (emit_marshal): Call emit_marshal_variant and
2301         emit_marshal_com_interface when applicable.
2302         (emit_marshal_variant, emit_marshal_com_interface): Add
2303         methods for this case and remove if's from emit_marshal_object.
2304         
2305 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2306
2307         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2308
2309 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2310
2311         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2312         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2313         and GlobalFree on Windows. Remove FIXME.
2314
2315 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2316
2317         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2318         implementation for managed objects.
2319
2320 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2321
2322         * object.c: implemented code to be used for checking
2323         that no reference field overlaps with non-references.
2324
2325 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2326
2327         * threadpool.c: fix queue code to be compatible with the
2328         moving GC.
2329
2330 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2331
2332         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2333         in structures by throwing ArgumentNullException.
2334
2335         (emit_marshal_safehandle): Also when they are null parameters.
2336
2337         (emit_marshal_safehandle): Add support for ref
2338         SafeHandles parameters
2339
2340 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2341
2342         * profiler.c: updated to use the mono-dl API instead of
2343         gmodule.
2344
2345 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2346
2347         * profiler.c: updated to use the mono-dl dynamic loading
2348         API instead of gmodule.
2349
2350 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2351
2352         * profiler.c: use readlink, older versions of glib don't have
2353         g_file_read_link ().
2354
2355 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2356
2357         * profiler.c: try to detect the path to mono if libc fails to provide
2358         a useful name (bug #80286).
2359
2360 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2361
2362         Fix #80242
2363         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2364         instance, use the generic type definition instead.
2365         (ves_icall_Type_GetNestedTypes): Likewise.
2366         * class.c (mono_class_create_generic): Always set the
2367         nested_classes of a generic instance to NULL, even if the generic
2368         type definition has nested types.
2369
2370 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2371
2372         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2373         and fix on Linux.
2374         
2375 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2376
2377         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2378         my arguments were in the wrong order.   I also fixed the Windows
2379         version which seems to have had the same issue.
2380
2381         (mono_free_bstr): On Unix, this is g_free.
2382         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2383         conversions (for the tests in corlib to pass).
2384
2385 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2386
2387         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2388         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2389         exception if a ref SafeHandle in a struct has changed).
2390         
2391         (emit_struct_conv): Do not perform layout checks for classes
2392         derived from SafeHandle, as those are specially handled. 
2393
2394         (emit_object_to_ptr_conv): Add support for
2395         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2396
2397         (emit_marshal_safehandle): Implement conversion of return values
2398         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2399         
2400         * threads.c: WaitHandle now is compiled with two different handles
2401         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2402         for 2.0.
2403         
2404         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2405         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2406         these routines to cope with both kinds of fields.
2407
2408 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2409
2410         * metadata.c (mono_type_to_unmanaged): Handle the case where
2411         type->data.klass is a SafeHandle, and in that case, return the
2412         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2413         MONO_MARSHAL_CONV_SAFEHANDLE. 
2414
2415 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2416
2417         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2418         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2419         calling emit_marshal_object.
2420
2421         (emit_marshal_safehandle): Implement marshalling of
2422         SafeHandle parameters (no ref support yet).
2423
2424         (MarshalAction): Document the defines as I implement
2425         them for SafeHandle.
2426
2427         (emit_marshal_object): indentation police.
2428
2429         * class-internals.h: Define MonoSafeHandle.
2430         Add safehandle_class to MonoDefaults type.
2431
2432         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2433         list of classes to check for fields. 
2434
2435         * domain.c (mono_init_internal): Add SafeHandle to the list of
2436         mono_defaults loaded.
2437
2438 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2439
2440         Fix #80253
2441         * reflection.c (mono_reflection_bind_generic_parameters): If the
2442         generic type definition is a type builder, ensure that it is fully
2443         initialized before instantiating it.  Kill some dead code.
2444
2445 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2446
2447         * object.c: clear the loader_error () before loading
2448         more metadata stuff (bug #80258).
2449
2450 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2451
2452         * icall.c, icall-defs.h: type modifiers icalls for
2453         parameters and properties.
2454
2455 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2456
2457         * object.c, icall.c: fixed warnings.
2458
2459 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2460
2461         * marshal.c: fixed a couple of leaks and coding style in a few places.
2462
2463 2006-12-08  Dick Porter  <dick@ximian.com>
2464
2465         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2466         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2467         80173.
2468
2469 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2470
2471         * process.c: ProcessStartInfo may have only filename set and
2472         arguments can be NULL.
2473
2474 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2475
2476         * icall.c: fix leak found by Robert Jordan.
2477
2478 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2479
2480         * marshal.c, marshal.h: generate managed method to access an element
2481         of a multi-dimensional array.
2482
2483 2006-11-30  Paolo Molaro (lupus@ximian.com)
2484
2485         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2486
2487 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2488
2489         * icall.c: back out GetFields () fix until the serialization code is
2490         fixed to not depend on the incorrect behaviour.
2491
2492 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2493
2494         * profiler.c: provide defaults if none are set.
2495
2496 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2497
2498         * Makefile.am, attrdefs.h: new public header file with
2499         constants for attributes for use by embedders.
2500
2501 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2502
2503         * icall.c: GetFields () fix for bug #80064.
2504
2505 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2506
2507         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2508         removed long unused icalls.
2509
2510 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2511   
2512         * marshal.c: 
2513                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2514                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2515                 can be generated without a delegate class.
2516                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2517         
2518         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2519
2520 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2521
2522         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2523         #80069.
2524
2525 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2526
2527         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2528         icall-def.h: added icalls needed by System.GC.
2529
2530 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2531
2532         * loader.c: ensure the class in catch clauses is handled
2533         correctly for generics methods (fixes bug#79980).
2534
2535 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2536
2537         * monitor.h, monitor.c: added mono_locks_dump () function
2538         to help debug deadlocks involving managed locks.
2539
2540 2006-11-13  Dick Porter  <dick@ximian.com>
2541
2542         * file-io.c (get_file_attributes): If the file is a symlink try
2543         and get the stat data for the target, but also add the
2544         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2545         the specs for the windows symlink support, but will probably have
2546         to be reworked when I have test data from a vista machine.  Fixes
2547         bug 79887.
2548
2549 2006-11-13  Dick Porter  <dick@ximian.com>
2550
2551         * gc.c (mono_domain_finalize): 
2552         * marshal.c (mono_delegate_begin_invoke): 
2553         * threadpool.c (socket_io_init, mono_thread_pool_init)
2554         (mono_thread_pool_finish): 
2555         * monitor.c (mono_monitor_try_enter_internal): 
2556         * threads.c (mono_thread_resume, mono_thread_init)
2557         (mono_thread_suspend_all_other_threads)
2558         (mono_thread_execute_interruption): 
2559         * appdomain.c (mono_domain_unload): Check for NULL error returns
2560         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2561         75733.
2562
2563 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2564
2565         * process.c
2566         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2567         Only close the handle if the value of the handle is not
2568         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2569         robust.
2570
2571         Improvement for #75733, so that we do not run into this problem. 
2572
2573         
2574         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2575         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2576         internal variables.  Fixes #79462 
2577         
2578
2579 2006-11-09  Dick Porter  <dick@ximian.com>
2580
2581         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2582         Use poll() not select().  Fixes bug 79397.
2583
2584 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2585
2586         Fix #79872
2587         * assembly.c (mono_assembly_load_from_full): Check that the given
2588         image has an assembly manifest.
2589
2590 2006-11-09  Ankit Jain  <jankit@novell.com>
2591
2592         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2593         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2594         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2595
2596 2006-11-07  Dick Porter  <dick@ximian.com>
2597
2598         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2599         Put the old resolver behaviour back for pre-2.0 profiles.
2600
2601 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2602
2603         * threadpool.c: precise GC and locking fixes.
2604
2605 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2606
2607         * class.c: don't load types that have an explicit unaligned
2608         managed reference. Provide better info in the TypeLoad exception.
2609         Part of the fix for bug #79744.
2610         * object.c: use the correct check for class type load issues.
2611
2612 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2613
2614         * class.c: enforce alignment of fields with managed references
2615         even when Pack=1 is forced by the user (bug #77788).
2616
2617 2006-11-03  Dick Porter  <dick@ximian.com>
2618
2619         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2620         If the address reverse lookup fails, return it as the hostname
2621         anyway.  Fixes bug 79721.
2622
2623 2006-11-03  Dick Porter  <dick@ximian.com>
2624
2625         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2626         Fix build on Windows.
2627
2628 2006-11-02  Dick Porter  <dick@ximian.com>
2629
2630         * icall-def.h: 
2631         * object-internals.h: 
2632         * exception.c (mono_get_exception_thread_interrupted): 
2633         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2634         Fixes bug 74525.
2635
2636         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2637         Check for pending Thread.Interrupt.
2638
2639 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2640         * loader.c: Fixed bug 79684.
2641
2642 2006-10-27  Dick Porter  <dick@ximian.com>
2643
2644         * file-io.c (get_file_attributes): Force symlinks to directories
2645         to be returned as a regular file.  Fixes bug 79733.
2646 2006-10-26  Dick Porter  <dick@ximian.com>
2647
2648         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2649         CreateFile to open a directory then we need to set the
2650         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2651
2652 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2653
2654         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2655         friends.
2656
2657 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2658
2659         * sgengc.c: small cleanup of timer code.
2660
2661 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2662
2663         * sgen-gc.c: fix some warnings and start adding support for
2664         complete object removal on domain unload.
2665
2666 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2667
2668         * assembly.c: build_assembly_name should not consider a version
2669         number without build or revision number invalid. Fixes bug #79715.
2670
2671 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2672
2673         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2674         call kernel32 function OutputDebugString directly.
2675         
2676         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2677         
2678 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2679
2680         * reflection.c: small cleanup, using a function to insert a MonoString
2681         in the string heap.
2682
2683 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2684
2685         * reflection.c: moving GC fixes.
2686
2687 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2688
2689         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2690         all the objects with finalizers belonging to an unloading appdomain.
2691
2692 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2693
2694         * sgen-gc.c: added ability to allocate even when the nursery is fully
2695         pinned and fixed a couple of bugs.
2696
2697 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2698
2699         * threads.h: Revert the last change for now.
2700
2701         * threads.h (mono_thread_get_pending_exception): Rename this to
2702         mono_thread_get_undeniable_exception ().
2703
2704 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2705
2706         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2707         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2708         when fname does not refer to valid assembly. This result in a more
2709         meaningful error message.
2710         * exception.c: added mono_get_exception_bad_image_format2 which 
2711         constructs a BadImageFormatException using the ctor taking a custom
2712         message and the file name. Passing in a NULL msg results in a default
2713         message.
2714         * exception.h: define mono_get_exception_bad_image_format2 function.
2715         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2716         when file name pointed to an invalid IL image. Use 
2717         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2718         as this results in a more meaningful error message.
2719
2720 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2721
2722         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2723         #79465.
2724
2725 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2726
2727         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2728         consistency with the other _size functions.
2729         (mono_type_stack_size): Ditto.
2730
2731         * class.c object.c icall.c: Fix warnings caused by the above change.
2732
2733         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2734
2735         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2736
2737         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2738
2739 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2740
2741         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2742         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2743         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2744         threadpool.h, threads-types.h: mark more internal functions.
2745
2746 2006-10-11  Dick Porter  <dick@ximian.com>
2747
2748         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2749         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2750         reproduce the bug even before applying the fix.)
2751
2752 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2753
2754         * reflection.c: allow retrieving attributes for arguments in generic
2755         methods (bug #79241).
2756
2757 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2758
2759         * debug-mono-symfile.c: properly check fopen () result (found by
2760         coverity).
2761
2762 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2763
2764         * reflection.c: make error message clearer and fixed two
2765         issuelets found by Coverity.
2766
2767 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2768
2769         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2770
2771 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2772
2773         * object-internals.h, gc-internal.h, profiler-private.h:
2774         mark internal functions.
2775
2776 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2777
2778         * reflection.c: put data in the text section.
2779         * icall.c: recognize more types in type_from_typename ().
2780         * process.c, marshal.c: added some GC FIXMEs.
2781
2782 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2783
2784         * loader.c: check for NULL before initializing.
2785
2786 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2787
2788         * gc.c (finalizer_thread): Use a non-alertable wait here.
2789
2790         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2791         until the correct solution is found.
2792
2793 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2794
2795         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2796         modules with no metadata. Fixes #79596.
2797
2798         * image.c (load_metadata_ptrs): Put back the error message when
2799         the #- heap is encountered since the support is not complete yet.
2800
2801 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2802
2803         * gc.c: do not allow the user to SuppressFinalize () a
2804         delegate because it would leak the trampoline if present.
2805
2806 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2807
2808         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2809         PropertyPtr table.
2810
2811 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2812
2813         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2814
2815         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2816
2817         * row-indexes.h: Add definitions for *Ptr tables.
2818
2819         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2820
2821         * metadata.c (mono_metadata_translate_token_index): New helper function to
2822         translate table indexes used in uncompressed metadata.
2823         (mono_metadata_decode_table_row): Ditto.
2824         (mono_metadata_decode_table_row_col): Ditto.
2825
2826         * metadata.c: Add table schema for *Ptr tables.
2827
2828         * class.c loader.c: Use the new helper function to access the affected metadata
2829         tables.
2830         
2831         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2832         #38532.
2833         
2834 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2835
2836         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2837         sequences which can be unbounded in size. Fixes #79583.
2838
2839 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2840
2841         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2842         static initialization.
2843
2844         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2845
2846         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2847
2848         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2849
2850         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2851         ctor fails, i.e. throw the same exception on subsequent accesses.
2852         
2853 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2854
2855         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2856         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2857         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2858         Handle marshalling of interfaces and VARIANTs contained in structs.
2859         
2860         Code is contributed under MIT/X11 license.
2861         
2862 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2863
2864         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2865         
2866         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2867         mempool.
2868
2869 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2870
2871         * console-io.c: ignore previous SIGINT handler.
2872
2873 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2874
2875         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2876         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2877         #79460, #79461, #79485.
2878
2879         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2880
2881         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2882         #79217.
2883
2884 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2885
2886         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2887         could be generated from it.
2888
2889 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2890
2891         * rand.c: fix read loop to correctly handle EINTR.
2892
2893 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2894
2895         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2896         internal calls are defined to keep methods closer to the declaring
2897         type and allow a significant reduction in runtime relocations and
2898         memory usage.
2899
2900 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2901
2902         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2903         exception message to have FileNotFoundException use the default
2904         assembly load error message. Fixes bug #79426.
2905         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2906
2907 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2908
2909         * threadpool.c: (start_thread_or_queue) use the root domain when
2910         creating the thread instead of the async object one.
2911
2912 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2913
2914         * class.c, object.c, class-internals.h, reflection.c:
2915         for arrays, store element_size inside MonoClass (speedup
2916         for array object creation).
2917
2918 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2919
2920         * icall.c: fixed CodeBase to use the file name and not the module
2921         name (bug #79365).
2922
2923 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2924
2925         * mono-debug.c, mono-debug.h: export find_method as
2926         mono_debug_find_method ().
2927
2928 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2929
2930         * debug-helpers.c, class-internals.h: added a few functions useful
2931         when debugging under gdb.
2932
2933 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2934
2935         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2936         characters that need special handling.
2937
2938 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2939
2940         * mono-config.c: make the os/cpu specification more flexible,
2941         allowing lists and negation.
2942
2943 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2944
2945         * marshal.c: COM Interop fixes. Handle case where method->klass.
2946         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2947         calling convention on non-windows platforms. This is for
2948         compatibility with XPCOM and MainWin COM.
2949         
2950         Code is contributed under MIT/X11 license.
2951         
2952
2953 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2954
2955         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2956         correctly. Fixes #79217.
2957
2958         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2959
2960 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2961
2962         * mono-config.c: allow both an os and cpu attribute for dllmap
2963         and dllentry elemnets to enable a single config file to be used
2964         for multiple architectures.
2965
2966 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2967
2968         * loader.c: MonoLoaderError was cleared too soon on load failure.
2969         Fixes bug #79424.
2970
2971 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2972
2973         * icall.c: use the defining class vtable when accessing a
2974         static field, not a pobblibly derived class.
2975
2976 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2977
2978         * icall.c string-icalls.c: Remove references to unicode.h.
2979
2980         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2981
2982         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2983
2984         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2985         indicating the image where custom marshaller types should be looked up.
2986         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2987         custom marshallers, instead of corlib. Fixes #79425.
2988
2989 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2990
2991         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2992
2993 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2994
2995         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2996         Implement Environment.ProcessorCount.
2997         
2998         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2999         Implement Environment.ProcessorCount.
3000         
3001         * icall.c: 
3002         Add Environment.ProcessorCount icall.
3003         
3004         Patch by Jason McFall.
3005
3006 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3007
3008         * assembly.c: don't append .exe/.dll when the filename already contains
3009         one of those extensions.
3010
3011 2006-09-12  Martin Baulig  <martin@ximian.com>
3012
3013         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3014         to array interfaces.
3015
3016 2006-09-11  Martin Baulig  <martin@ximian.com>
3017
3018         * reflection.c (mono_image_build_metadata): Create the
3019         MethodImpl's after emitting all types and methods, so we don't
3020         need another fixup pass for them.
3021
3022 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3023
3024         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3025         change.
3026
3027 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3028
3029         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3030         unload.
3031
3032 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3033
3034         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3035         args is not set. Fixes #78926.
3036
3037 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3038
3039         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3040
3041         * image.c (load_class_names): Move this to class.c, and rename it to 
3042         'mono_image_init_name_cache'.
3043         (load_modules): Fix a warning.
3044
3045         * class.c icall.c image.c: Initialize image->name_cache lazily.
3046
3047         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3048         on its name using information in the AOT file.
3049
3050         * class.c (mono_class_from_name): Use the new hook function.
3051
3052 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3053
3054         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3055         correctly.
3056
3057         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3058         Fixes #79289.
3059         
3060 2006-09-06  Martin Baulig  <martin@ximian.com>
3061
3062         * icall.c (mono_lookup_internal_call): Small fix.
3063
3064 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3065
3066         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3067         double g_free.
3068
3069 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3070
3071         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3072         when --debug is specified.
3073
3074 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3075
3076         * class.c (setup_generic_array_ifaces): Fix a warning.
3077
3078 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3079
3080         * Temporarily remove the patch to assemly.c that checks the
3081         assembly versions as it breaks our gacutil.
3082
3083 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3084
3085         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3086
3087         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3088         a net 1.0 runtime.
3089
3090         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3091         created using the default ctor. Fixes #79152.
3092         (mono_string_builder_to_utf16): Ditto.
3093
3094 2006-09-01  Martin Baulig  <martin@ximian.com>
3095
3096         Fix handling of the generic array interfaces.
3097
3098         * class-internals.h
3099         (MonoDefaults): Removed `generic_array_class' and added
3100         `generic_ilist' class.
3101
3102         * class.c
3103         (mono_bounded_array_class_get): Add the new generic array interfaces.
3104         (setup_generic_array_ifaces): New static method; create vtable
3105         entries for each method in the generic array interfaces.
3106
3107         * metadata.c
3108         (select_container): Allow "parent-less" generic methods.
3109
3110         * marshal.c
3111         (mono_marshal_get_generic_array_helper): New public method.
3112
3113         * icall.c
3114         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3115         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3116         moved the interncall into System.Array.
3117
3118 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3119
3120         A few more cases of avoiding work on types with ->byref set.
3121         Has the real fix for #79238
3122         * icall.c (is_generic_parameter): New helper.
3123         (ves_icall_Type_GetGenericParameterPosition): Use it.
3124         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3125         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3126         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3127         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3128         reference types.
3129         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3130         reference types.
3131         (ves_icall_Type_get_IsGenericInstance): Likewise.
3132         (ves_icall_Type_get_IsGenericType): Likewise.
3133
3134 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3135
3136         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3137         class if possible.
3138
3139         * mempool.h (mono_mempool_get_allocated): New helper function.
3140
3141         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3142         change.
3143
3144         * mempool.c: Fix warnings and the calculation of stats.
3145
3146         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3147
3148         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3149
3150         * loader.c (mono_get_method_from_token): Update method_count stat.
3151
3152         * class-internals.h (MonoStats): Add some stats.
3153
3154 2006-08-31 Robert Jordan  <robertj@gmx.net>
3155
3156         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3157         with managed variants.
3158         All code is contributed under the MIT/X11 license.
3159         
3160 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3161
3162         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3163         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3164
3165         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3166
3167         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3168         with cycles in classes.
3169
3170         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3171
3172         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3173         missing a [MarshalAs] directive. Fixes #79203.
3174
3175         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3176         klass->marshal_info. Fixes #79217.
3177
3178 2006-08-30  Martin Baulig  <martin@ximian.com>
3179
3180         Committing a patch from Joachim Ante <joe@otee.dk>:
3181         Add support for binary data symbol stores.
3182
3183         * debug-mono-symfile.c
3184         (mono_debug_open_mono_symbol_file): Renamed into
3185         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3186         arguments.
3187
3188         * mono-debug.c
3189         (mono_debug_open_image): Added `raw_contents' and `size' args.
3190         (mono_debug_init_2_memory): New public function.
3191
3192 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3193
3194         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3195
3196 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3197
3198         * appdomain.c: implement support for ShadowCopyFiles.
3199
3200 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3201
3202         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3203         when value is NULL (and should remove CID #51).
3204
3205 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3206
3207         * image.c: moved 2 functions to ../utils.
3208
3209 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3210
3211         * gc.c: cope with the target object of a GC handle being NULL
3212         (bug #78877).
3213
3214 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3215
3216         * class.c: recursively check parent's explicit implementations
3217         of interface methods (fixes bug #79125).
3218
3219 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3220
3221         * filewatcher.c: Avoid warnings when building, do not redefine
3222         constants that are defined.
3223
3224         Remove warnings.
3225
3226 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3227
3228         * image.c: don't fail when the link points to an absolute path.
3229
3230 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3231
3232         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3233         Fix CID #3.
3234
3235 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3236
3237         * image.c (full_path): A new method used to obtain the actual path
3238         of an assembly even in the presence of symbolic links.  
3239
3240         This is necessary for the case where we are running a binary that
3241         has been GACed, but we are using the "published" path name
3242         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3243         file in the GAC.
3244
3245         This was the source of the failure for the `xsp' command with the
3246         recent AppDomain changes, as far as the runtime was concerned,
3247         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3248         $prefix/mono/gac/blah/version/blah.exe.
3249
3250         (do_mono_image_open): use full path
3251
3252 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3253
3254         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3255
3256 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3257
3258         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3259         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3260
3261 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3262
3263         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3264         small structures. Fixes #78990.
3265
3266 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3267
3268         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3269
3270         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3271
3272 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3273
3274         * appdomain.c:
3275         * marshal.c: don't load all the assemblies from a domain into newly
3276         created ones. The new domains might have different rules and load
3277         assemblies from different locations. Fixes bug #76757.
3278
3279         Patch by Lluis. Conflicts resolved by Brian Crowell.
3280
3281 2006-08-16  Alp Toker  <alp@atoker.com>
3282
3283         * socket-io.c: First half of the fix for #79084.
3284         Set sa_size to the length of the content, not that of the struct.
3285         Don't add NULL suffix to the content, this should be done in
3286         managed code if needed.
3287
3288 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3289
3290         Fix part of #79012
3291         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3292         mono_metadata_parse_type returns NULL.
3293
3294 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3295
3296         * normalization-tables.h : new file for string normalization data.
3297         * locales.c, locales.h, icall.c :
3298           added load_normalization_resource() for string normalization,
3299           and icall as well.
3300         * Makefile.am : added normalization-tables.h to the sources.
3301
3302 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3303
3304         * marshal.c: Add more helper functions to reduce code duplication and use them
3305         everywhere.
3306
3307 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3308
3309         * marshal.c: Fix non-x86 stdcall warnings.
3310         
3311         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3312         them everywhere.
3313
3314 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3315
3316         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3317         type check on multi-dimensional arrays. Fixes #79000.
3318
3319 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3320
3321         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3322         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3323         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3324         * class-internals.h: add is_com_object to class structure.
3325         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3326         null checks to COM object marshalling. Fix .ctor call on RCW.
3327         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3328         
3329         All code is contributed under the MIT/X11 license.
3330
3331 2006-08-09  Dick Porter  <dick@ximian.com>
3332
3333         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3334         racing mono_monitor_allocator_lock() somewhere, so don't delete
3335         the critical section for now.  Found by running and exiting
3336         monodevelop.
3337
3338 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3339
3340         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3341         (ves_icall_System_ComObject_FindInterface): Ditto.
3342         (ves_icall_System_ComObject_CacheInterface): Ditto.
3343
3344         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3345         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3346
3347 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3348
3349         * threadpool.c: treat pipes from process asynchronous reads as sockets
3350         when reading from them, so we get select/poll or epoll to wait for
3351         data.
3352
3353 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3354
3355         * loader.c: Fix a typo (CID #233) in the null check.
3356
3357 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3358
3359         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3360         Hopefully fixes #78949.
3361         
3362         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3363         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3364         bytes. Fixes #78972.
3365
3366 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3367
3368         * filewatcher.c: we need to set errno here.
3369
3370 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3371
3372         * filewatcher.c: let Win32Exception get the error value.
3373
3374 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3375
3376         * filewatcher.c: translate errno into win32 errors for Win32Exception
3377         to know what happened.
3378
3379 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3380
3381         * threadpool.c: Fix more warnings.
3382
3383         * assembly.c (search_loaded): Fix warnings.
3384
3385         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3386         (mono_async_invoke): Ditto.
3387
3388 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3389
3390         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3391         entries for __ComObject type in addition to ComImport types.
3392         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3393         about hash table.
3394         
3395         All code is contributed under the MIT/X11 license.
3396
3397 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3398
3399         * image.c: avoid tentative loading of modulerefs that contain
3400         no metadata (P/Invoke library names).
3401
3402 2006-07-28  Dick Porter  <dick@ximian.com>
3403
3404         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3405         mono_loader_lock() somewhere, so don't delete the critical section
3406         for now.  Found by running and exiting monodevelop.
3407
3408 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3409
3410         * filewatcher.c: define the inotify syscalls when we're building on
3411         linux and have sys/syscall.h. The build system might not have support
3412         for inotify but the target system might have it.
3413
3414 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3415
3416         * domain.c: Documentation updates.
3417
3418         * loader.c (mono_free_method): Do not release the method
3419         information if we are being profiled, as profilers will use this
3420         information at shut down to present some data to the user.
3421
3422         This is needed so that the profiler does not crash, as the
3423         profiler tends to keep MonoMethods around, and they might become
3424         invalid if we free these.
3425
3426         (mono_get_method_constrained): Return the original CIL stream
3427         method as well, so verification can be performed against it.
3428
3429 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3430
3431         * filewatcher.[ch]: support for inotify file system watcher.
3432         * icall.c: add new internal calls for the inotify file system watcher.
3433
3434 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3435
3436         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3437         #78888.
3438
3439 2006-07-20  Dick Porter  <dick@ximian.com>
3440
3441         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3442         warning.
3443
3444 2006-07-20  Dick Porter  <dick@ximian.com>
3445
3446         * threads.c (start_wrapper): Do the thread cleanup while we still
3447         hold a reference to its object.  Fixes bug 78123.
3448
3449 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3450
3451         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3452         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3453           "managed-to-managed".
3454         * icall.c: Redirect string constructors that take sbyte* to
3455           ves_icall_System_String_ctor_RedirectToCreateString.
3456         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3457           to CreateString () methods with matching signature.
3458         * reflection.c: Use original security informations for
3459           MONO_WRAPPER_MANAGED_TO_MANAGED.
3460         * security-manager.c: Use original security informations for
3461           MONO_WRAPPER_MANAGED_TO_MANAGED.
3462         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3463           that is a placeholder and only its address should be used.
3464         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3465           that is a placeholder and only its address should be used.
3466
3467 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3468
3469         Begin implementing COM Interop.
3470         * appdomain.c: Increment corlib version.
3471         * class.c: Set ComImport classes' parent to __ComObject.
3472         * loader.c: Mark cominterop methods as such.
3473         * domain.c: Add __ComObject class to MonoDefaults structure.
3474         * image.c: Add 2 hashtables to the image for COM Interop related methods
3475         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3476         using the mempool allocator
3477         
3478         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3479         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3480         declaration for mono_metadata_type_dup_mp.
3481         
3482         * debug-helpers.c: Added strings for two additional wrapper types
3483         * object.c: Create proxy objects for ComImport classes
3484         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3485         and added __ComObject class to MonoDefaults structure.
3486         
3487         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3488         MonoComInteropProxy and MonoComObject.
3489         
3490         * marshal.c: Added support for COM Interop
3491         (signature_cominterop): Converts managed signature to corresponding
3492         unmanaged COM signature.
3493         (cominterop_get_function_pointer): gets unmanaged function pointer via
3494         COM object vtable
3495         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3496         (cominterop_get_method_interface): returns interface type that method is defined on
3497         (mono_mb_emit_cominterop_call): emits native call to function pointer
3498         gotten from vtable
3499         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3500         that matches signature of unmanaged function.
3501         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3502         (cominterop_get_invoke): forwards call from proxy to __ComObject
3503         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3504         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3505         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3506         
3507         * marshal.h: Added Marshal icall declarations.
3508         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3509         so we can access them in finalizer
3510         
3511 2006-07-14  Dick Porter  <dick@ximian.com>
3512
3513         * object.c (mono_type_initialization_cleanup): Fix a race
3514         condition by temporarily commenting out the critical section
3515         deletion.
3516
3517 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3518
3519         * reflection.c (create_custom_attr): Fix some warnings.
3520         (create_custom_attr_data): Ditto.
3521         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3522         types. Fixes #78855.
3523
3524 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3525
3526         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3527
3528         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3529
3530 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3531
3532         * reflection.c (resolve_object): Add support for DynamicMethod.
3533
3534         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3535         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3536
3537 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3538
3539         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3540         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3541
3542 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3543
3544         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3545         Fixes #77888.
3546
3547 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3548
3549         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3550         slightly: remove a shadow local variable.
3551
3552 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3553
3554         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3555         definition that introduces the virtual function slot.
3556         Also fix Coverity #105.
3557
3558 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3559
3560         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3561         for dynamic assemblies. Fixes #78724.
3562
3563 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3564
3565         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3566         Fixes #78722.
3567
3568 2006-06-21  Martin Baulig  <martin@ximian.com>
3569
3570         * reflection.c
3571         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3572         fixes #76484.
3573
3574 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3575
3576         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3577
3578 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3579
3580         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3581         nor TYPEREFs.
3582         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3583         Inflate result if necessary.
3584         (mono_class_get_full): Remove old version.  Rename from
3585         'mono_class_get' and add 'context' argument.  Pass it to
3586         ..._create_from_typespec.
3587         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3588         (mono_ldtoken): Revert change below.
3589
3590 2006-06-20  Martin Baulig  <martin@ximian.com>
3591
3592         * class.c (mono_ldtoken): Don't pass the generic context to
3593         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3594
3595 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3596
3597         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3598         and later freeing it. Fixes #78638.
3599
3600 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3601
3602         * icall.c (mono_class_get_throw): Revert over-zealous error
3603         throwing, the caller for mono_class_get_throw will cope with
3604         errors when classes are not properly initialized already.
3605
3606         The code still copes with loader exceptions though.
3607
3608         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3609         
3610 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3611
3612         Fixes the `make run1' version of RuntimeAbort (to be commited,
3613         source is in Bugzilla).
3614         
3615         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3616         FALSE on class loading failure instead of returning true.
3617
3618         * class.c (mono_class_create_from_typedef): It is possible for
3619         mono_metadata_interfaces_from_typedef_full to fail if a class is
3620         not found, cope with this.
3621         
3622
3623 2006-06-14  Dick Porter  <dick@ximian.com>
3624
3625         * socket-io.c: 
3626         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3627         4.1.1
3628
3629 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3630
3631         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3632
3633 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3634
3635         * icall.c: Another fix for building mono in Visual Studio.
3636
3637 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3638
3639         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3640         
3641 2006-06-09  Martin Baulig  <martin@ximian.com>
3642
3643         * debug-mono-symfile.c: Put this back and really fix it this
3644         time. Sorry for all the trouble.
3645
3646 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3647
3648         * icall.c (mono_class_get_throw): Fix a warning.
3649         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3650         ReflectionTypeLoadException if needed. Fixes #78606.
3651
3652         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3653         (mono_class_init): Ditto.
3654
3655         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3656         ref_only exceptions.
3657         (mono_loader_clear_error): Make this work even if there is no error.
3658
3659 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3660
3661         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3662         Marshal.GetComSlotForMethodInfo using internal call.
3663
3664 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3665
3666         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3667         a function for signalling it.
3668
3669         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3670         a referenced assembly is not found.
3671
3672         * loader.c (mono_loader_error_prepare_exception): Add support for 
3673         LOADER_ERROR_ASSEMBLY. Fix formatting.
3674
3675 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3676
3677         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3678         for VARIANT marshalling on windows and increment corlib version
3679         since Variant struct was added.
3680
3681 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3682
3683         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3684         stack trace line information:
3685
3686         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3687         (Martin) when looking up B which is between A and C, return A not C.
3688
3689         Bug is #78573.
3690
3691         Thanks to Alexander Olk for tracking this down.
3692
3693 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3694
3695         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3696         
3697         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3698         avoid clobbering its value.
3699         (mono_string_to_lpstr): Fix a warning on windows.
3700
3701 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3702
3703         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3704
3705         * reflection.c loader.c: Removed references to 'dummy' flag.
3706
3707         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3708
3709         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3710         it gets GC tracking.
3711
3712         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3713         GC tracking.
3714         
3715         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3716
3717         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3718
3719         * appdomain.c: Bump corlib version.
3720
3721 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3722
3723         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3724         CEE_STIND_REF when working with object references.
3725
3726 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3727
3728         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3729         Fixes #78539.
3730
3731 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3732
3733         * loader.c (method_from_memberref): Fix argument value for
3734         mono_loader_set_error_method_load (I was passing the MonoClass
3735         instead of the class name char *).
3736
3737 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3738
3739         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3740         CEE_STIND_REF when working with object references.
3741
3742 2006-05-30  Martin Baulig  <martin@ximian.com>
3743
3744         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3745         mono_method_full_name() change and replace the ':' with a '.'
3746         here.
3747
3748 2006-05-30  Martin Baulig  <martin@ximian.com>
3749
3750         * debug-mono-symfile.c
3751         (mono_debug_symfile_lookup_location): Fix the algorithm:
3752         when looking up B which is between A and C, return A not C.
3753
3754 2006-05-29  Martin Baulig  <martin@ximian.com>
3755
3756         * mono-debug.h
3757         (MonoDebugMethodInfo): Make the typedef public.
3758         (MonoDebugSourceLocation): New public struct.
3759
3760         * mono-debug.c
3761         (mono_debug_source_location_from_address): Removed.
3762         (mono_debug_source_location_from_il_offset): Removed.
3763         (mono_debug_il_offset_from_address): Removed.
3764         (mono_debug_address_from_il_offset): Removed.
3765         (mono_debug_lookup_method): New public function.
3766         (mono_debug_lookup_source_location): New public function; replaces
3767         the old mono_debug_source_location_from_*() functions; see the
3768         inline documentation.
3769         (mono_debug_free_source_location): New public function.
3770         (mono_debug_print_stack_frame): New public function; see the
3771         inline documentation.
3772
3773         * debug-mono-symfile.c
3774         (mono_debug_find_source_location): Renamed into
3775         mono_debug_symfile_lookup_location(); only take a
3776         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3777         documentation.
3778         (mono_debug_find_method): Renamed into
3779         mono_debug_symfile_lookup_method().
3780
3781 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3782
3783         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3784         returned by mono_image_open_full ().
3785
3786         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3787         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3788         #78517.
3789
3790         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3791         #78518.
3792
3793 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3794
3795         * class.c (mono_class_from_typeref): handle missing images
3796         earlier, deals with bug #78418.   Refactor code; 
3797
3798         Fix a warning introduced in my previous commit (some stale code
3799         from before I revisited my patch).
3800
3801         * class.c (mono_class_create_from_typedef): On failure, remove the
3802         class from the MonoImage->class_cache as the class is not
3803         initialized;   Fixes the leak pointed out by Paolo.
3804
3805 2006-05-25  Dick Porter  <dick@ximian.com>
3806
3807         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3808         DeleteCriticalSections until I figure out which one may still be
3809         sometimes locked when mono_thread_cleanup is called.
3810
3811 2006-05-24  Dick Porter  <dick@ximian.com>
3812
3813         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3814         of mono_thread_manage and back into its own function, so it can be
3815         called after the finalizer thread has finished.
3816
3817         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3818
3819 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3820
3821         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3822         Fixes #78495.
3823
3824         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3825         with non-blittable elements.
3826         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3827
3828 2006-05-24  Martin Baulig  <martin@ximian.com>
3829
3830         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3831         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3832
3833         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3834         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3835         `mono_debugger_event_handler' to NULL.
3836
3837 2006-05-24  Martin Baulig  <martin@ximian.com>
3838
3839         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3840
3841 2006-05-24  Martin Baulig  <martin@ximian.com>
3842
3843         * mono-debug-debugger.h
3844         (mono_debugger_create_notification_function): Added
3845         `MonoCodeManager *' argument.
3846
3847 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3848
3849         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3850
3851 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3852
3853         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3854         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3855         implementation.
3856
3857 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3858
3859         * icall.c: precise GC support: objects can't be stored in unmanaged
3860         memory anymore, even if they are kept alive by other references: since
3861         they can move the GC needs to be able to always find them.
3862
3863 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3864
3865         * object.c: precise GC support for static fields. Support
3866         for moving GCs: write barriers and pinned allocation for interned
3867         strings.
3868
3869 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3870
3871         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3872         structure.
3873
3874 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3875
3876         * class.c, gc.c: sgen and precise GC updates.
3877
3878 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3879
3880         * marshal.h, marshal.c: added write barrier wrapper and precise type
3881         fixes.
3882
3883 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3884
3885         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3886         support.
3887
3888 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3889
3890         * reflection.c: precise and sgen GC updates.
3891
3892 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3893
3894         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3895
3896 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3897
3898         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3899
3900 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3901
3902         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3903         MONO_TYPE_OBJECT. Fixes #78462.
3904
3905 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3906
3907         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3908         and blittable types.
3909
3910 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3911
3912         * class.c (mono_class_get_exception_for_failure): Implement parts
3913         of a TODO: if the loader error is set (instead of the class
3914         error), we return a Loader exception that can be properly thrown
3915         elsewhere.
3916
3917         This was exposed by some Winforms 2.0 code that I tried to run
3918         (Atsushi pointed me to it).
3919
3920 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3921
3922         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3923         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3924         
3925         * marshal.c (emit_marshal_vtype): Add limited support for 
3926         UnmanagedType.LPStruct. Fixes #78427.
3927
3928         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3929         Applied a patch from kangaroo to fix #77523.
3930
3931 2006-05-17  Martin Baulig  <martin@ximian.com>
3932
3933         * threads.c
3934         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3935         (debugger_thread_created): Removed.
3936         (debugger_thread_exited): Removed.
3937
3938 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3939
3940         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3941
3942         * object-internals.h (MonoReflectionResource): Sync with managed version.
3943
3944 2006-05-12  Wade Berrier <wberrier@novell.com>
3945
3946         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3947
3948 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3949
3950         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3951         functions try to allocate from the image mempool.
3952
3953 2006-05-12  Dick Porter  <dick@ximian.com>
3954
3955         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3956
3957 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3958
3959         * object.c: The FieldGetter and FieldSetter methods require the full
3960         name of the class, not only the name. Fixes bug #78277.
3961
3962 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3963
3964         * loader.c (method_from_memberref): Do not pass the NULL klass to
3965         mono_loader_set_error_() methods.  Pass the non-NULL value
3966         (class). 
3967
3968 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3969
3970         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3971         (mono_assembly_close): Null out assembly->image->references after freeing it.
3972
3973         * image.c (mono_image_close): Free image->references.
3974         
3975         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3976
3977 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3978
3979         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3980         before checking if it's NULL (g_assert).
3981
3982 2006-05-10  Martin Baulig  <martin@ximian.com>
3983
3984         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3985         I thought I already killed that two months ago, but now it somehow reappeared.
3986
3987 2006-05-10  Martin Baulig  <martin@ximian.com>
3988
3989         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3990
3991 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3992
3993         * reflection.c: Allocate memory for dynamically created methods in the image
3994         mempools.
3995
3996 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3997
3998         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3999         don't use the ad pointer before checking if it's NULL (g_assert).
4000
4001 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4002
4003         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4004         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4005
4006         * marshal.c: Allocate all signatures from mempools.
4007
4008         * marshal.c: Allocate some more signatures from mempools.
4009
4010 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4011
4012         * object.c (mono_load_remote_field): The code used to provide a
4013         temporary variable for returning results if the user did not
4014         provide a result pointer.  But our temporary variable was allocted
4015         on the satck.
4016
4017         Fix calling code to always pass a result area.   Coverity ID 103.
4018
4019 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4020
4021         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4022         value, not the old. Fixes #78312.
4023         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4024
4025         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4026         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4027         per-image cache.
4028
4029         * assembly.c (mono_assembly_close): Free image->references.
4030
4031         * assembly.c (mono_assembly_names_equal): Fix a warning.
4032         (mono_assemblies_cleanup): Cleanup more global data.
4033
4034         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4035
4036         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4037         ptr_cache and image->modules.
4038
4039         * image.c (mono_image_init): Allocate array_cache lazily.
4040         
4041 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4042
4043         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4044         behavior was changed recently and has bad side effects.
4045
4046 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4047
4048         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4049         
4050         * assembly.c (mono_assembly_close): Remove a debug printf.
4051
4052         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4053
4054         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4055         to also allow for temporary references between mono_image_open ()/close ().
4056
4057         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4058
4059 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4060
4061         * marshal.c: Fix support for dynamic methods.
4062
4063         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4064
4065         * marshal.c (mono_marshal_cleanup): New cleanup function.
4066
4067         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4068         image mempools.
4069
4070         * class.c (mono_class_init): Fix leaking class->nested_classes.
4071
4072         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4073
4074         * image.c (mono_image_init): Initialize the new cashes.
4075
4076         * image.c (mono_image_close): Destroy the new cashes.
4077
4078         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4079
4080         * mempool.c (mono_mempool_strdup): New helper function.
4081
4082         * class-internals.h: Add prototype for mono_loader_unlock ().
4083
4084         * domain.c (mono_jit_info_table_find): Fix a warning.
4085         (mono_debugger_check_runtime_version): Ditto.
4086
4087         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4088         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4089         functions to these modules.
4090
4091         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4092         metadata modules.
4093         
4094         * marshal.c (mono_free_bstr): Fix a warning.
4095
4096         * assembly.c (mono_assembly_open_full): Fix another small leak.
4097
4098         * object.c: Fix some unload leaks in the remoting code.
4099
4100         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4101         function.
4102
4103         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4104
4105         * reflection.c: Fix some unload leaks in dynamic assemblies.
4106
4107 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4108
4109         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4110         * marshal.h: Add BSTR support on Win32
4111         * icall.c: Add BSTR icalls
4112         * metadata.h: Add BSTR enums
4113
4114 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4115
4116         Work to catch the crash from #76795 and turn it into an
4117         exception.   As I stubbed out pieces of the VisualBasic support,
4118         I found a number of places where the code was failing and I added
4119         checks to those places. 
4120         
4121         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4122         function return a status code.  If we fail to parse the signature
4123         from mono_metadata_parse_generic_inst, return FALSE.
4124
4125         * loader.c (mono_get_method_from_token): If we fail to load the
4126         method (mono_class_get) return NULL.   
4127
4128         * (method_from_memberref): Return NULL if we are unable to parse
4129         the method signature
4130
4131         (mono_loader_error_prepare_exception): Since we now use the
4132         loader_error flag internally to stop processing, and obtaining
4133         exceptions that might be thrown will walk this code path the
4134         proper way of going from a MonoLoaderError into a
4135         MonoException was convoluted.   This new routine encapsulates the
4136         process of turning the error into an exception and *clearing* the
4137         error afterwards.
4138         
4139 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4140
4141         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4142         with missing assemblies), and to cope with:
4143
4144                 * Missing fieldref from a non-existing assembly.
4145                 * Missing methodref from a non-existing assembly.
4146
4147         The first batch of work to address *some* of the issues from 76661.
4148         
4149         * object.c (mono_class_create_runtime_vtable): If we fail to
4150         initialize the class raise the exception here. 
4151
4152         * metadata.c (mono_class_get_overrides_full): If any methods fail
4153         to load return the failure to the caller.
4154
4155         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4156         flagging assemblies that failed to load.   
4157
4158         Do not crash if we are unable to load the assembly.
4159
4160         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4161         assemblies. 
4162
4163         * loader.c (mono_loader_set_error_type_load): Change the
4164         convention to always pass unallocated strings, so we make our own
4165         copies (I know our own code had duplicated strings before, but
4166         this keeps the normal conventions).
4167         (method_from_memberref): Call mono_loader_set_error_method_load
4168         for all possible failures of loading the class. 
4169         Remove assert, turn into a loader error.
4170
4171         (mono_loader_error_to_exception): Move this routine from mini
4172         (mini_loader_error_to_exception) there was no need to have that in
4173         mini. 
4174
4175         * class.c (mono_class_from_typeref): If we were not able to load
4176         the assembly with mono_assembly_load_reference, call the
4177         mono_loader_set_error_type_load to register the problem.
4178
4179         (mono_class_setup_fields): If we fail to load the type from
4180         mono_metadata_parse_type_full, call mono_class_set_failure and
4181         break from the loop.
4182
4183         If class->exception_type is set, we do not layout the fields as
4184         that might crash the runtime, and instead return (from breaking
4185         from the previous loop).
4186
4187         (mono_class_setup_vtable): This now returns a boolean indicating
4188         whether the table was properly setup.   The decision is driven by
4189         mono_class_get_overrides_full which might run into non-existing
4190         methods. 
4191         
4192         (mono_class_init): Returns TRUE on success or FALSE if there was a
4193         problem in loading the type (incorrect assemblies, missing
4194         assemblies, methods, etc).
4195
4196         When we call mono_class_setup_fields we also check for a potential
4197         error inside this call (either a class exception or a general
4198         loader exception).
4199
4200         (mono_class_create_from_typedef): If the parent fails to load
4201         (calling mono_class_get_full) return NULL.
4202         
4203         ** Important **
4204
4205         calls to mono_metadata_parse_type_full should be checked
4206         everywhere and set the mono_class_set_failure
4207         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4208
4209         The current patch checks the places where my manually constructed
4210         tests show the errors are showing up, but we should do it
4211         everywhere. 
4212
4213         ** Important2 **
4214
4215         mono_class_init return values should be tested everywhere, like
4216         the previous case this is something that we should audit
4217         everywhere and not only on the cases exposed by the tests I
4218         created. 
4219
4220 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4221
4222         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4223         boolean parameter and instead pass the information on `options'
4224         parameter (FileOptions).
4225
4226         * icall.c: Register the new signature for MonoIO.Open.
4227
4228         * debug-helpers.c (dis_one): Trying to understand how coverity
4229         works.  Fix Run 5, item 78.
4230
4231 2006-04-26  Dick Porter  <dick@ximian.com>
4232
4233         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4234         dereference.
4235
4236 2006-04-25  Martin Baulig  <martin@ximian.com>
4237
4238         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4239
4240         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4241         debugger_thread_created().
4242         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4243         special way.
4244         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4245         (mono_debugger_finalize_threads): New function; undo the effects
4246         of mono_debugger_init_threads().
4247         (mono_debugger_create_all_threads): Removed.
4248
4249 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4250
4251         * image.c (mono_image_close): Tidy up trace messages.
4252
4253         * assembly.c (mono_assembly_close): Ditto.
4254
4255         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4256         no longer references an already freed assembly. Fixes #78168.
4257
4258 2006-04-21  Dick Porter  <dick@ximian.com>
4259
4260         * threads.c (mono_thread_detach): Fix reference counting when
4261         detaching threads.
4262
4263 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4264
4265         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4266         #78155.
4267
4268 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4269
4270         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4271         (mono_type_to_stind): Ditto.
4272
4273         * marshal.c: Use the new helper functions to simplify code.
4274
4275         * image.c (mono_image_close): Add some code for help debug assembly unloading
4276         problems.
4277
4278         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4279         image mempool.
4280
4281         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4282         assembly was already loaded in another appdomain. Fixes #78083.
4283
4284 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4285
4286         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4287         referenced assemblies.
4288         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4289
4290         * domain.c (mono_domain_free): Add a trace message.
4291
4292         * appdomain.c (add_assemblies_to_domain): Ditto.        
4293
4294         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4295         field.  
4296
4297 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4298
4299         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4300
4301 2006-04-12  Martin Baulig  <martin@ximian.com>
4302
4303         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4304         `USE_INCLUDED_LIBGC'.   
4305
4306 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4307
4308         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4309         the patch contains ../ and a small directory name later. Hopefully fixes
4310         #78035.
4311
4312 2006-04-10  Martin Baulig  <martin@ximian.com>
4313
4314         Clean up the debugger's thread-handling code.
4315
4316         The debugger's thread-handling code has been moved from
4317         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4318         over the `threads' hash, keep track of exiting threads and also
4319         use proper locking.
4320
4321         We can now debug XSP and XSP based applications with the debugger.
4322
4323         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4324
4325         * threads.h
4326         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4327         (mono_install_thread_callbacks): Likewise.      
4328
4329         * threads.c (mono_thread_callbacks): Removed.
4330         (debugger_thread_created, debugger_thread_exited): New static functions.
4331         (start_wrapper): Call debugger_thread_created().
4332         (thread_cleanup): Call debugger_thread_exited().
4333         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4334         (mono_debugger_init_threads): New public function.
4335         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4336         iterate directly over the `threads' hash and also use proper locking.
4337
4338         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4339
4340         * mono-debug-debugger.h
4341         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4342
4343 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4344
4345         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4346         argument type=array. Fixes #78057.
4347
4348 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4349
4350         * culture-info-table.h : regenerated. Fixed bug #69652.
4351
4352 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4353
4354         * loader.c metadata.c: Reapply a variant r59116.
4355         
4356         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4357
4358         * class.c (mono_class_setup_interface_offsets): New internal function.
4359
4360         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4361         interfaces too. Fixes #77398.
4362
4363         * reflection.c (encode_cattr_value): Add support for 
4364         parameter type=object, argument type=array.
4365         (load_cattr_value): Ditto. Fixes #77916.
4366
4367         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4368         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4369
4370         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4371         a byval char array and CharSet is Ansi.
4372
4373         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4374
4375 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4376
4377         * metadata.c: Add some locking comments.
4378         
4379         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4380         mempool.
4381         (mono_metadata_free_method_signature): Don't free the signature itself.
4382
4383         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4384
4385         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4386         reference the same MonoImage.
4387         (mono_assembly_load_from_full): Add an assert.
4388
4389 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4390
4391         * image.c (mono_image_close): Don't put the image we are about to free into the
4392         loaded_images_guid_hash.
4393
4394         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4395         to reduce code duplication.
4396
4397         * marshal.c: Register the native functions called by this module as icalls, to
4398         somewhat centralize the creation of MonoMethodSignature's.
4399
4400         * loader.c (mono_method_signature): Add a cache for method signatures.
4401
4402         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4403         the parameter attributes of a method.
4404         (mono_metadata_parse_method_signature_full): Refactored the computation of
4405         parameter attributes into a separate function. Also avoid one allocation in
4406         most cases.
4407
4408         * assembly.c (mono_assembly_close): Ditto.
4409
4410         * image.c (mono_image_close): Log trace messages with INFO level.
4411
4412         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4413
4414         * image.c reflection.c: Correct reference counting of image modules.
4415         
4416         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4417         of this function from the image mempool.
4418         
4419         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4420         to allow more cached types to be used.
4421
4422         * mono-debug.c (mono_debug_add_method): Appled patch from
4423         David S. Miller  <davem@sunset.davemloft.net>: Access 
4424         minfo->lexical_blocks[] entry elements using read32().
4425
4426 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4427
4428         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4429         methods as it is allocated from the mempool.
4430
4431         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4432         image mempool.
4433
4434         * metadata-internals.h: Add comments describing the reference counting scheme
4435         used for MonoImage and MonoAssembly.
4436
4437         * image.c assembly.c reflection.c: Rework reference counting of images and 
4438         assemblies so they are freed when the runtime is shut down. Free some 
4439         additional memory structures when an image is unloaded.
4440         
4441 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4442
4443         * class.c loader.c reflection.c: Allocate more data structures in
4444         the image mempool.
4445
4446 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4447
4448         * icall.c
4449         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4450         build on pre glib 2.4 systems.
4451
4452 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4453
4454         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4455
4456         * icall.c: Fix some warnings.
4457
4458 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4459
4460         * culture-info-table.h : regenerated.
4461
4462 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4463
4464         * threads.c, object-internals.h, verify.c: changed the culture caching
4465         code to use a normal MonoArray for storage so the GC can keep track of
4466         them easily. Fixed bits of the cache logic, too and simplified the
4467         code.
4468
4469 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4470
4471         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4472         thread for non-Boehm GCs.
4473
4474 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4475
4476         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4477         needed to keep track of the data for static fields.
4478
4479 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4480
4481         Fix #75172
4482         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4483         for interface classes.  Use 'num_methods' instead.
4484         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4485         before using '->vtable_size' field.
4486
4487 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4488
4489         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4490         doesn't contain managed pointers, so use a normal hashtable.
4491
4492 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4493
4494         * reflection.c, class-internals.h, domain.c: fixed handling of types
4495         used as values for objects in custom attributes (bug #77915):
4496
4497 2006-03-24  Martin Baulig  <martin@ximian.com>
4498
4499         * class.c (mono_class_setup_fields): Added support for generic
4500         instances; fixes #77580.
4501
4502 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4503
4504         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4505
4506 2006-03-24  Dick Porter  <dick@ximian.com>
4507
4508         * file-io.c (get_file_attributes): More stat macro breakage.
4509         Fixes bug 77759.
4510
4511 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4512
4513         * profiler.c: added the file=filename option in the default profiler
4514         to output the profile data to filename.
4515
4516 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4517
4518         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4519         bug #77877.
4520
4521 2006-03-22  Martin Baulig  <martin@ximian.com>
4522
4523         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4524         allocated `MonoClassField *' in `fb->handle'.
4525
4526 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4527
4528         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4529         allocate interface ID to save memory and allow better ID reuse on
4530         appdomain unload. setup_generic_vtable () removal from Martin.
4531
4532 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4533
4534         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4535         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4536         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4537         write barriers for reference stores with managed objects accessed with
4538         C structures in the runtime and in embedding programs.
4539
4540 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4541
4542         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4543         'interface_id' and 'max_interface_id' fields of MonoClasses
4544         representing open generic types.
4545
4546 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4547
4548         * object.h, object.c, icall.c: added functions to deal with
4549         storing valuetypes that contain references in managed objects.
4550         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4551         fixes and comments around uses of mono_array_addr ().
4552
4553 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4554
4555         * object.h, icall.c, monitor.c: object.GetHashCode ()
4556         implementation that supports the moving garbage collector.
4557
4558 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4559
4560         * icall.c, threads-types.h, threads.c: implemented finalizer for
4561         LocalDataStoreSlot.
4562
4563 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4564
4565         * metadata.c (mono_type_size): Add a fixme.
4566         (mono_type_stack_size): Ditto.
4567
4568         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4569         'type_forwarders' field.
4570
4571         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4572         attribute from net 2.0.
4573
4574         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4575         from class.c.
4576
4577         * class.c (mono_class_setup_fields): Fix a warning.
4578         
4579         * class.c (mono_class_from_name): Add support for assemblyref entries
4580         in the EXPORTEDTYPE table.
4581
4582         * reflection.c: Add support for handling type forwarders under net 2.0.
4583
4584         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4585         
4586 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4587
4588         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4589         overwriting entries in ModuleBuild->types, also clean up the code
4590         a little. Fixes #77774.
4591
4592 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4593
4594         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4595         load friend assembly info when present.
4596
4597 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4598
4599         Fix crasher on gtest-158.cs.
4600         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4601         the return value if the MonoClass we want is yet in an
4602         inconsistent state.
4603         * class.c (mono_class_create_from_typedef): Add an comment
4604         explaining an order dependency between mono_class_setup_parent and
4605         mono_class_setup_mono_type.
4606
4607 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4608
4609         * class.c: documentation updates and events bug fix.
4610
4611 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4612
4613         * class.c: some cleanup, locking fixes.
4614
4615 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4616
4617         * class.c: fix the generics code to setup nested
4618         type info to the instantiated type (bug #77770).
4619
4620 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4621
4622         * marshal.c: fixed a few type correctness issues.
4623
4624 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4625
4626         * loader.c: the Set/Get/Addrtess array methods should be public.
4627
4628 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4629
4630         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4631         
4632         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4633         info->wrapper.
4634
4635 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4636
4637         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4638
4639         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4640
4641         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4642         (mono_mempool_alloc0): Ditto.
4643
4644 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4645
4646         * socket-io.c:
4647         (create_object_from_sockaddr): it was allocating 4 extra bytes
4648         for the AF_UNIX data. Fixes bug #77747.
4649
4650 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4651
4652         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4653
4654 2006-03-09  Dick Porter  <dick@ximian.com>
4655
4656         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4657         Fixes bug 76966 again.
4658
4659 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4660
4661         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4662         names from r57532
4663         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4664
4665 2006-03-07  Martin Baulig  <martin@ximian.com>
4666
4667         * object.c
4668         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4669
4670 2006-03-07  Martin Baulig  <martin@ximian.com>
4671
4672         * class.c
4673         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4674         regression introduced in r56970; see gtest-252.cs.
4675
4676         * loader.c (mono_get_method_constrained): Correctly handle generic
4677         methods; see gtest-253.cs.
4678
4679 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4680
4681         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4682
4683 2006-03-04  Martin Baulig  <martin@ximian.com>
4684
4685         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4686         compute the parent type at runtime, just like we're already doing
4687         it for interfaces.
4688
4689         * reflection.c
4690         (mono_reflection_bind_generic_parameters): Don't compute the
4691         parent type anymore.
4692
4693         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4694
4695 2006-03-04  Martin Baulig  <martin@ximian.com>
4696
4697         * mono-debug-debugger.h
4698         (mono_debugger_create_notification_function): Allocate memory at
4699         runtime and return a pointer to it.
4700
4701 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4702
4703         * assembly.c: Fix windows build.
4704         
4705         * assembly.c: Fix build.
4706
4707         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4708
4709         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4710         
4711 2006-03-03  Dick Porter  <dick@ximian.com>
4712
4713         * process.c
4714         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4715         Check parameters before dereferencing them.  Fixes Aaron's part of
4716         bug 77393.
4717
4718 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4719
4720         Fix performance regression.
4721         * loader.c (find_method_in_class): Add 'from_class' argument.
4722         Rename 'klass' argument to 'in_class'.  The signature is compared
4723         against the method in 'in_class', and the corresponding method is
4724         returned from 'from_class'.
4725         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4726         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4727         type definition and generic instantiation in parallel.
4728         (mono_get_method_constrained): Update to changes.
4729
4730 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4731
4732         * threads.c: make sure the domain is correct, too when doing
4733         mono_thread_attach ().
4734
4735 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4736
4737         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4738         windows. Fixes #77683.
4739
4740 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4741
4742         * object.h, *: introduced specific way to set elements of an array
4743         of references to be used as write barrier. Still need to audit the
4744         uses of mono_array_addr.
4745
4746 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4747
4748         * object-internals.h: New field to cache the assmebly name, patch
4749         from Tambet Ingo (tambet@ximian.com)
4750
4751 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4752
4753         * decimal.h, class-internals.h, metadata-internals.h,
4754         file-io.h: mark a few function declarations as internal, to
4755         reduce the number of PLT entries.
4756
4757 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4758
4759         * file-io.c: fix typo in warning message.
4760
4761 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4762
4763         * loader.c: on unix, lookup the "*A" version of a function
4764         if charset is auto as a second option before failing.
4765
4766 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4767
4768         * class.h (mono_class_inflate_generic_method): Revert to two
4769         argument version.
4770         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4771         (mono_class_inflate_generic_method_full): Add.
4772         * class.c (mono_class_inflate_generic_method_full): Rename from
4773         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4774         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4775         * loader.c, reflection.c: Update to changes.
4776
4777 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4778
4779         * icall.c: const fixes and small improvements.
4780
4781 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4782
4783         * threadpool.c: for asynchronous connect(), enable the same workaround
4784         for BSD 6 as for the Mac. Fixes bug #77637.
4785
4786 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4787
4788         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4789         formatted classes. Fixes #77524.
4790
4791 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4792
4793         * class.c (inflate_generic_type): Add a couple more
4794         micro-optimizations.
4795         (inflate_generic_context): Don't use the 'gmethod' from
4796         'inflate_with'.
4797         (mono_class_inflate_generic_method): If the method has generic
4798         parameters, but the passed-in context doesn't have a 'gmethod',
4799         create one.  Use the possibly simplified generic instantiation
4800         from the declaring class instead of the one passed in.
4801
4802 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4803
4804         Make generic method signature and method header handling lazy.
4805         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4806         (inflate_generic_header): Likewise.
4807         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4808         parameter to avoid inflating types.
4809         (mono_get_inflated_method): Empty out.
4810         * class.h (mono_class_inflate_generic_method): Update to changes.
4811         * loader.c (mono_get_method_from_token): Don't parse signature for
4812         generic methods, nor methods of generic classes.
4813         (mono_method_signature): Rename from 'mono_method_signature'.
4814         Inflate signature on demand.
4815         (mono_method_get_header): Inflate method header on demand.
4816         * reflection.c: Update to changes.
4817
4818 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4819
4820         * metadata.c (mono_metadata_inflate_generic_inst): If the
4821         instantiation is closed, don't bother expanding it in the new
4822         context.
4823         * class.c (inflate_generic_class): If the generic instantiation
4824         doesn't change after inflation, return the argument itself.
4825         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4826         Add bounds checks.
4827         (inflate_generic_context): If neither the generic class nor the
4828         generic method instantiations change, return the original context.
4829         * reflection.c (mono_method_get_object): Do
4830         'mono_get_inflated_method' before accessing the ->klass field.
4831         (inflate_mono_method): Don't create a MonoGenericMethod unless
4832         necessary.
4833         (inflate_method): Don't pass a constructed type as the declaring
4834         type of a methodbuilder.
4835
4836 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4837
4838         * object.c: fix memory overwrite.
4839
4840 2006-02-22  Dick Porter  <dick@ximian.com>
4841
4842         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4843         it doesn't work any more.
4844         (mono_threads_request_thread_dump): Fix unused variable warnings.
4845
4846 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4847
4848         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4849         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4850         the public header file.
4851
4852 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4853
4854         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4855
4856 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4857
4858         * class-internals.h, object.c: reduce the size of MonoVTable
4859         and store the interface_offsets array at negative offsets.
4860
4861 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4862
4863         * metadata.c: tweak table descriptors data structures to reduce
4864         size and runtime relocations.
4865
4866 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4867
4868         * marshal.c: fix some types and opcodes to be type-safe
4869         in marshaling wrappers.
4870
4871 2006-02-21  Ankit Jain  <jankit@novell.com>
4872
4873         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4874
4875 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4876
4877         * metadata.c (get_constraints): Relax debugging checks for monodis.
4878
4879 2006-02-21  Ankit Jain  <jankit@novell.com>
4880
4881         * metadata.c (mono_metadata_load_generic_params): Move the code
4882         checking for ambiguous generic params from here to mono/dis/get.c
4883         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4884
4885 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4886
4887         Fix assertion triggered when compiling nemerle.
4888         * class.c (mono_get_shared_generic_inst): Rename from
4889         get_shared_inst and make non-static.
4890         * loader.c (mono_get_shared_generic_method): New.  Used to create
4891         the MonoGenericContext-equivalent of a MonoGenericContainer.
4892         (mono_get_method_from_token): Initialize the 'context' field of
4893         the created MonoGenericContainer.
4894         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4895         * metadata.c (get_constraints): Add sanity check.
4896         * class-internals.h: Add new internal methods.
4897
4898         * reflection.c (verify_safe_for_managed_space): New sanity check.
4899         Currently checks that owner-less generic parameters aren't allowed
4900         in managed space.
4901         (mono_type_get_object): Use it.
4902         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4903         that are now in mono_type_get_object.
4904         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4905
4906 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4907
4908         * metadata.c (mono_type_create_from_typespec): Rename from
4909         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4910         argument and caching of types in the generic container.
4911         (unwrap_arrays, find_generic_param): Remove.
4912         * metadata-internals.h: Update.
4913         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4914
4915 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4916
4917         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4918
4919         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4920         return values. Fixes #77581.
4921
4922         * class.c (mono_fnptr_class_get): Switch name and name_space.
4923
4924         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4925         classes and add support for [In, Out] attributes.
4926         (mono_marshal_free_asany): Ditto. Fixes #77524.
4927
4928 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4929
4930         * class.c (mono_class_from_generic_parameter): Make more robust to
4931         incomplete MonoGenericContainers from monodis.
4932
4933 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4934
4935         * class-internals.h: added some more exception types.
4936         * class.c, metadata.c: added a few checks to handle missing
4937         types.
4938
4939 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4940
4941         Use owner-less generic-params some more.
4942         * class.c (my_mono_class_from_generic_parameter): Remove.
4943         (mono_class_from_generic_parameter): Handle null image,
4944         param->name and param->owner.
4945         (mono_class_from_mono_type): Update.
4946         (mono_class_create_from_typespec): Remove 'container' parameter.
4947         If that parameter is non-null, the result is always inflated by
4948         'mono_class_get_full' anyway.
4949         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4950         parameter.
4951         (mono_class_get_full): Update.
4952
4953         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4954         instance is not open, don't bother inflating.
4955         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4956         parse metadata for inflated classes.
4957         (_mono_class_get): Change GenericContext* parameter to
4958         GenericContainer*.
4959         (mono_class_create_from_typespec): Likewise.  Simplify, and
4960         implement trivially.  All the cases are handled in
4961         mono_class_from_mono_type.  Don't inflate returned class.
4962         (mono_class_get_full): Delegate GENERICINST optimization to
4963         inflate_generic_type.
4964         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4965
4966 2006-02-16  Dick Porter  <dick@ximian.com>
4967
4968         * socket-io.c (create_object_from_sockaddr): Fix typo.
4969         (create_sockaddr_from_object): Check array lengths before
4970         potentially accessing items off the end.
4971         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4972         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4973         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4974         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4975         length checks to avoid wraparound overflows.
4976         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4977         contents of the array of sockets
4978         (hostent_to_IPHostEntry2)
4979         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4980         Check return value of inet_ntop ().
4981         (addrinfo_to_IPHostEntry): Fix typo
4982
4983 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4984
4985         Type metadata parsing doesn't use generic-instantiation information.
4986         * metadata.c (mono_metadata_parse_array_full): Change
4987         MonoGenericContext* parameter to MonoGenericContainer*.
4988         (mono_metadata_parse_type_full): Likewise.
4989         (mono_type_create_from_typespec_full): Likewise.
4990         (mono_metadata_parse_mh_full): Likewise.
4991         (mono_metadata_parse_generic_inst): Likewise.
4992         (do_mono_metadata_parse_generic_class): Likewise.
4993         (do_mono_metadata_parse_type): Likewise.
4994         * metadata-internals.h: Update to changes.
4995         * class.c (mono_class_find_enum_basetype): Likewise.
4996         (mono_class_setup_fields): Likewise.
4997         (mono_class_create_from_typespec): Likewise.
4998         * loader.c (method_from_methodspec): Likewise.
4999         (mono_get_method_from_token): Likewise.
5000         (mono_method_get_header): Likewise.
5001
5002 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5003
5004         * marshal.c: handle additional GENERICINST case (patch from
5005         Thong Nguyen <tum@veridicus.com>).
5006         Fix a few cases where LDIND_I/STIND_I was used for references.
5007
5008 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5009
5010         * reflection.c (mono_reflection_get_token): Remove unused variable.
5011
5012 2006-02-16  Martin Baulig  <martin@ximian.com>
5013
5014         * reflection.c (mono_reflection_get_token): Add support for fields
5015         in instantiated generic types.
5016
5017         * icall.c
5018         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5019
5020 2006-02-15  Martin Baulig  <martin@ximian.com>
5021
5022         * icall.c
5023         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5024         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5025         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5026         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5027
5028 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5029
5030         * class.c, metadata.c, metadata.h, object.c, icall.c,
5031         marshal.c: changed mono_type_get_underlying_type () to do
5032         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5033         Fixed handling of instantiated generic valuetypes (bug #75479).
5034
5035 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5036
5037         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5038         Delegate to mono_metadata_decode_value, and work on the returned value.
5039
5040         * icall.c (ves_icall_MonoType_GetGenericArguments):
5041         Add consistency check here too.
5042         
5043 2006-02-15  Ankit Jain  <jankit@novell.com>
5044
5045         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5046         char/short etc.
5047
5048 2006-02-15  Ankit Jain  <jankit@novell.com>
5049
5050         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5051         signed values, used only for representing lower bounds of arrays.
5052         (mono_metadata_parse_array_full): Use new
5053         mono_metadata_decode_signed_value to decode lower bounds.
5054
5055 2006-02-14  Martin Baulig  <martin@ximian.com>
5056
5057         * reflection.c
5058         (mono_reflection_get_token): Support "MonoGenericMethod" and
5059         "MonoGenericCMethod" and allow generic instances / methods.
5060
5061 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5062
5063         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5064         to obtain the terminal size using an ioctl.
5065
5066         * object.c (mono_nullable_init): Revert this as nullable reference
5067         types are not valid.
5068         (mono_nullable_box): Ditto.
5069
5070 2006-02-09  Dick Porter  <dick@ximian.com>
5071
5072         * threads.c (mono_thread_detach): Drop a reference to the thread
5073         we're detaching.
5074
5075 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5076
5077         * object.c (mono_nullable_init): Handle nullable reference types.
5078         (mono_nullable_box): Ditto. Fixes #77446.
5079
5080 2006-02-07  Martin Baulig  <martin@ximian.com>
5081
5082         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5083
5084 2006-02-07  Ankit Jain  <jankit@novell.com>
5085
5086         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5087         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5088         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5089         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5090         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5091         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5092
5093 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5094
5095         * class.c (mono_class_create_generic): Set type_token as well.
5096
5097         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5098         compatible with MS.
5099
5100 2006-02-02  Martin Baulig  <martin@ximian.com>
5101
5102         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5103         has never been used so far.
5104
5105 2006-02-02  Martin Baulig  <martin@ximian.com>
5106
5107         * mono-debug-debugger.h: Changed comment at the top of this file;
5108         the header is not installed, but it's safe to #include it from
5109         within the JIT.
5110
5111         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5112         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5113
5114 2006-02-02  Martin Baulig  <martin@ximian.com>
5115
5116         * mono-debug.h
5117         (MonoSymbolTable): Removed the `metadata_info' field.
5118
5119         * mono-debug.c
5120         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5121
5122         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5123         (mono_debugger_add_builtin_types): Removed.
5124         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5125         (mono_debugger_create_notification_function): We now operate on a
5126         pre-allocated area; take a `gpointer' and return `void'.
5127
5128         * mono-debug-debugger.c
5129         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5130         (mono_debugger_add_builtin_types): Removed.
5131
5132 2006-02-02  Martin Baulig  <martin@ximian.com>
5133
5134         * threads.c (mono_debugger_create_all_threads): New public method.
5135
5136 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5137
5138         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5139         breaks on several platforms.
5140
5141 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5142
5143         * assembly.c: the VS.NET build doesn't supply default values for
5144         MONO_ASSEMBLIES and MONO_CFG_DIR.
5145
5146 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5147
5148         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5149         helper function.
5150
5151         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5152
5153         * loader.c (method_from_memberref): Fix a warning.
5154
5155         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5156
5157         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5158         with explicit layout. Fixes #77433.
5159
5160 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5161
5162         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5163         max_interface_id is initialized before using it. Fixes #77398.
5164         (ves_icall_Type_GetInterfaces): Ditto.
5165
5166 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5167
5168         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5169         allocate memory for parameter attributes when parsing memberref
5170         signatures.
5171         * loader.c (mono_loader_set_error_method_load): Don't warn.
5172         (method_from_memberref): Ensure MissingMethodException gets thrown
5173         if method is not found.  Make warning more informative.
5174
5175 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5176
5177         Fix #77397
5178         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5179         return true if is byref.
5180         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5181         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5182         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5183
5184 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5185
5186         Fix tests/find-method.2.il
5187         * loader.c (find_method, find_method_in_class): Remove is_inflated
5188         argument.  Revert 2006-01-18 change.
5189         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5190         is generic, search for method in its generic definition.
5191         * class.c (mono_class_setup_vtable_general): Print generic
5192         arguments of generic types in debugging printf.
5193
5194 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5195
5196         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5197
5198         * threads.c (mono_threads_request_thread_dump): New helper function.
5199
5200 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5201
5202         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5203
5204 2006-01-25  Ankit Jain  <jankit@novell.com>
5205
5206         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5207         move definition to ..
5208         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5209         
5210 2006-01-25  Ankit Jain  <jankit@novell.com>
5211             Raja R Harinath  <rharinath@novell.com>
5212
5213         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5214         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5215         as necessary.
5216
5217 2006-01-25  Martin Baulig  <martin@ximian.com>
5218
5219         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5220         `MonoDebuggerThread' into debug-debugger.c.
5221
5222 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5223
5224         * profiler.c: fix printing of data.
5225
5226 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5227
5228         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5229           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5230
5231 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5232
5233         * object.c: fix deadlock related to string interning.
5234
5235 2006-01-23  Martin Baulig  <martin@ximian.com>
5236
5237         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5238
5239         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5240
5241 2006-01-23  Martin Baulig  <martin@ximian.com>
5242
5243         * mono-debug.h: Moved the prototypes of some functions which are
5244         used by the JIT here from mono-debug-debugger.h.
5245
5246 2006-01-21  Martin Baulig  <martin@ximian.com>
5247
5248         * Makefile.am: Don't install mono-debug-debugger.h.
5249
5250 2006-01-21  Martin Baulig  <martin@ximian.com>
5251
5252         * mono-debug-debugger.h: Enforce the private status of this header
5253         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5254         Moved some stuff from mono-debugger-jit-wrapper.h here.
5255
5256 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5257
5258         * class.c (mono_class_from_typeref): Add a sanity test to help
5259         catch lack of assembly load/search hooks.
5260
5261 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5262
5263         * marshal.c (emit_struct_conv): Relax the fields with same offset
5264         check even more. Fixes #77230.
5265
5266 2006-01-18  Martin Baulig  <martin@ximian.com>
5267
5268         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5269         argument; if false, we compare the uninstantiated signatures.
5270         (method_from_memberref): Compare the uninstantiated signatures;
5271         fixes #76417.
5272
5273 2006-01-18  Robert Jordan  <robertj@gmx.net>
5274
5275         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5276         Clear the weak link. Fixes bug #77170.
5277
5278         * gc.c (mono_gchandle_free):
5279         Reflect *-gc.c changes (tiny optimization).
5280
5281 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5282
5283         * metadata.c (mono_metadata_signature_dup): Applied patch from
5284         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5285         Fixes #77288.
5286
5287 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5288
5289         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5290         marshalling from native to managed code. Fixes #77230.
5291
5292 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5293
5294         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5295         connect. Fixes bug #77020.
5296
5297 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5298
5299         * class.c: fixed id assignement for nested interfaces (bug #77275).
5300         Added also better info for --print-vtable debugging.
5301
5302 2006-01-12  Martin Baulig  <martin@ximian.com>
5303
5304         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5305         interfaces on-the-fly; fixes #76625.
5306
5307         * class-internals.h
5308         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5309         don't need that anymore.
5310
5311 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5312
5313         * socket-io.c
5314         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5315         To avoid initing the nested_classes when not needed I turned the
5316         PeerCredData as a toplevel internal class, as it has to be shared
5317         anyways. 
5318
5319         Fixes the CASA issue.
5320
5321 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5322
5323         * domain.c: Accessors for MonoJitInfo
5324
5325         * profiler-private.h: Add jitinfo to the end jit hook
5326
5327         * profiler.[ch]: Define new hooks, called after jitting which give
5328         the MonoJitInfo that was compiled
5329
5330 2006-01-10  Martin Baulig  <martin@ximian.com>
5331
5332         * class.c (mono_class_setup_events): Add support for generic
5333         classes; fixes #76440.
5334
5335 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5336
5337         Fix #77160.
5338         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5339         on passed-in method.
5340
5341 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5342
5343         * object.c (mono_runtime_invoke_array): Add Nullable support.
5344
5345         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5346
5347 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5348
5349         * file-io.c: Don't consider sockets as directory and avoid an endless
5350         loop. Fix bug #76966.
5351
5352 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5353
5354         * object.c (mono_nullable_init): New helper function.
5355         (mono_nullable_box): Ditto.
5356
5357         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5358
5359         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5360
5361         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5362         
5363 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5364
5365         * class.c (mono_class_is_assignable_from): Make T assignable to 
5366         Nullable<T>.
5367
5368 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5369
5370         * appdomain.c: Bump corlib version to 46.
5371         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5372         serialization purpose) and changed ves_icall_System_Reflection_
5373         Assembly_get_code_base signature to accept a boolean (to escape, or 
5374         not, the assembly code base).
5375
5376 2005-12-23  Dick Porter  <dick@ximian.com>
5377
5378         * icall.c: 
5379         * threads-types.h: 
5380         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5381         CreateEvent icall now returns "created" boolean parameter.
5382
5383 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5384
5385         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5386         #76967.
5387
5388         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5389         when attr_klass is an interface. Fixes #77045.
5390
5391 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5392
5393         * marshal.c (emit_struct_conv): Fix previous patch.
5394         
5395         * marshal.c (emit_struct_conv): Add a check for fields with the same
5396         offset.
5397
5398 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5399
5400         Fix regression in Mono.C5.
5401         * class.c (mono_class_create_generic): If 'klass' is an interface
5402         set up the interface offsets.
5403         (mono_class_is_assignable_from): Don't throw away generic arguments.
5404
5405 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5406
5407         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5408         type parameters.
5409
5410 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5411
5412         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5413         dead store.
5414         (do_mono_metadata_parse_generic_class): Don't pass the current
5415         generic context when parsing the type being instantiated: it
5416         cannot use it, anyway.
5417
5418         * loader.c (method_from_memberref): Don't inflate a signature if
5419         it doesn't contain any type parameters.
5420
5421 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5422
5423         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5424
5425 2005-12-14  Martin Baulig  <martin@ximian.com>
5426
5427         * class.c
5428         (mono_type_get_name_recurse): Don't return null for type
5429         parameters and open generic classes.
5430         (mono_class_setup_methods): Don't exclude generic instances.
5431         (mono_get_unique_iid): Use different IDs for different
5432         instantiations of the same generic type.
5433         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5434         open generic instances; create a normal vtable for closed generic
5435         instances.
5436         (mono_class_setup_vtable_general): We're now also called for
5437         closed generic instances.
5438
5439         * reflection.c
5440         (mono_reflection_bind_generic_parameters): Correctly use
5441         mono_metadata_lookup_generic_inst() everywhere.
5442
5443 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5444
5445         * object.c (mono_class_create_runtime_vtable): Call 
5446         mono_class_setup_vtable ().
5447
5448         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5449         function.
5450         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5451         #76959.
5452
5453         * loader.c (mono_loader_set_error_type_load): Print the type load
5454         warnings to the console so they are more visible to the user.
5455         (mono_loader_set_error_method_load): Ditto.
5456
5457         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5458         is still broken.
5459         
5460         * reflection.c (ensure_runtime_vtable): Fix build.
5461
5462         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5463         doesn't work in all cases.
5464
5465 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5466
5467         * object.c (mono_array_new_full): Treat a single dimensional array
5468         with 0 lower bounds as an szarray. Fixes #76973.
5469
5470         * reflection.c (custom_attr_visible): Really fix this.
5471
5472 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5473
5474         * reflection.c (custom_attr_visible): Allow nested public attributes
5475         as well.
5476
5477         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5478         interface check.
5479
5480 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5481
5482         * class.c (set_generic_param_owner): Delete.
5483         (mono_class_create_from_typedef): Don't set ->owner field of
5484         generic parameters to "param containers" of enclosing classes.
5485         * reflection.c (mono_reflection_initialize_generic_parameter):
5486         Likewise.
5487
5488 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5489
5490         * reflection.c (custom_attr_visible): Fix build.
5491
5492 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5493
5494         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5495         private attributes.
5496         
5497         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5498         handling of null parameter defaults.
5499
5500 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5501
5502         * class.c (mono_class_from_generic_parameter): Don't set
5503         klass->generic_container.
5504         (my_mono_class_from_generic_parameter): Likewise.
5505
5506 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5507
5508         * reflection.c (load_public_key): Fix a warning.
5509         (method_encode_code): Fix unaligned accesses.
5510
5511 2005-12-07  Martin Baulig  <martin@ximian.com>
5512
5513         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5514
5515         * reflection.c
5516         (write_generic_param_entry): Encode our custom attrs.
5517
5518         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5519
5520 2005-12-07  Martin Baulig  <martin@ximian.com>
5521
5522         * reflection.c (encode_new_constraint): Removed; we don't use the
5523         `NewConstraintAttribute' anymore.
5524
5525 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5526
5527         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5528         not fire a TypeResolve event when Assembly.GetType () is called.
5529
5530 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5531
5532         Beginning of support for nullable types in the runtime. Parts of
5533         this patch are from Martin.
5534
5535         * appdomain.c (MONO_CORLIB_VERSION): Bump
5536
5537         * domain.c (mono_init_internal): get the nullable type
5538
5539         * class.c (mono_class_is_nullable): New method
5540         (mono_class_get_nullable_param): New mehod
5541         (mono_class_create_generic): In types T? set cast_class to T
5542
5543         * class-internals.h (MonoDefaults): new nullable default class
5544         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5545         new methods.
5546
5547 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5548
5549         * metadata.c (select_container): New.  Refactor code to select the
5550         appropriate GenericContainer given the type of generic parameter
5551         we are looking for.
5552         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5553         not a MonoGenericContext.  Use select_container.  Update parameters.
5554         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5555         and MONO_TYPE_MVAR.
5556         (unwrap_arrays): Remove duplicate tests.
5557         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5558         generic instantiated class to find any arguments that are generic
5559         parameters.
5560         (mono_type_create_from_typespec_full): Use find_generic_param to
5561         avoid evicting some generic instantiations from the typespec
5562         cache.
5563
5564 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5565
5566         * reflection.c: fixed writing of doubles on ARM FPA.
5567
5568 2005-12-02  Robert Jordan  <robertj@gmx.net>
5569
5570         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5571
5572 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5573
5574         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5575         least on SUSE 10 they are not the same (on debian, they are just the
5576         same thing).
5577
5578 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5579
5580         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5581         DeclaringType for VARs and MVARs.
5582         * class.c (set_generic_param_owner): Fix initialization of owner
5583         fields.
5584
5585 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5586
5587         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5588
5589 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5590
5591         * threadpool.c: workaround for a bug that shows up on the Mac:
5592         select()+connect() on a blocking socket is not like it should
5593         be, so we proceed to connect() in that case, wasting the I/O
5594         threadpool thread until connect succeedes. Fixes bug #75436.
5595
5596 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5597
5598         * threadpool.c: fix typo when setting file descriptor states.
5599
5600 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5601
5602         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5603         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5604         create a temporary signature container.
5605         (mono_metadata_parse_generic_param): Update to changes.
5606         (mono_type_create_from_typespec_full): Update to changes.
5607         * loader.c (method_from_memberref): Don't use a
5608         MonoGenericContainer while parsing a memberref signature.
5609         (method_from_methodspec): Remove dead-store of the 'container'
5610         variable.  It's overwritten before use.
5611
5612         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5613         checks tighter.
5614         (mono_metadata_parse_generic_param): Likewise.
5615         * loader.c (find_method_in_class): Does not need a
5616         MonoGenericContainer.  Use 'mono_method_signature' rather than
5617         'mono_method_signature_full'.
5618         (find_method, mono_get_method_constrained, method_from_memberref):
5619         Update to changes.
5620
5621         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5622         owner-less generic-parameters are never evicted from the typespec
5623         cache.
5624
5625         * loader.c (method_from_memberref): Don't use the current context
5626         when parsing signatures.
5627         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5628
5629         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5630         side-effects in g_assert.
5631         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5632         that we don't potentially lose information.
5633
5634 2005-11-26  Dick Porter  <dick@ximian.com>
5635
5636         * icall.c:
5637         * threads.c: icalls to implement basic (ie, not named)
5638         System.Threading.Semaphore.
5639
5640 2005-11-24  Dick Porter  <dick@ximian.com>
5641
5642         * process.c
5643         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5644         Use GetProcessId() if it's available.
5645
5646 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5647
5648         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5649
5650 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5651             Ankit Jain  <jankit@novell.com>
5652
5653         * loader.c (mono_get_method_from_token): Initialize 'method' field
5654         of all generic parameters before parsing the signature.  Remove
5655         code that "fixed"-up MVAR references.
5656
5657 2005-11-23  Ankit Jain  <jankit@novell.com>
5658
5659         * metadata.c (mono_metadata_has_generic_params):
5660         (mono_metadata_load_generic_param_constraints):
5661         (mono_metadata_load_generic_params): Move duplicate code ...
5662         (mono_metadata_get_generic_param_row): ... here. Returns the
5663         first row-id in GenericParam table for a given owner (token).
5664         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5665         prototype.
5666
5667 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5668             Ankit Jain  <jankit@novell.com>
5669
5670         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5671         comparing VARs too.
5672         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5673         type->data.generic_param only if the type is an MVAR.
5674         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5675         leak owner-less VARs and MVARs into managed space.
5676
5677 2005-11-21  Martin Baulig  <martin@ximian.com>
5678
5679         * class-internals.h
5680         (MonoMethod): Moved the `generic_container' here from
5681         `MonoMethodNormal' since we now also need it for
5682         `MonoMethodPInvoke';
5683         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5684         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5685         an union containing both `MonoMethodNormal' and
5686         `MonoMethodPInvoke'.
5687
5688         * loader.c
5689         (mono_get_method_from_token): Allow implementing generic methods
5690         as interncalls.
5691
5692         * threads.c
5693         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5694         icall.
5695
5696 2005-11-17  Dick Porter  <dick@ximian.com>
5697
5698         * icall.c: 
5699         * process.h: 
5700         * process.c: Split the Process Start_internal icall into
5701         ShellExecuteEx_internal and CreateProcess_internal, which are
5702         called depending on whether UseShellExecute is true.  Fixes bug
5703         76670.
5704
5705         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5706
5707 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5708
5709         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5710         'msize' parameters, use the information in 'mspec' instead.
5711         (emit_object_to_ptr_conv): Ditto.
5712
5713         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5714         fields out of order. Fixes #76733.
5715
5716 2005-11-17  Ankit Jain  <jankit@novell.com>
5717
5718         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5719
5720 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5721
5722         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5723           bug #76575.
5724
5725 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5726
5727         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5728         for types with non-auto layout. Fixes #76717.
5729
5730 2005-11-16  Ankit Jain  <jankit@novell.com>
5731
5732         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5733         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5734         if generic_context is null.
5735           (mono_metadata_generic_param_equal): param->owner can be null.
5736           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5737         null.
5738
5739 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5740
5741         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5742         the correct value.
5743
5744 2005-11-15  Martin Baulig  <martin@ximian.com>
5745
5746         * object.c (set_value): Use mono_class_from_mono_type() instead of
5747         the hack for generic instances; fixes #76136.
5748
5749 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5750
5751         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5752         fields.
5753
5754         * image.c (load_metadata_ptrs): Initialize the new fields.
5755
5756         * reflection.c (create_dynamic_mono_image): Ditto.
5757
5758         * reflection.c (build_compressed_metadata): Use the new fields.
5759
5760         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5761         icall.
5762
5763         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5764         icall.
5765         
5766 2005-11-15  Ankit Jain  <jankit@novell.com>
5767             Raja R Harinath  <harinath@gmail.com>
5768
5769         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5770         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5771         new per-generic_container cache if the cached MonoType's context matches
5772         the current context.
5773           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5774         to the expected context.
5775           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5776
5777 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5778
5779         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5780         we changed the signature of an icall.
5781         * icall.c: Modify to mono_double_ParseImpl return true/false 
5782         depending on the success, instead of throwing the exception. This will
5783         help us in Double.TryParse methods.
5784         
5785 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5786
5787         * marshal.c (emit_marshal_object): Throw an exception when
5788         marshalling 'object' instead of crashing. Fixes #76696.
5789
5790 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5791
5792         * class-internals.h: Add prototype for mono_type_get_full_name ().
5793
5794 2005-11-11  Dick Porter  <dick@ximian.com>
5795
5796         * threads.c (mono_thread_manage): Make sure the main thread has
5797         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5798
5799 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5800
5801         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5802         console about the missing type.
5803         (mono_loader_set_error_method_load): Ditto.
5804
5805 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5806
5807         * mono-config.c (mono_get_config_dir): Set the system defaults if
5808         none is specified.
5809
5810         * assembly.c (mono_set_dirs): New API entry point to set the
5811         assembly and the config directory in one call
5812
5813 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5814
5815         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5816         the ftnptr was created from a delegate in a domain other than the
5817         current domain. Fixes #75377.
5818
5819         * exception.h exception.c: Add mono_get_exception_not_supported ().
5820
5821 2005-11-08  Martin Baulig  <martin@ximian.com>
5822
5823         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5824
5825 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5826
5827         * security-manager.h: Added definitions to deal with strongname key 
5828         pairs bigger (and smaller) than 1024 bits.
5829         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5830         adjust wrt the public key length being used.
5831
5832 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5833
5834         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5835           Windows build (r51396-51397).
5836
5837 2005-11-03  Martin Baulig  <martin@ximian.com>
5838
5839         * class.c (mono_class_setup_vtable_general): Also add generic
5840         methods to the vtable; fixes #76581.
5841
5842 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5843
5844         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5845         sure that we lookup GetString method from the System.Text.Encoding
5846         class, not the derived class or we get an empty method.
5847
5848         Fixed class #76612.
5849
5850 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5851
5852         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5853         if it has been previously set (embedders). 
5854
5855         Make mono_set_rootdir available also on Unix.
5856
5857 005-10-24  Robert Jordan  <robertj@gmx.net>
5858
5859         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5860
5861 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5862
5863         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5864         only calls which are made to native code use this flag.
5865
5866         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5867
5868 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5869
5870         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5871         Add support for FieldBuilders.
5872
5873 2005-10-29  Martin Baulig  <martin@ximian.com>
5874
5875         * mono-debug.c
5876         (mono_debug_using_mono_debugger): New public method; returns
5877         whether we're running inside the debugger.
5878
5879 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5880
5881         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5882         for Method/Constructor/FieldBuilders.
5883
5884 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5885
5886         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5887         and fields as well.
5888
5889 2005-10-26  Martin Baulig  <martin@ximian.com>
5890
5891         * mono-debug-debugger.c
5892         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5893
5894 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5895
5896         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5897         integer to isspace.
5898
5899 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5900
5901         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5902         when passing valuetypes byref. Fixes #76502.
5903
5904 2005-10-19  Jackson Harper  <jackson@ximian.com>
5905
5906         * profiler.c: Don't put a . in front of types that are not in a
5907         namespace.
5908
5909 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5910
5911         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5912
5913 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5914
5915         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5916         #76436.
5917         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5918
5919 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5920
5921         * assembly.c metadata-internals.h icall.c: Define an additional
5922         parameter for mono_assembly_name_parse_full, so we can avoid creating
5923         S.R.AssemblyName.Version when no version info wasn't passed.
5924         
5925 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5926
5927         * class.c (mono_type_get_full_name): Reimplement method that was
5928         removed. 
5929
5930         * image.c: Some docs
5931
5932 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5933
5934         * profiler.c (output_newobj_profile): Fix printing of Total memory
5935         on x86.
5936
5937 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5938
5939         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5940
5941 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5942
5943         * threads.c: remove debug output.
5944
5945 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5946
5947         * threads.c (mono_thread_manage): Fix crashes if more than 64
5948         threads need to be aborted. Hopefully fixes #75899.
5949
5950         * assembly.c (mono_stringify_assembly_name): New helper function.
5951
5952         * class.c: Use mono_stringify_assembly_name instead of the similar
5953         static function.
5954
5955         * assembly.h assembly.c: Add support for calling a postload search 
5956         hook if an assembly cannot be loaded.
5957
5958         * appdomain.c: Register new search hooks which call the AssemblyResolve
5959         events in AppDomain. Fixes #75231
5960
5961 2005-10-07  Martin Baulig  <martin@ximian.com>
5962
5963         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5964         methods without debug info.
5965
5966 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5967
5968         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5969         wrappers.
5970
5971 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5972
5973         * file-io.c: now that we return symlinks, use lstat and, when the file
5974         is a symbolic link, stat, to get the file attributes. Also avoid the
5975         conversion to/from utf16/external.
5976
5977 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5978
5979         * class.c (mono_class_layout_fields): Compute klass->has_references
5980         correctly if an embedded valuetype is not yet initialized. Fixes
5981         #76331.
5982
5983 2005-10-04  Martin Baulig  <martin@ximian.com>
5984
5985         * metadata.c
5986         (mono_metadata_load_generic_param_constraints): New public
5987         function; splitted the constraints loading out from
5988         mono_metadata_load_generic_params().
5989
5990         * class.c (mono_class_create_from_typedef): Call
5991         mono_metadata_load_generic_param_constraints() after setting up
5992         the type and creating our parent; fixes #75329.
5993
5994 2005-10-04  Martin Baulig  <martin@ximian.com>
5995
5996         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5997         non-dynamic parent classes.
5998
5999 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6000
6001         * file-io.c : win32 build fix (ETXTBSY seems not found).
6002
6003 2005-10-04  Martin Baulig  <martin@ximian.com>
6004
6005         * reflection.c
6006         (mono_image_get_methodspec_token): Make the cache actually work;
6007         fixes #75974.
6008
6009 2005-10-04  Martin Baulig  <martin@ximian.com>
6010
6011         * class.c (mono_class_name_from_token): Removed the unneccessary
6012         `MonoGenericContext *' argument.
6013
6014 2005-10-04  Martin Baulig  <martin@ximian.com>
6015
6016         * loader.c
6017         (method_from_methodspec): Make the caching work again; fixes the
6018         performance regression from #76262.
6019
6020 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6021
6022         * file-io.c:
6023         * file-io.h:
6024         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6025         GetFileSystemEntries that performs the same work but without going
6026         into io-layer, locking, etc.
6027
6028 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6029
6030         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6031         ThreadState_Stopped as well. Fixes #76047.
6032
6033 2005-09-29  Martin Baulig  <martin@ximian.com>
6034
6035         * class.c
6036         (inflate_generic_context): If the new context has a `gmethod', set
6037         its `container' that that gmethod's `container'.
6038
6039         * metadata.c
6040         (mono_metadata_parse_generic_param): Simplify things;
6041         `generic_container = generic_context->container;' is just fine.
6042
6043         * loader.c (method_from_methodspec): Code cleanups.
6044
6045 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6046
6047         * decimal.c: fix warning (and let gcc generate correct
6048         code on ARM with optimizations).
6049
6050 2005-09-28  Martin Baulig  <martin@ximian.com>
6051
6052         * loader.c
6053         (method_from_memberref): Added `MonoGenericContext *class_context'
6054         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6055         (method_from_methodspec): If we're a memberref, use the enclosing
6056         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6057
6058 2005-09-28  Martin Baulig  <martin@ximian.com>
6059
6060         * object.c (mono_runtime_invoke_array): Added support for
6061         MONO_TYPE_GENERICINST; fixes #75917.
6062
6063 2005-09-27  Martin Baulig  <martin@ximian.com>
6064
6065         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6066         `k->byval_arg.type' to determine the actual type.
6067
6068         * loader.c (method_from_methodspec): Removed some hacks.
6069
6070 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6071
6072         * class-internals.h (mono_field_is_deleted): Do the test for
6073         rtspecialname before we check the actual name of the field. This
6074         prevents us from dereferencing a pointer into the string table,
6075         saving us from accessing a few pages
6076
6077         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6078         macros. This will allow a deadlock debugger to easily be plugged
6079         in.
6080
6081 2005-09-27  Martin Baulig  <martin@ximian.com>
6082
6083         * loader.c (method_from_methodspec): Create a "signature"
6084         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6085
6086 2005-09-27  Martin Baulig  <martin@ximian.com>
6087
6088         * class.c
6089         (inflate_generic_class): Correctly set the new context's
6090         container.
6091
6092         * loader.c
6093         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6094         instead of a `MonoGenericContext *'.
6095         (mono_method_signature_full): Take a `MonoGenericContainer *'
6096         instead of a `MonoGenericContext *'.
6097
6098         * metadata.c
6099         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6100         instead of a `MonoGenericContext *'.
6101         (mono_metadata_parse_method_signature_full): Likewise.
6102
6103 2005-09-26  Martin Baulig  <martin@ximian.com>
6104
6105         * class.c
6106         (mono_class_from_generic_parameter): Set `klass->generic_container'
6107         (mono_class_from_generic_parameter): Likewise.
6108         (mono_bounded_array_class_get): We inherit the generic container
6109         from the element class.
6110
6111         * loader.c
6112         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6113         argument rather than computing it here.
6114         (method_from_memberref): Correctly set the generic context before
6115         parsing the signature.  Fixes #75681.
6116
6117 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6118
6119         * object.c (mono_class_has_special_static_fields): Fix warnings.
6120
6121 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6122
6123         * assembly.c: Add parse_public_key function, to
6124         par the public keys. Also added mono_assembly_name_parse_full,
6125         to define it the parsed key should be freed or not.
6126         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6127         to parse a long format assembly name.
6128         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6129         private, since calling it to preserve the key requires
6130         freeing it manually.
6131         
6132 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6133
6134         * locales.c : removed HAVE_ICU part.
6135
6136 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6137
6138         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6139         field_is_special_static if the klass has no special static fields.
6140
6141         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6142         (MonoCachedClassInfo): Likewise.
6143
6144         * object.c (mono_class_has_special_static_fields): New helper function.
6145
6146 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6147
6148         * class.c (mono_class_create_from_typedef): Don't call 
6149         interfaces_from_typedef_full for enums.
6150         (mono_class_create_from_typedef): Compute the base types of enums directly
6151         without calling mono_class_setup_fields ().
6152         (mono_class_find_enum_basetype): New helper function.
6153
6154         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6155         one place inside the string heap.
6156         
6157 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6158
6159         * class.c: locking fixes, code cleanups, some docs added.
6160         Allocate some data structures in the image mempool.
6161
6162 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6163
6164         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6165         the example code.
6166         
6167 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6168
6169         * class-internals.h, class.c, reflection.c: reduce memory taken by
6170         MonoClass.
6171
6172 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6173
6174         * metadata.c, metadata.h, loader.h: documentation updates, code and
6175         API cleanups.
6176
6177 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6178
6179         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6180         the example code.
6181
6182         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6183         page faults caused by the runtime while reading metadata.
6184
6185 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6186
6187         * socket-io.c: the field names were changed 3 months ago and no one
6188         realized until bug #76077 got filed!
6189
6190 2005-09-20  Martin Baulig  <martin@ximian.com>
6191
6192         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6193
6194 2005-09-20  Martin Baulig  <martin@ximian.com>
6195
6196         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6197         write the rank into the class entry.
6198
6199 2005-09-20  Martin Baulig  <martin@ximian.com>
6200
6201         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6202
6203 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6204
6205         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6206
6207         * icall.c (custom_attrs_defined_internal): New icall.
6208
6209         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6210         function.
6211         (mono_custom_attrs_construct_by_type): New helper function.
6212
6213 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6214
6215         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6216         terminate the resulting string. Fixes #76123.
6217
6218 2005-09-16  Martin Baulig  <martin@ximian.com>
6219
6220         * mono-debug.c
6221         (mono_debug_add_method): Ignore inflated methods for the moment.
6222
6223 2005-09-14  Martin Baulig  <martin@ximian.com>
6224
6225         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6226
6227 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6228
6229         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6230         return a success/failure indication.
6231         (mono_metadata_interfaces_from_typedef_full): Ditto.
6232         (get_constraints): Ditto.
6233
6234 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6235
6236         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6237         
6238         * marshal.c (emit_marshal_array): Add support for returning string
6239         arrays from delegates. Fixes #76063.
6240
6241         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6242
6243 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6244
6245         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6246         icall.
6247
6248 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6249
6250         * reflection.c icall.c: Fix after mono_get_exception_type_load
6251         signature change.
6252
6253         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6254         (mono_assembly_load_reference): Use the new helper.
6255
6256         * class-internals.h (MonoLoaderError): New structure containing 
6257         information about type loading errors.
6258
6259         * class-internals.h loader.c: Add APIs to store per-thread loader
6260         error information.
6261
6262         * loader.c class.c: Set the loader error if needed.
6263
6264         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6265
6266 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6267
6268         * decimal.c: fixed to handle the broken ARM fp format.
6269
6270 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6271
6272         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6273         broken.
6274
6275 2005-09-06  Martin Baulig  <martin@ximian.com>
6276
6277         * domain.c (supported_runtimes): Added v2.0.50727.
6278
6279 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6280
6281         * culture-info.h: reduce the size of some structures.
6282
6283 2005-09-05  Martin Baulig  <martin@ximian.com>
6284
6285         Reflect latest API changes in the August CTP.
6286
6287         * icall.c
6288         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6289         ("MonoType.HasGenericArguments"): Removed.
6290         ("MonoMethod.BindGenericParameters"): Renamed to
6291         "MakeGenericMethod".
6292         ("MethodBuilder.BindGenericParameters"): Renamed to
6293         "MakeGenericMethod".    
6294
6295 2005-09-05  Martin Baulig  <martin@ximian.com>
6296
6297         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6298
6299 2005-09-05  Martin Baulig  <martin@ximian.com>
6300
6301         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6302
6303         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6304         generic_container is non-NULL.
6305
6306 2005-09-05  Martin Baulig  <martin@ximian.com>
6307
6308         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6309
6310         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6311
6312 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6313
6314         * reflection.c (encode_locals,
6315         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6316         for large generic types.
6317
6318 2005-09-05  Martin Baulig  <martin@ximian.com>
6319
6320         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6321
6322         * class.c (mono_dup_array_type): New public method.
6323         (mono_metadata_signature_deep_dup): New public method.
6324         (dup_type): Correctly duplicate array and function types.
6325
6326 2005-09-05  Martin Baulig  <martin@ximian.com>
6327
6328         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6329
6330         * reflection.c (get_default_param_value_blobs): Handle generic types
6331         and generic methods.
6332
6333 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6334
6335         * class.c: Fixed error reporting (method/class were inversed) for 
6336         inheritance demands.
6337         * security-manager.c|h: Added the AppDomain when calling the managed
6338         System.Security.SecurityManager.InheritanceDemand method.
6339
6340 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6341
6342         * reflection.c (encode_marshal_blob): 'marshaltype' and
6343         'marshaltyperef' are alternate sources for the custom marshaler
6344         name.
6345
6346 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6347
6348         * class.c: fix creation of array classes with rank == 1
6349         (patch by Ankit Jain <jankit@novell.com>).
6350
6351 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6352
6353         * object.c: fix check for creating the bound data for arrays vs
6354         szarrays.
6355
6356 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6357
6358         * object.c: configuration file name is now based on the executable name,
6359         not the image name. Fixes bug #75931.
6360
6361 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6362
6363         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6364         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6365
6366 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6367
6368         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6369
6370 2005-08-24  Ankit Jain  <jankit@novell.com>
6371             Raja R Harinath  <rharinath@novell.com>
6372
6373         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6374           called by it recursively.
6375           (mono_class_init): Remove special case in pending_init handling, since it's
6376           superseded by the fix to mono_class_from_typeref.
6377
6378 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6379
6380         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6381         BROKEN_THREAD_START stuff.
6382
6383 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6384
6385         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6386         trampoline.
6387
6388         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6389         
6390         * object.c (mono_delegate_ctor): Replace the original function address with
6391         a delegate trampoline.
6392
6393 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6394
6395         * icall.c: add boolean argument to base64_to_byte_array and 
6396         InternalFromBase64String to control whether a whitespace-only string
6397         is allowed (or should casue a FormatException to be thrown). We need
6398         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6399         to match the MS behaviour in both profiles.
6400         * appdomain.c: Bump corlib version.
6401
6402 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6403
6404         This patch implements a big portion of publisher policy
6405         support, used to bind assembly versions and redirect
6406         one assembly from version A to version B.
6407
6408         * assembly.c:
6409         New GSList loaded_assembly_bindings, for storing the cached
6410         assembly bindings.
6411         (assembly_binding_maps_name): New static function for checking if a 
6412         assembly binding information maps an assembly name.
6413         (mono_assembly_binding_info_free): New function for freeing
6414         assembly binding information resources.
6415         (get_publisher_policy_info): New static function for retrieving 
6416         assembly binding information from a MonoImage.
6417         (compare_versions): New static function for comparing an assembly
6418         binding information data and the version of an assembly name.
6419         (check_policy_versions): New static function for checking if an
6420         assembly binding info mapping an assembly name is valid for it.
6421         (mono_assembly_load_publisher_policy): New static function for
6422         loading the 'policy.major.minor.MyAssembly' image for an assembly
6423         with an assembly name 'aname'.
6424         (mono_assembly_bind_version): New static function for updating
6425         assembly redirection.
6426         (mono_assembly_apply_binding): New static function for applying
6427         assembly binding.
6428         (search_binding_loaded): New static function for searching 
6429         loaded assembly binding infos in the cache domain.
6430         (mono_assembly_load_full): Don't apply assembly binding for
6431         reflection only assemblies.
6432
6433         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6434         which contains information about assembly binding. Also
6435         declare signature for mono_config_parse_publisher_policy ()
6436         function, used to retrieve pub policy info.
6437         
6438         * mono-config.c:
6439         (publisher_policy_start): New static function used to parse publisher 
6440         policy config files.
6441         (publisher_policy_parser): New static MonoParseHandler containing 
6442         the functions used when parsing config files.
6443         (mono_config_parse_publisher_policy): New function for parsing
6444         publisher policy files.
6445         
6446 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6447
6448         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6449
6450         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6451
6452         * object.c (mono_get_addr_from_ftnptr): New helper function.
6453
6454         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6455
6456         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6457
6458 2005-08-19  Dick Porter  <dick@ximian.com>
6459
6460         * threads.c, threads.h, appdomain.c, appdomain.h,
6461         profiler-private.h, monitor.c, object.c, object-internals.h,
6462         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6463         store the thread ID, so it can hold a 64 bit value if needed.
6464
6465 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6466
6467         * reflection.c (mono_reflection_create_dynamic_method): Store the
6468         handle class into the method references as well so ldtoken works in
6469         dynamic methods.
6470
6471         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6472         types.
6473
6474 2005-08-19  Ankit Jain <jankit@novell.com>
6475
6476         Fix #75847.
6477         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6478           here rather than using the method signature of a arbitrary function
6479           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6480           two arguments.
6481           Hack done with Harinath.
6482
6483 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6484
6485         * threadpool.c: disable printing stack traces when we get a exception
6486         in a threadpool thread. I need to do more testing to figure out which
6487         cases actually print this. Fixes bug #75828.
6488
6489 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6490
6491         * icall.c: there might be ignored whitespace after the last '='. This
6492         fixes length computation and bug #75840.
6493
6494 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6495
6496         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6497         well. Fixes #75809.
6498
6499         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6500         #75784.
6501         
6502         * reflection.c (create_custom_attr_data): Ditto.
6503
6504 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6505
6506         * locales.c, culture-info.h : removed RegionLCIDMap.
6507         * culture-info-tables.h : regenerated.
6508
6509 2005-08-16  Martin Baulig  <martin@ximian.com>
6510
6511         * class.c (mono_type_get_name_recurse): Small fix.
6512
6513 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6514
6515         * locales.c : indentation fixie.
6516
6517 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6518
6519         * object-internals.h,
6520           locales.h,
6521           locales.c,
6522           culture-info.h,
6523           icall.c : added RegionInfo table support.
6524         * culture-info-table.h : regenerated for region support.
6525
6526 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6527
6528         * reflection.c (resolve_object): handle all kinds of MonoMethod
6529         including generic ones
6530
6531 2005-08-12  Ankit Jain <jankit@novell.com>
6532
6533         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6534           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6535
6536 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6537
6538         * process.c: Don't close a thread handle when it's NULL. This is a
6539         workaround for bug #75733.
6540
6541 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6542
6543         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6544
6545 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6546
6547         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6548
6549 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6550
6551         * threadpool.c: if a work item in the thread pool has a callback that
6552         catches a exception, don't propagate it after invoking the callback.
6553         Fixes bug #75336.
6554
6555 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6556
6557         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6558
6559         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6560
6561         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6562
6563         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6564
6565 2005-08-03  Ankit Jain  <jankit@novell.com>
6566
6567         Fix #75683.
6568         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6569           PInvoke calling convention is 0.
6570
6571 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6572
6573         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6574         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6575
6576 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6577
6578         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6579         to handle threads not started by the GC (patch by Michael Meeks
6580         <michael.meeks@novell.com>).
6581
6582 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6583
6584         * reflection.c: Make buffer used in emitting types larger for some
6585         big generic types (patch by Michal Moskal).
6586
6587 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6588
6589         * mono-debug.c: Fix some (not all) alignment problems.
6590
6591 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6592
6593         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6594         Invoke mono_image_load_from_data_full passing the refonly
6595         parameter.
6596
6597         * assembly.c
6598         (mono_assembly_open_from_bundle): Add the refonly argument, 
6599         in order to pass it to other methods it calls to.
6600         (do_mono_assembly_open): Add the refonly argument, in order 
6601         to pass it to other methods it calls to.
6602         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6603         the refonly parameter to it.
6604
6605         * image.c: Add loaded_images_refonly_hash and
6606         loaded_images_refonly_guid_hash to cache the reflection
6607         only loaded images.
6608         (mono_images_init): Initialize the hash tables used for
6609         caching the reflection only images.
6610         (load_modules): Invoke mono_image_open_full passing the refonly
6611         parameter to load the modules the correct way.
6612         (build_guid_table): Add the refonly argument, to re-build the 
6613         correct hash table.
6614         (do_mono_image_open): Added the refonly argument, in order to
6615         define it for the loaded image.
6616         (mono_image_loaded_full): New function, which receives an
6617         additional parameter to look for the image in the refonly or
6618         non-refonly section.
6619         (mono_image_loaded): Updated, using mono_image_loaded_full.
6620         (mono_image_loaded_by_guid_full): The same case that happens
6621         with mono_image_loaded_full.
6622         (mono_image_loaded_by_guid): Likewise.
6623         (register_image): Use the ref_only variable inside MonoImage
6624         to decide in which hash table store the current image.
6625         (mono_image_open_from_data_full): Rename
6626         mono_image_open_from_data to mono_image_open_from_data_full,
6627         adding the refonly argument, to define the ref_only variable 
6628         inside MonoImage.
6629         (mono_image_open_from_data): Return 
6630         mono_image_open_from_data_full.
6631         (mono_image_open_full): Rename mono_image_open to
6632         mono_image_open_full, receiving the new refonly argument,
6633         to pass it to inner methods.
6634         (mono_pe_file_open): Update this function, to open
6635         a MonoImage as a non-refonly image.
6636         (mono_image_close): Use the refonly variable inside
6637         MonoImage to remove the image from the correct caches.
6638
6639         * image.h: Add the signatures of mono_image_open_full,
6640         mono_image_open_from_data_full, mono_image_loaded_full,
6641         mono_image_loaded_by_guid_full.
6642
6643         * metadata-internals.h: Add the ref_only field to 
6644         MonoImage.
6645         
6646 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6647
6648         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6649         Fix the last behavior, which used to load the assemblies and
6650         extract MonoReflectionAssemblyName information, instead of
6651         extract it from the metadata tables. Needed for Reflection
6652         Only assemblies.
6653         
6654 2005-07-29  Martin Baulig  <martin@ximian.com>
6655
6656         * mono-debug-debugger.c
6657         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6658         not initialized.
6659
6660         * mono-debug.c
6661         (mono_debug_address_from_il_offset): Check whether we have
6662         debugging support before attempting to take the lock.
6663         (mono_debug_source_location_from_address): Likewise.
6664         (mono_debug_source_location_from_il_offset): Likewise.
6665         (mono_debug_il_offset_from_address): Likewise.
6666         (mono_debug_address_from_il_offset): Likewise.
6667
6668 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6669
6670         * class.c (mono_class_from_name_case): Add support for dynamic images.
6671         Fixes #75650.
6672
6673         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6674         for #75479.
6675
6676 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6677         
6678         * reflection.c (mono_method_get_object): Fix warning.
6679
6680 2005-07-28  Martin Baulig  <martin@ximian.com>
6681
6682         * mono-debug.c
6683         (mono_debug_add_wrapper): Also write the wrapper type.
6684
6685 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6686
6687         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6688         
6689         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6690         data indicates the class has none.
6691
6692 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6693
6694         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6695         loader lock with the debugger lock. Prevents deadlocks for beagle.
6696
6697         Beagle can now run on an smp box for a weekend without any
6698         issues. Woohoo!
6699
6700 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6701
6702         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6703         in a module. Fixes #75629.
6704
6705 2005-07-26  Martin Baulig  <martin@ximian.com>
6706
6707         * mono-debug.c (mono_debug_add_wrapper): New static method.
6708         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6709         interncall or a wrapper.
6710
6711         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6712         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6713         (MONO_DEBUGGER_VERSION): Bump to 51.
6714
6715         * mono-debug-debugger.c
6716         (mono_debugger_add_type): Removed this empty function.
6717         (mono_debugger_add_method): Likewise.
6718
6719 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6720
6721         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6722         before accessing method->slot.
6723
6724 2005-07-21  Jb Evain  <jbevain@gmail.com>
6725
6726         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6727         Fixes #75010.
6728
6729 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6730
6731         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6732         #75587.
6733
6734 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6735
6736         * image.h image.c: Add mono_image_get_guid () API function.
6737
6738 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6739
6740         There were issues when multiple threads tried to load
6741         assemblies. A deadlock was created between assemblies_mutex and
6742         mono_domain_assemblies_lock. This fixes the issue by making the
6743         assembly ref counting be lock free. See bug 75586.
6744         
6745         * image.c (mono_image_close): The add ref function here was using
6746         Interlocked operations while the unref was using a mutex and a
6747         --. I don't think this was ever a bug that would be exposed in a
6748         non-pendantic way (ie, by an embedder doing a ref on one thread
6749         and an unref on another), but for the sake of correctness, this is
6750         now Interlocked.
6751
6752         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6753         (mono_assembly_load_reference): Call mono_assembly_addref rather
6754         than touching the refcount ourselves.
6755         (mono_assembly_close): Use InterlockedDecrement to unref the
6756         assembly. Don't acquire the lock unless it is actually needed.
6757
6758 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6759
6760         * class.c (mono_class_layout_fields): Fix calculation of has_references
6761         for generic types.
6762
6763 2005-07-12  Martin Baulig  <martin@ximian.com>
6764
6765         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6766
6767         * metadata.c
6768         (mono_type_hash): Provide better hashing for generic instances.
6769         (mono_generic_inst_hash): Improve hashing.
6770         (mono_generic_class_hash): Likewise.
6771
6772         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6773         generic instances.
6774
6775 2005-07-12  Martin Baulig  <martin@ximian.com>
6776
6777         * reflection.c (mono_reflection_create_runtime_class): Remove the
6778         hack for generic type definitions and non-`Run' assemblies.
6779         (mono_reflection_bind_generic_parameters): Also use
6780         `klass->wastypebuilder' to check for TypeBuilders.
6781
6782 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6783
6784         * class.c (mono_class_layout_fields): Fix calculation of has_references
6785         for generic types.
6786
6787         * class.c (inflate_generic_class): Fix a leak.
6788         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6789         for generic types.
6790
6791 2005-07-11  Martin Baulig  <martin@ximian.com>
6792
6793         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6794         on error.
6795
6796 2005-07-11  Martin Baulig  <martin@ximian.com>
6797
6798         * loader.c (find_method): Also lookup in
6799         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6800
6801 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6802
6803         * appdomain.c (mono_domain_unload): Don't free the error message
6804         before passing it to mono_get_exception_...
6805
6806         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6807         
6808 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6809
6810         * threads.c: try to better guess an available RT signal (bug #75387).
6811
6812 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6813
6814         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6815         and CACHE_OBJECT.
6816
6817 2005-07-07  Martin Baulig  <martin@ximian.com>
6818
6819         * class.c (mono_type_get_name_full): Return NULL for
6820         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6821         fixes #75408.
6822
6823 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6824
6825         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6826         exit the appdomain as well being aborted.
6827
6828         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6829         change back to the root domain after calling managed code. This enables
6830         appdomains using threadpools to be unloaded.
6831
6832 2005-07-07  Martin Baulig  <martin@ximian.com>
6833
6834         * class-internals.h
6835         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6836         into `MonoDynamicGenericClass' since we only need it for dynamic
6837         types.
6838
6839         * reflection.c (mono_class_bind_generic_parameters): We don't need
6840         to compute the `parent' here.
6841
6842 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6843
6844         * culture-info-table.h : regenerated.
6845
6846 2005-07-06  Martin Baulig  <martin@ximian.com>
6847
6848         * icall.c
6849         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6850
6851         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6852
6853 2005-07-06  Martin Baulig  <martin@ximian.com>
6854
6855         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6856         we're doing a signature-only comparision; fixes #74945.
6857
6858 2005-07-06  Martin Baulig  <martin@ximian.com>
6859
6860         * class-internals.h (MonoGenericClass): Moved some things out into
6861         a new `MonoInflatedGenericClass' type.  
6862         (MonoInflatedGenericClass): New type; the `klass' of a
6863         `MonoGenericClass' is now computed lazyly in
6864         mono_get_inflated_generic_class().      
6865
6866         * class.c (mono_get_inflated_generic_class): New public function.
6867         (mono_class_inflate_generic_method): Removed the unused
6868         `MonoClass *' argument.
6869         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6870         all the methods.
6871         (mono_class_create_generic): Make this static and merge it with
6872         mono_class_create_generic_2(); we're now called automatically from
6873         mono_get_inflated_generic_class().
6874
6875         * loader.c (mono_method_signature): Call
6876         mono_get_inflated_method() here.
6877
6878 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6879
6880         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6881         type of fields with RVA.
6882
6883         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6884         for this pseudo class.
6885         (my_mono_class_from_generic_parameter): Likewise.
6886         (mono_class_init): Allow interfaces to have cctors.
6887
6888 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6889
6890         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6891         lazily for AOT methods.
6892
6893 2005-07-05  Martin Baulig  <martin@ximian.com>
6894
6895         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6896         returns FALSE for a successful match, not TRUE.
6897
6898 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6899
6900         * loader.c (mono_method_get_index): Optimize this a bit.
6901
6902 2005-07-04  Martin Baulig  <martin@ximian.com>
6903
6904         * class.c
6905         (class_compute_field_layout): Move the check for generic type
6906         definitions into mono_class_layout_fields().  Fixes #74684.
6907         (mono_class_from_generic_parameter): Correctly compute
6908         `klass->parent'; fixes #75457.
6909
6910         * reflection.c (register_assembly, register_module): Make sure
6911         `domain->rejobject_hash' is already created.
6912
6913 2005-07-02  Martin Baulig  <martin@ximian.com>
6914
6915         * class-internals.h
6916         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6917         `MonoDynamicGenericClass'.      
6918
6919 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6920
6921         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6922         returned by a field getter is null, since null is a valid value.
6923
6924 2005-07-01  Martin Baulig  <martin@ximian.com>
6925
6926         * reflection.c (mono_reflection_generic_class_initialize): Update
6927         the `dgclass->fields [i].parent' to the correct class.
6928         (mono_image_get_fieldref_token): Use the declaring type, not the
6929         reflected type.
6930
6931 2005-07-01  Martin Baulig  <martin@ximian.com>
6932
6933         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6934
6935 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6936
6937         * threads.c (thread_cleanup): assert that thread != NULL
6938         (wait_for_tids_or_state_change): We were using the wrong variable
6939         when accessing wait->threads. `i' was always out of the bounds of
6940         the array.
6941
6942 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6943
6944         * loader.c: map user32 and kernel32 to libMonoSupportW
6945
6946 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6947
6948         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6949
6950 2005-06-28  Martin Baulig  <martin@ximian.com>
6951
6952         * loader.c (method_from_methodspec): Fix #75334.
6953
6954 2005-06-28  Martin Baulig  <martin@ximian.com>
6955
6956         Fix #74953 - Arrays now implement the generic IList<T> interface
6957         on the 2.0 platform.
6958
6959         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6960
6961         * reflection.c (mono_class_bind_generic_parameters): New public
6962         function; similar to mono_reflection_bind_generic_parameters(),
6963         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6964
6965         * domain.c (mono_init_internal): Try to initialize.
6966         `mono_defaults.generic_array_class' here; this'll only succeed if
6967         we're using the 2.0 corlib.
6968
6969         * icall.c
6970         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6971         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6972         (mono_lookup_internal_call): Added support for nested classes.
6973
6974         * loader.c
6975         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6976         we're an interncall and have generic arguments.
6977
6978         * class.c
6979         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6980         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6981         instance of System.Array.InternalArray<T> for arrays, so they
6982         implement the generic IList<T> interface.
6983
6984 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6985
6986         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6987         (chastamar@yahoo.com). Fixes #75374.    
6988
6989 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6990
6991         * culture-info-table.h: regenerated.
6992
6993 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6994
6995         * icall.c: handle spaces correctly for base64 strings.
6996
6997 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6998
6999         * *.c: Kill some warnings.
7000
7001 2005-06-23  Duncan Mak  <duncan@novell.com>
7002
7003         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7004         that this builds on Solaris 10 (x86).
7005
7006 2005-06-23  Martin Baulig  <martin@ximian.com>
7007
7008         * class.c
7009         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7010         generic type definitions.
7011
7012 2005-06-23  Martin Baulig  <martin@ximian.com>
7013
7014         Fix #75331.
7015
7016         * metadata.c (mono_class_get_overrides): Renamed to
7017         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7018         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7019         pass it to mono_get_method_full().
7020
7021 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7022
7023         * reflection.c (mono_reflection_create_runtime_class): take the
7024         mono_domain_lock in this method. Prevents deadlocks
7025
7026 2005-06-22  Martin Baulig  <martin@ximian.com>
7027
7028         * loader.c (method_from_methodspec): Fix #75330.
7029
7030 2005-06-22  Martin Baulig  <martin@ximian.com>
7031
7032         * reflection.c (type_get_qualified_name): Use
7033         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7034         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7035         argument; use it if we don't have an assembly name.
7036
7037 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7038
7039         * object.c: In mono_message_init, set "copy out" flag for in
7040         parameters with the [Out] flag.
7041
7042 2005-06-21  Martin Baulig  <martin@ximian.com>
7043
7044         * class.c
7045         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7046         and MONO_TYPE_PTR.
7047
7048 2005-06-21  Martin Baulig  <martin@ximian.com>
7049
7050         * class.c (mono_class_init): Don't initialize `class->fields' for
7051         generic instances since they're initialized again in
7052         compute_field_layout(). 
7053         (compute_field_layout): Set the field's `generic_info' here; fix
7054         #75320. 
7055
7056 2005-06-21  Martin Baulig  <martin@ximian.com>
7057
7058         * class-internals.h
7059         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7060
7061         * metadata.c (mono_metadata_generic_method_equal): Also
7062         distinguish the `generic_class'; fixes #75334.
7063
7064 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7065
7066         * domain.c:
7067         * appdomain.c:
7068         * domain-internals.h:
7069         * reflection.c: 'domain_assemblies' field is now protected by its own
7070         lock. Don't call into managed code to run the AssemblyLoad event if we
7071         now there are no registered delegates for it.
7072
7073 2005-06-20  Martin Baulig  <martin@ximian.com>
7074
7075         * class.c (mono_class_is_assignable_from): Use a custom version of
7076         mono_class_has_parent() to make things work for generic instances;
7077         fix #75300.
7078
7079 2005-06-20  Martin Baulig  <martin@ximian.com>
7080
7081         * loader.c (method_from_methodspec): Apply a patch from
7082         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7083
7084 2005-06-20  Martin Baulig  <martin@ximian.com>
7085
7086         * class.c (mono_class_init): Reverted Zoltan's last change; it
7087         breaks generics.
7088
7089 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7090
7091         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7092
7093 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7094
7095         * socket-io.c: fix the index in the socket array for writable/error
7096         sockets. Fixes bug #75306.
7097
7098 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7099
7100         * class.c (mono_class_init): Allow interfaces to have static ctors.
7101
7102 2005-06-17  Martin Baulig  <martin@ximian.com>
7103
7104         * loader.c (method_from_methodspec): Use `context->container' when
7105         parsing the `gmethod->inst'.
7106
7107 2005-06-17  Martin Baulig  <martin@ximian.com>
7108
7109         * class.c (mono_type_get_name_recurse): Don't add the assembly
7110         name for type arguments.
7111
7112 2005-06-15  Martin Baulig  <martin@ximian.com>
7113
7114         * reflection.c (mono_image_get_inflated_method_token): Encode
7115         correct klass; fixes #75260.
7116
7117 2005-06-13 Michal Moskal <malekith@nemerle.org>
7118
7119         * icall.c: Make GetCorrespondingMethod/Constructor take
7120         MonoReflectionMethod method not MonoMethod. Removed
7121         MonoType.GetCorrespondingField, and make
7122         MonoGenericType.GetCorrespondingField take name not
7123         MonoClassField.
7124
7125 2005-06-13  Michal Moskal <malekith@nemerle.org>
7126
7127         * reflection.c (field_encode_signature, encode_locals):
7128          Make sizes of buffers for types larger (for big generic types).
7129          (create_generic_typespec,
7130          mono_reflection_sighelper_get_signature_local,
7131          mono_reflection_sighelper_get_signature_field):
7132          Add asserts for too small buffers.
7133
7134 2005-06-15  Martin Baulig  <martin@ximian.com>
7135
7136         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7137         if our parent is not a dynamic type.
7138
7139 2005-06-15  Martin Baulig  <martin@ximian.com>
7140
7141         * class-internals.h (MonoTypeNameFormat): New enum.
7142
7143         * class.c
7144         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7145         (mono_type_get_full_name): Removed.
7146         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7147         argument instead of the boolean's.
7148
7149         * icall.c (ves_icall_System_MonoType_getFullName):
7150         Added `gboolean assembly_qualified'.    
7151
7152         * reflection.h
7153         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7154
7155         * reflection.c (mono_reflection_parse_type): Parse the new type
7156         name format.
7157
7158 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7159
7160         * icall.c: no need to convert from utf16 to utf8 and then back again
7161         after the call to GetLogicalDrives.
7162
7163 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7164
7165         * icall.c: frombase64. Fix problems exposed by new tests.
7166
7167 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7168
7169         * icall.c: added internal calls for converting char [] and strings in
7170         base64 into byte [].
7171
7172 2005-06-10  Martin Baulig  <martin@ximian.com>
7173
7174         * class.c (mono_class_create_generic_2): Read the nested classes
7175         from the metadata rather than from `gklass->nested_classes' since
7176         `gklass' might not be initialized yet.
7177
7178 2005-06-09  Duncan Mak  <duncan@novell.com>
7179
7180         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7181         all public headers. Fixes #74919.
7182
7183 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7184
7185         * domain.c: The key for proxy_vtable_hash is now a pointer
7186         array. Added new GHashFunc and GCompareFunc functions for this.
7187
7188         * class.h: The list of interfaces in MonoRemoteClass is known in
7189         advance and can't grow (we create a new MonoRemoteClass if needed),
7190         so now the interface array can be allocated together with
7191         MonoRemoteClass.
7192         
7193         * object.c: Added a new method create_remote_class_key.
7194         Fixed mono_remote_class so it does not depend on
7195         mono_upgrade_remote_class.
7196         Removed extend_interface_array.
7197         Added new method clone_remote_class(), which makes a copy of a remote
7198         class and adds a new interface or class to it.
7199         mono_upgrade_remote_class() now creates a new remote class (or gets
7200         it from the cache) if an vtable upgrade is needed. In this way
7201         we make sure that other objects sharing the same remote class
7202         don't get the new vtable with unwanted interfaces.
7203         
7204         * object-internals.h:
7205         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7206         
7207         * marshal.c: Track changes in mono_upgrade_remote_class().
7208
7209 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7210         * icall.c: Add runtime methods for obtaining members of inflated
7211         class, which were created from supplied non-inflated members. It
7212         is used in internal Get{Method,Constructor,Field} methods in
7213         System.Type
7214
7215 2005-06-09  Martin Baulig  <martin@ximian.com>
7216
7217         * reflection.c
7218         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7219
7220 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7221         * reflection.c (mono_image_basic_init): Define
7222         Version in MonoDynamicAssembly. 
7223         
7224 2005-06-08  Martin Baulig  <martin@ximian.com>
7225
7226         Fix #75136.
7227
7228         * loader.c
7229         (mono_method_signature_full): New public method; takes a
7230         `MonoGenericContext *'.
7231         (find_method): Use mono_method_signature_full() and pass the
7232         klass'es context to it.
7233
7234         * class.c (mono_class_is_inflated_method): Use
7235         mono_method_signature_full() and pass the context to it.
7236
7237 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7238
7239         * object.c: add proper locking in mono_remote_class_vtable(),
7240         fixes possible memory corruption.
7241
7242 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7243
7244         * marshal.c (mono_remoting_marshal_init): set
7245         initialized after initialization.
7246
7247 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7248
7249         * locales.c : hush.
7250
7251 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7252
7253         * object.c (extend_interface_array): fix really silly
7254         memory corrupting / comparison bug.
7255
7256 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7257
7258         * reflection.c: Functions added to support the creation
7259         of CustomAttributeData, which includes Attribute data
7260         used by ReflectionOnly methods.
7261
7262         * reflection.h:  mono_reflection_get_custom_attrs_data and
7263          mono_custom_attrs_data_construct added (functions exposed).
7264
7265          * icall.c: Added mono_reflection_get_custom_attrs_data
7266          as icall.
7267         
7268 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7269
7270         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7271         lupus's request.
7272
7273 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7274
7275         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7276
7277         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7278         dynamic DllImportAttribute.
7279
7280         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7281         dynamic DllImportAttribute.
7282
7283         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7284         Fixes #75162.
7285
7286 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7287
7288         * threads.c: avoid segfault when an unstarted thread is aborted.
7289
7290 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7291
7292         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7293         Returns the name and version of the runtime for reporting.
7294
7295 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7296
7297         * appdomain.c: bump corlib version.
7298         * object-internals.h: new field in MonoReflectionAssembly.
7299
7300 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7301
7302         * object-internals.h: Carlos forgot to add this field.
7303
7304 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7305
7306         * icall.c: Added create_version to create instances
7307         of Version of MonoReflectionAssemblyName. This change helps
7308         the AssemblyName tests to keep running fine.
7309         
7310 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7311   
7312         * object.c (mono_method_return_message_restore): A somehow less
7313         intrusive fix for #75138.
7314
7315 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7316
7317         * object.c (mono_method_return_message_restore): Fix computation
7318         of expected number of out args.
7319
7320 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7321
7322         * reflection.c (mono_image_get_method_info): Fix the case when the
7323         charset is empty.
7324
7325 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7326
7327         * object.c: Added missing null check in
7328           mono_method_return_message_restore.
7329
7330 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7331
7332         * reflection.c (mono_image_get_method_info): Handle the case when
7333         dllentry is empty.
7334
7335 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7336
7337         * object.c: When creating the vtable for a proxy, take into account
7338         all inherited interfaces, not only the ones registered in
7339         iclass->interfaces. This fixs bug #74996.
7340         Also, in mono_method_return_message_restore, verify that the array
7341         of out args has the expected lengh.
7342
7343 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7344
7345         * socket-io.c: update the timeout in Poll when the call is interrupte.
7346
7347 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7348
7349         * socket-io.c: support abort/suspend in Select_internal after last
7350         change.
7351
7352 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7353
7354         * threadpool.c: remove warning.
7355
7356 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7357
7358         * icall.c:
7359         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7360         removing the 1024 limit from select(). Runtime part of the fix for
7361         bug #71203.
7362
7363 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7364
7365         * socket-io.c: when resolving the addresses for the same
7366         host returned by gethostname(), get the local IPs from the interface
7367         list. Loopback addresses are discarded if the are interfaces up with
7368         non-loopback ones. Fixes bug #63265.
7369
7370 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7371
7372         * appdomain.c, verify.c, object-internals.h, reflection.c:
7373         bumped corlib number to 36, and added new extra_flags field
7374         to ReflectionMethodBuilder and friends.  Fixes #75060.
7375
7376 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7377
7378         * gc.c: register a new weak link only if the object is non-null
7379         (fixes bug#75047).
7380
7381 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7382
7383         * culture-info.h : short time pattern too.
7384
7385 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7386
7387         * culture-info.h : expand long time pattern string length.
7388
7389 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7390
7391         * culture-info-table.h : update (more French date format; #72788).
7392
7393 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7394
7395         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7396         the method is static. Fixes #75029.
7397
7398 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7399
7400         * reflection.c: Update the table_idx field of method builders after
7401         saving the module, since it can change. This is a workaround for
7402         bug #74914. 
7403
7404 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7405
7406         * culture-info-table.h : update (additional French date format).
7407
7408 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7409
7410         * icall.c (ves_icall_type_Equals): Revert last change.
7411         
7412         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7413
7414         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7415
7416 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7417
7418         * class-internals.h: Added executioncontext_class field to 
7419         MonoDefaults structure.
7420         * domain.c: Cache System.Threading.ExecutionContext class in 
7421         mono_defaults.
7422         * object.c: Capture the ExecutionContext for asynchroneous calls in
7423          mono_async_result_new.
7424         * object-internals.h: Added execution_context and original_context 
7425         fields to MonoAsyncResult. Added execution_context to MonoThread.
7426         * security-manager.c|.h: Added mono_get_context_capture_method to 
7427         return the capture method (if required by the security manager or by
7428         the framework version used).
7429         * threadpool.c: Apply capture (if present) ExecutionContext in 
7430         mono_async_invoke and revert to original context after it completes.
7431
7432 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7433
7434         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7435
7436 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7437
7438         * culture-info-table.h : zh-CHT related workaround.
7439
7440 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7441
7442         * marshal.c (emit_marshal_custom): Add some error checking and call the
7443         methods in the ICustomMarshaler interface. Fixes #74875.
7444         
7445         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7446         native->managed wrappers.
7447
7448 2005-05-12  Martin Baulig  <martin@ximian.com>
7449
7450         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7451         here and use the loader lock.
7452
7453         * mono-debug.c: Properly lock when the debugger is not attached.
7454         (mono_debug_init): Release the initial lock if we're not running
7455         in the debugger.
7456
7457 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7458
7459         * marshal.c (emit_marshal_custom): Pass through NULL values without
7460         calling the custom marshalling routines.
7461
7462         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7463         conversion in structures. Fixes #74882.
7464
7465 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7466
7467         * culture-info-table.h : zh-* cultures were missing.
7468
7469 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7470
7471         * threads.c: Added a new event background_change_event which is signaled
7472         when a thread changes its background mode.
7473         Moved here several checks previously done in managed code. The checks
7474         require the thread lock, and using the thread lock in managed code
7475         can result in deadlocks.
7476         Merged Start_internal and Thread_internal into a single method. Now 
7477         Thread_internal does all work of creating and starting a thread.
7478         Added icalls for setting and getting the state of the object. Moved from
7479         managed code to avoid locking there.
7480         Added wait_for_tids_or_state_change() which is called instad of
7481         wait_for_tids when waiting for non-backround threads to end. This method
7482         will return if one of the threads ends or the background_change_event
7483         is signaled.
7484         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7485         the background mode. This method signals the background_change_event
7486         event.
7487         * icall.c:
7488         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7489         removed Start_internal.
7490         
7491 2005-05-11  Martin Baulig  <martin@ximian.com>
7492
7493         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7494         to order of some fields to get proper alignment on 64-bit machines.
7495
7496 2005-05-11  Martin Baulig  <martin@ximian.com>
7497
7498         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7499         changes as they're broken and completely fuck up the debugger.
7500
7501         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7502
7503 2005-05-10  Martin Baulig  <martin@ximian.com>
7504
7505         * reflection.c (mono_reflection_generic_class_initialize): Don't
7506         call mono_class_setup_parent() here.
7507
7508 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7509
7510         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7511         send/receive timeout use an integer in milliseconds. We were using a
7512         struct timeval.
7513
7514 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7515
7516         * locales.c:
7517         (internal_get_cultures): reserve the first slot of the array for the
7518         InvariantCulture, which will be filled in managed code.
7519
7520 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7521
7522         * reflection.c (mono_image_fill_module_table): Initialize the
7523         GENERATION field as well.
7524
7525 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7526
7527         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7528         Monitor.Enter on the object.
7529
7530 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7531
7532         * threads.c: Enable the wait for running threads when exiting.
7533         * icall.c: Suspend all threads before exiting.
7534
7535 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7536
7537         * assembly.c (mono_assembly_load_reference): Fix warning.
7538
7539 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7540
7541         * threadpool.c: changed the default number of threads per cpu. From now
7542         on, the default will be 20 + (5 * number of cpus) instead of 50.
7543
7544 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7545
7546         * loader.c (mono_method_get_signature_full): Add locking here.
7547
7548 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7549
7550         * appdomain.c: Moved methods for parsing and freeing assembly
7551         names to assembly.c.
7552         * assembly.c, domain-internals.h: Created public methods for parsing
7553         assembly names. Fixed mono_assembly_load_with_partial_name:
7554         it now finds the best match, taking into account the version,
7555         token and culture specified in the partial name. Also return
7556         the latest version if no version information is specified.
7557
7558 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7559
7560         * threadpool.c: replace check for SocketAsyncCall class.
7561
7562 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7563
7564         * threadpool-internals.h:
7565         * Makefile.am: added threadpool-internals.h
7566
7567         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7568         that happen in threadpool threads (tested on MS).
7569         (mono_thread_pool_remove_socket): new function that dispatch any pending
7570         AIO call on a socket that is closing. By now only epoll really needs it,
7571         as select/poll wake up when the socket closes.
7572
7573
7574         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7575
7576 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7577
7578         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7579
7580 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7581
7582         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7583
7584 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7585
7586         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7587         has an abort request, convert it into a suspend request.
7588
7589 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7590
7591         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7592         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7593         is not supported yet.
7594
7595 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7596
7597         * image.c: register assemblies loaded from data (bundles) in the loaded
7598         assemblies hash. Fixes bug #74772.
7599
7600 2005-04-29  Martin Baulig  <martin@ximian.com>
7601
7602         * class.c (mono_type_get_name_recurse): Update to the new naming
7603         schema from the latest .NET 2.x beta2.
7604         (mono_class_setup_vtable_general): If we're a generic instance,
7605         copy the vtable from our generic type definition and inflate all
7606         the methods in it.
7607
7608         * loader.c (find_method): Update to the new naming schema from the
7609         latest .NET 2.x beta2.
7610
7611 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7612
7613         * class.c (mono_class_init): Add a mono_loader_unlock to the
7614         #74734 fix.
7615
7616 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7617
7618         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7619         suspend_all_other_threads () call for the time being, since it can hang.
7620
7621         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7622         the background threads to exit, since it can also hang.
7623
7624         * class.c (mono_class_init): Applied patch from Ankit Jain 
7625         (radical@gmail.com). Avoid pending init errors when a field refers
7626         to a nested class using a typeref. Fixes #74734.
7627
7628         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7629         this for dynamic modules.
7630
7631 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7632
7633         * threads.c: don't wait for threads that are in the process of aborting
7634         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7635         and waiting for background threads to finish. This makes xsp and
7636         mod-mono-server exit without random length delays and/or hangs.
7637
7638 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7639
7640         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7641
7642 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7643
7644         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7645         dynamic types to prevent infinite loops. Fixes #74727.
7646
7647         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7648         ..._is_assignable_to.
7649
7650 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7651
7652         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7653
7654 2005-04-25  Martin Baulig  <martin@ximian.com>
7655
7656         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7657
7658         * domain.c
7659         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7660
7661         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7662
7663         * reflection.c (build_compressed_metadata): Set metadata header
7664         version to 2.0.
7665
7666 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7667
7668         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7669         number into an integral and a decimal part. Fixes #70473.
7670
7671         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7672
7673 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7674
7675         * culture-info-table.h : reflected the latest locale-builder output.
7676
7677 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7678
7679         * threadpool.c: check for SuspendRequested too when deciding if
7680         mono_thread_interruption_checkpoint should be called.
7681
7682 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7683
7684         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7685         * threads.c: remove interruption_mutex and use Interlocked instead. When
7686         suspending all the threads, wait for all the suspended events at once.
7687         If we're shutting down and get an APC that is going to be queued,
7688         call mono_thread_execute_interruption immediately, as the thread might
7689         be sleeping on a pthread condition or mutex.
7690
7691         * icall.c: call mono_runtime_set_shutting_down before suspending the
7692         threads.
7693
7694         Fixes bug #74693. And now xsp is happier when exiting.
7695
7696 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7697
7698         * loader.c (mono_stack_walk): Fix #74690.
7699
7700 2005-04-22  Martin Baulig  <martin@ximian.com>
7701
7702         * mono-debug.h (MonoDebugMethodJitInfo): Added
7703         `MonoDebugMethodJitInfo *jit'.
7704
7705         * mono-debug.c (mono_debug_read_method): Cache the
7706         MonoDebugMethodJitInfo in `address->jit'.
7707         (mono_debug_free_method_jit_info): New public method.
7708
7709 2005-04-22  Martin Baulig  <martin@ximian.com>
7710
7711         * class.c (mono_class_is_assignable_from): Disallow
7712         type parameter -> interface.
7713
7714 2005-04-21  Dick Porter  <dick@ximian.com>
7715
7716         * threads.c (mono_thread_create): Turn an assertion into an error.
7717
7718 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7719
7720         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7721         
7722         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7723         Fix some gcc 4.0 warnings.
7724
7725 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7726
7727         * file-io.c: fix alt dir separator char on unix systems
7728         and cleanup (fixes bug #71214).
7729
7730 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7731
7732         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7733         a call to a remote domain, since the method may be an
7734         interface method in the client domain. This fixes bug #74192.
7735
7736 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7737
7738         * threadpool.c: recv/send are now performed before going back to managed
7739         code to save one transition.
7740
7741 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7742
7743         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7744
7745         * metadata/threadpool.c: removed hack to workaround the bug above.
7746
7747         Fixes bug #74618.
7748
7749 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7750
7751         * reflection.c reflection.h: Fix handling of parameter defaults in
7752         dynamic methods. Also fixes handling of parameter attributes.
7753         Fixes #74609.
7754
7755         * mono-debug.c (mono_debug_close_image): Fix warning.
7756
7757 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7758
7759         * socket-io.h: replaced old unused field with new 'blocking'.
7760         * threadpool.c: restore socket blocking state on windows(tm).
7761
7762 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7763
7764         * icall.c: don't return the codebase in the AssemblyName[] returned by
7765         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7766         * object-internals.h: Removed FIXME (fields were presents) and fixed
7767         versioncompat declaration.
7768
7769 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7770
7771         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7772         not closed, so don't cleanup when it happens.
7773
7774 2005-04-13  Chris Toshok  <toshok@ximian.com>
7775
7776         * mono-debug-debugger.h: change prototype for
7777         mono_debugger_lookup_type.
7778
7779         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7780         this function, although it should probably be named
7781         mono_debugger_init_type.
7782
7783 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7784
7785         * threadpool.c: fix non-AIO case.
7786
7787 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7788
7789         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7790         the built-in profiler to measure just JIT compilation times.
7791
7792 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7793
7794         * threadpool.c: the epollfd might be closed by another thread at
7795         any time, so ignore EBADF at treat it as a "we're closing" sign.
7796
7797 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7798
7799         * threadpool.c: release the semaphores with a count equals to the number
7800         of working threads in both IO and regular pools. Fixed typo that messed
7801         up the count of IO pool threads. Don't initialize the pipe handles if
7802         we're using epoll.
7803
7804 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7805
7806         * threadpool.c: some systems don't like a NULL when deleting the socket
7807         from epoll.
7808
7809 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7810
7811         * threadpool.c: fix semaphore allocation.
7812
7813 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7814
7815         * threadpool.c: added epoll() based implementation for asynchronous IO
7816         that is used instead of the default poll() when available.
7817         It can be disabled by setting MONO_DISABLE_AIO.
7818
7819 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7820
7821         * threadpool.c: windows needs 'closesocket' and instead of returning
7822         0 when the stream is closed while in select, it returns -1. Fixes bug
7823         #74573.
7824
7825 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7826
7827         * class.c (class_compute_field_layout): Fix the regression caused by
7828         the previous try.
7829
7830 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7831
7832         * threadpool.c: separate pool for socket async. IO.
7833         * threadpool.h: mono_max_worker_threads is not a global any more.
7834
7835 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7836
7837         * class.c (class_compute_field_layout): Fix #74549.
7838
7839 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7840
7841         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7842         use 2 connected sockets instead.
7843
7844 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7845
7846         * mono-config.c: Add new entry point for mkbundle
7847         mono_config_parse_memory. 
7848
7849 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7850
7851         * threadpool.c: removed another unused function.
7852
7853 2005-04-08  Ankit Jain  <radical@corewars.org>
7854
7855         * reflection.c (get_default_param_value_blobs): Add 'types'
7856         parameter to get the types encoded in the constant table.
7857         (mono_param_get_objects): Use the type from the constant table,
7858         not the type of the parameter, when creating default values.
7859         Handle null default values correctly.
7860
7861 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7862
7863         * file-io.c:
7864         * file-io.h:
7865         * threadpool.c:
7866         * threadpool.h:
7867         * icall.c:
7868         * socket-io.c: removed dead code for async IO.
7869
7870 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7871
7872         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7873
7874         * threadpool.c: intercept socket async. calls and pass them to a thread
7875         that is polling and dispatching the job items to the threadpool as
7876         socket become ready. Fixes bugs #71217, #71933.
7877
7878         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7879         between char and short/ushort arrays.
7880
7881         * socket-io.c: remove dead code.
7882
7883 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7884
7885         * locales.c,
7886           icall.c : removed InternalToUpper_Comp() and
7887           InternalToLower_Comp().
7888
7889 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7890
7891         * char-conversions.h : The tables were incorrectly generated. Should
7892           be generated against invariant culture.
7893
7894 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7895
7896         * object.c (mono_runtime_invoke_array): Fix return value when 
7897         passing pre-created valuetype objects to ctors.
7898
7899         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7900         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7901         Fixes #74338.
7902
7903 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7904
7905         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7906         only used with --security and hides the wrong corlib version error.
7907
7908 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7909
7910         * class.c: Changed mono_class_name_from_token so that types
7911         outside of a namespace don't have an initial period.  Improved
7912         the g_warning message used in _mono_class_get when loading
7913         fails.
7914         * assembly.c: In mono_assembly_load_reference, when an assembly
7915         can't be found, "No such file or directory" is misleading and
7916         unhelpful because a few paths were checked for the presence of
7917         the assembly.  When that happens (ENOENT), display a nicer
7918         message indicating the directories that were searched.  In all
7919         cases, the warning is made easier to read for non-hackers.
7920
7921 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7922
7923         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7924         project/solution.
7925         * appdomain.h|domain.c: Removed inline from functions.
7926         * appdomain.c: Reduced warnings when compiling on windows.
7927         * icall.c: Fixed output_debug declaration to gunichar2*.
7928         * mono-config.c: Reduced warnings when compiling on windows.
7929         * rand.c: Added missing "windows.h". Added missing return value.
7930         * rawbuffer.c: Added missing winsock2.h for windows.
7931         * sysmath.h: Added mono-compiler.h header to allow/ease 
7932         compilation with non-GCC compilers.
7933         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7934         Removed cast warnings.
7935
7936         Adapted from the work of J Lothian (for VC6).
7937
7938 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7939
7940         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7941         from default_path.
7942
7943 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7944
7945         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7946         the 2.0 profile.
7947
7948 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7949
7950         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7951         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7952         stuff, and it would probably use $(prefix)/share rather than
7953         $(prefix)/lib.
7954
7955 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7956
7957         * console-io.c: added 2 includes that might be missing.
7958
7959 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7960
7961         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7962         profile.
7963
7964         * reflection.c (create_custom_attr): Allocate the params array using
7965         alloca so it gets GC tracking.
7966
7967 2005-03-23  Chris Toshok  <toshok@ximian.com>
7968
7969         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7970         out some spew.
7971
7972 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7973
7974         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7975         changes to pick up any changes in prefix, etc.
7976
7977 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7978
7979         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7980         
7981         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7982         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7983
7984 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * class-internals.h object-internals.h class.c reflection.c: Extend the
7987         mono_lookup_dynamic_token () function to return the class of the
7988         token as well. 
7989
7990         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7991         well. Fixes #73848.
7992
7993 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7994
7995         * security-manager.c: Skip inheritance checks for intra-corlib
7996         class inheritance and method overrides. This skips a lot of checks
7997         and (anyway) permissions cannot work until corlib is loaded.
7998
7999 2005-03-23  Martin Baulig  <martin@ximian.com>
8000
8001         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8002         MONO_TYPE_GENERICINST.  
8003
8004 2005-03-23  Martin Baulig  <martin@ximian.com>
8005
8006         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8007
8008 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8009
8010         * class.c: added locking comments to some functions.
8011         Cache the interface offsets arrays (saves about 20 KB
8012         of runtime memory in a typical app).
8013         Reduce the time overhead in mono_class_setup_supertypes ().
8014
8015 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8016
8017         * icall.c: speedup and fix leaks in GetMethodsByName and
8018         GetPropertiesByName.
8019
8020 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8021
8022         * reflection.c: some locking fixes.
8023
8024 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8025
8026         * metadata.c: added missing break in case statement.
8027
8028 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8029
8030         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8031         typedbyref return values. Fixes #73941.
8032
8033 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8034
8035         * security-manager.c|h: Added demandunmanaged method and 
8036         suppressunmanagedcodesecurity class to MonoSecurityManager.
8037         Renamed aptc class to allowpartiallytrustedcallers.
8038
8039 2005-03-17  Martin Baulig  <martin@ximian.com>
8040
8041         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8042
8043 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8044
8045         * file-io.c: disabled file async. IO using aio_*. It uses the
8046         threadpool now. Workaround for bug #73718.
8047
8048 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8049
8050         * assembly.h, mono-config.c: added code to deal with bundled configs
8051         for bundled assemblies.
8052
8053 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8054
8055         * *.c, private.h: cleanup, removing old private.h header file.
8056
8057 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8058
8059         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8060         and throw_on_unmappable_char attributes.
8061
8062 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8063
8064         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8065         _ProcessName_internal.
8066
8067 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8068
8069         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8070         #73631.
8071
8072         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8073         are no longer used.
8074
8075 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8076
8077         * object.c (compute_class_bitmap): Add support for generics. Fixes
8078         #73527.
8079
8080 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8081
8082         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8083
8084 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8085
8086         * filewatcher.c: commented out the code for windows watcher, as we don't
8087         use it (we use the managed implementation instead).
8088
8089 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8090
8091         * object-internals.h (MonoThread): Remove 'unused1' field.
8092
8093         * appdomain.c: Bump corlib version.
8094
8095         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8096
8097         * reflection.c (mono_reflection_create_runtime_class): Remove the
8098         AssemblyBuilder.Save optimization since it causes too many problems.
8099
8100 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8101
8102         * exception.c|h: Added mono_get_exception_reflection_type_load to
8103         create a ReflectionTypeLoadException object.
8104         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8105         to return NULL is a InheritanceDemand fails during reflection. Updated
8106         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8107         ReflectionTypeLoadException if an InheritanceDemand fails during 
8108         reflection. Added icall mapping for GetLinkDemandSecurity.
8109         * security-manager.c|h: Added ves_icall_System_Security_
8110         SecurityManager_GetLinkDemandSecurity internal call to return the
8111         class and methods permissions set for a LinkDemand. Removed unused
8112         fields in MonoSecurityManager.
8113
8114 2005-03-10  Martin Baulig  <martin@ximian.com>
8115
8116         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8117         it's a generic instance.
8118
8119 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8120
8121         * reflection.c (mono_get_object_from_blob): Applied patch from
8122         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8123
8124         * class.c (mono_class_is_assignable_from): Another try at fixing 
8125         #73469 without breaking anything.
8126
8127 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8128
8129         * class.c: (mono_class_is_assignable_from): Revert the last changes
8130         since they don't work with generics.
8131         
8132         * class.c (mono_class_is_assignable_from): Fix build bustage.
8133
8134         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8135         the managed IsAssignableFrom method. Fixes #73469.
8136
8137         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8138         function.
8139
8140 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8141
8142         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8143         memory when the remoting callback does not sets the out arguments.
8144         Fixes #73007.
8145
8146         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8147         by mistake.
8148
8149         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8150
8151         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8152
8153         * appdomain.c: Bump corlib version.
8154
8155 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8156
8157         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8158         function.
8159
8160         * threads.c (mono_thread_attach): Detect threads which are not started
8161         by the GC pthread wrappers.
8162
8163 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8164
8165         * icall.c: Added new icall for RNG.
8166         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8167         single handle on Linux to access /dev/urandom and fix #73183.
8168
8169 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8170
8171         * object.c: setting the new vtable in a transparent proxy object must
8172         not change the GC descriptor.
8173
8174 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8175
8176         * object.c: fixed compilation without GCJ support.
8177         * reflection.c: for runtime-created types ensure klass->has_references
8178         is correct (bug #73215).
8179
8180 2005-03-02  Martin Baulig  <martin@ximian.com>
8181
8182         * class.c (mono_class_is_assignable_from): Make this work if
8183         `oklass' is a generic instance; fixes #72831.
8184
8185 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8186
8187         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8188         with hasthis set.
8189         
8190         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8191
8192         * marshal.c: Reorganize native->managed marshalling code to also use
8193         the emit_marshal_... functions.
8194
8195 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8196
8197         * object.c: typed allocs have issues with bitmap sizes > 30,
8198         so check for max_set >= 30.
8199
8200 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8201
8202         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8203         managed code. Fixes #73012.
8204
8205         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8206
8207         * metadata.c reflection.c: Load/Emit elem_mult as well.
8208         
8209         * metadata.h (MonoMarshalSpec): Add comment.
8210
8211         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8212
8213         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8214         num_elem to -1 if not given.
8215
8216         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8217
8218         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8219         given values.
8220
8221 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8222
8223         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8224
8225 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8226
8227         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8228
8229         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8230
8231 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8232
8233         * object.c: generalized the reference bitmap creation
8234         and added hooks for the new GC.
8235         * class-internals.c: removed the gc_bitmap field from MonoClass.
8236
8237 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8238
8239         * domain.c: help the compiler to produce better code
8240         in mono_jit_info_table_find ().
8241
8242 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8243
8244         * object.c: make all allocations look typed.
8245
8246 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8247
8248         * socket-io.c: load Mono.Posix if it's not loaded already
8249         (fixes bug#73033).
8250
8251 2005-02-24  Martin Baulig  <martin@ximian.com>
8252
8253         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8254         * reflection.c (dup_type): Likewise.
8255
8256 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8257
8258         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8259         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8260
8261 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8262
8263         * domain.c, threads.c, object-internals.h: make the critical thread
8264         local vars use the fast access mode (even when we're compiled in
8265         a lib). Provide accessors to be used by the jit during codegen.
8266
8267 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8268
8269         * appdomain.c: Changed hook functios behavior to include
8270         support for the reflection only assemblies. Some icalls were changed
8271         to support the mentioned assemblies too. Signatures of static methods
8272         try_assembly_resolve and real_load now have an additional parameter:
8273         refonly.
8274
8275         * assembly.c: General changes to mono_assembly_ methods to support
8276         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8277         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8278         suffix, to support an additional gbool parameter to specify whether
8279         the assembli is reflection only or not. Created some new hook functions 
8280         to add support for reflection only assemblies. Signatures of static 
8281         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8282         have now an additional parameter: refonly.
8283
8284         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8285         indicating whether the assembly is reflection only or not.
8286
8287         * exception.c: Add mono_get_exception_invalid_operation.
8288
8289         * icall.c: Throw an InvalidOperationException when trying to invoke
8290         a property/method/event, or trying to set/get the value of a field.
8291         Also add an icall to retrieve the ref_only flag to the
8292         MonoReflectionAssembly.
8293
8294 2005-02-23  Chris Toshok  <toshok@ximian.com>
8295
8296         Part of fix for #72827.
8297         * mono-debug.c (mono_debug_add_method): add lexical block data to
8298         the info we write.  Kind of a hack at the moment - we copy the
8299         lexical block info from the MonoDebugMethodInfo to the
8300         MonoDebugMethodJitInfo here, before writing it.
8301         (mono_debug_read_method): read the lexical block info.
8302
8303         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8304
8305         * debug-mono-symfile.h: add lexical block support.
8306
8307         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8308         support.
8309
8310 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8311
8312         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8313
8314         * object.c (mono_runtime_free_method): Call mono_free_method () and
8315         put the TODOs there.
8316
8317         * loader.c (mono_free_method): Free up most memory allocated for 
8318         dynamic methods.
8319
8320 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8321
8322         * reflection.c: properly flag a Type argument to a
8323         named custom attr value (bug #72248).
8324
8325 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8326
8327         * reflection.c: reduce code duplication in named custom
8328         attribute encoding.
8329
8330 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8331
8332         * reflection.c: properly encode custom attrs of type object
8333         (bug #72649).
8334
8335 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8336
8337         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8338
8339 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8340
8341         * socket-io.c: load System.dll if it's not loaded already
8342         (bug #72850 and #70477).
8343
8344 2005-02-21  Martin Baulig  <martin@ximian.com>
8345
8346         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8347         generic instances.
8348
8349 2005-02-21  Martin Baulig  <martin@ximian.com>
8350
8351         * reflection.c (mono_image_build_metadata): We also need to
8352         "fixup" the MethodImpl table after we computed the final method
8353         indices.  Call fixup_methodimpl() to do that.
8354         (fixup_methodimpl): New private method.
8355
8356 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8357
8358         * assembly.c: special case mscorlib.dll (bug#72536),
8359         patch from Carlos Alberto Cortez.
8360
8361 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8362
8363         * threads-types.h threads.c: Fix build bustage.
8364
8365         * threads.c: Use a union for long<->double conversions.
8366
8367         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8368         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8369
8370         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8371         containing the checkpoint call with NOT_TAKEN.
8372         
8373         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8374         checkpoint before pushing the arguments, so they won't have to be
8375         spilled to stack.
8376
8377 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8378
8379         * domain.c, assembly.c, domain-internals.h: make some data
8380         const and relocation-free.
8381
8382 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8383
8384         * object.c, appdomain.c, class-internals.h: introduce the
8385         MonoClassRuntimeInfo structure to hold the info needed to
8386         use a class at runtime. Made mono_class_vtable() lock-free
8387         for all the appdomains.
8388
8389 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8390
8391         * metadata-internals.h, image.c: introduce a per-image mempool to
8392         be used for memory that has the same lifetime as the image.
8393
8394 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8395
8396         * domain.c: In mono_init_internal(), instead of selecting the first
8397         runtime version supported by an executable, get a list of all
8398         supported versions and select the one for which an mscorlib exists
8399         (since even if the runtime supports a given version, it doesn't mean
8400         that the framework for that version is installed).
8401         Modified get_runtimes_from_exe to support this behavior.
8402         In supported_runtimes, added information about additional system
8403         assembly versions.
8404         
8405         * assembly.c: Added support for more than one system assembly version
8406         per runtime version. Updated the assembly list.
8407         In mono_assembly_remap_version, removed the initial version check,
8408         since we don't know to which version we need to compare until we
8409         get the version set on which the assembly is based.
8410         Moved the code for loading corlib into the new method
8411         mono_assembly_load_corlib(), so it can be used by the initialization
8412         code.
8413         
8414         * domain-internals.h: Updated data structures and added declaration
8415         for mono_assembly_load_corlib.
8416
8417 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8418
8419         * reflection.c (resolve_object): Fix the creation of the signature in 
8420         the SignatureHelper case.
8421
8422         * assembly.c (mono_assembly_remap_version): Fix binary search.
8423         
8424 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8425  
8426         * class.c: Added inheritance check when a method is overloaded (from a
8427         virtual method or when implementing an interface) and when a class is
8428         inherited. Added functions to set a failure for a class and to 
8429         retreive the exception from a failure.
8430         * class-internals.h: Added fields to MonoClass to keep the exception
8431         information status for inheritance (or other exceptions) to be thrown
8432         later (i.e. not at load time).
8433         * object.c: Throw the inheritance SecurityException when a type is to 
8434         be created with either class or method inheritance violations.
8435         * reflection.c|h: Fix when getting declsec from a class. Removed 
8436         unrequired code for class. Improved sanity in parameter naming.
8437         * security-manager.c|h: Added functions to check for class and method
8438         inheritance.
8439
8440 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8441
8442         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8443         and has_finalize in dynamic types as well.
8444
8445 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8446
8447         * culture-info-table.h : fixed currency format for en-GB (and so on).
8448
8449 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8450
8451         * gc.c: ensure the GC handles never have 0 as a value.
8452
8453 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8454
8455         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8456         a pointer to a struct to unmanaged code. Fixes #72625.
8457
8458 2005-02-16  Martin Baulig  <martin@ximian.com>
8459
8460         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8461
8462 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8463
8464         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8465
8466 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8467
8468         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8469
8470         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8471         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8472         etc. Fixes #71471.
8473
8474         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8475
8476         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8477
8478 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8479
8480         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8481         changes to make the current context a field in MonoThread.
8482
8483 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8484
8485         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8486         the last change.
8487         
8488         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8489         extracted from mono_marshal_get_native_wrapper.
8490
8491         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8492         to create wrappers around native functions.
8493
8494         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8495         delegates for arbitrary function pointers. Fixes #71472.
8496
8497 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8498
8499         * threads.c: cleaned up the code a little.
8500
8501 2005-02-15  Martin Baulig  <martin@ximian.com>
8502
8503         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8504         the data table.
8505
8506         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8507         allocate larger chunks if needed.
8508
8509 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8510
8511         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8512         in by mistake.
8513
8514 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8515
8516         * domain.c: keep the domains in an array and ensure the domain ids
8517         are kept small, so they can be used as indexes to domain-specific data
8518         with a small memory overhead.
8519
8520 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8521
8522         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8523
8524 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8525
8526         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8527
8528 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8529
8530         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8531
8532         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8533         values.
8534
8535         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8536         
8537 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8538
8539         * domain-internals.h: add the hashtable here.
8540
8541         * class-internals.h: Remove `info' from MonoMethod
8542
8543         * domain.c: Add a new hashtable, jit_trampoline_hash
8544
8545 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8546
8547         * object.c: don't set the value of static fields
8548         (fixes bug#72494).
8549
8550 2005-02-11  Martin Baulig  <martin@ximian.com>
8551
8552         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8553         (mono_debug_add_method): Silently ignore the method if it's too big.
8554         (mono_debug_add_type): Likewise.
8555
8556 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8557
8558         * threads.c, appdomain.c: remove #ifdefs from the code.
8559
8560 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8561
8562         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8563         common security informations. This allows us to stay in unmanaged code
8564         when doing LinkDemand and it's special cases (except for the first 
8565         time for initialization). The flags a very much used with --security.
8566         * reflection.c|h: Added code to get declarative security attributes 
8567         for LinkDemand and InheritanceDemand. This required to refactor the
8568         existing code for Demand.
8569         * security-manager.c|h: Added new method fields for the special cases
8570         of LinkDemand.
8571
8572 2005-02-10  Martin Baulig  <martin@ximian.com>
8573
8574         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8575         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8576
8577 2005-02-10  Martin Baulig  <martin@ximian.com>
8578
8579         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8580         debugging code; this is almost a complete rewrite.
8581
8582         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8583
8584 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8585
8586         * domain.c, object.h: expose mono_string_equal () and 
8587         mono_string_hash ().
8588         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8589         it's implemented in managed code.
8590
8591 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8592
8593         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8594         lo leak objects between appdomains.
8595
8596 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8597
8598         * assembly.c: old compilers compilation fix from 
8599         robertj@gmx.net (Robert Jordan).
8600
8601 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8602
8603         * class-internals.h: Little reminder for the future.
8604
8605         * debug-helpers.c: Fix up wrapper_type_names
8606
8607 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8608
8609         * image.c, metadata-internals.h: when loading an image from a file,
8610         mmap all of it and use the same codepaths as when using a
8611         in-memory image: the code is simpler and we use less memory
8612         (both writable and readonly).
8613
8614 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8615
8616         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8617         API to alloc runtime data structures that need to be tracked by the
8618         GC and contain pointers.
8619         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8620         make the code more readable and eventually use a different GC.
8621
8622 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8623
8624         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8625         for out arguments.
8626         
8627 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8628
8629         * object.c: In release_type_locks(), don't release the cctor lock
8630         if it has already been released. This fixes a crash in the
8631         thread5 test.
8632
8633 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8634
8635         * gc.c, marshal.c, icall.c: register a delegate for finalization
8636         only when the native function pointer has been allocated for it.
8637
8638 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8639
8640         * object.c: cleaned up some code, allocate objects that are
8641         pointer free with the atomic malloc variant. Allocate memory
8642         for static data from the mempool if it's pointer-free.
8643         Allocate the bounds array at the end of the array data, when needed.
8644         * object-internals.h, object.h: move a private function in a private
8645         header.
8646         * class.c: handle missing case in tracking references in fields.
8647
8648 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8649
8650         * class.c, class-internals.h: keep track if a type has
8651         reference fields in either the instance or static fields.
8652
8653 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8654
8655         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8656         and renamed to MonoRuntimeInfo. Added fields to store the expected
8657         framework assembly version. Changed mono_get_framework_version and
8658         mono_get_runtime_version for a single mono_get_runtime_info method.
8659         
8660         * assembly.c: Added method to remap system assembly versions to the
8661         current executing runtime version. Removed old mapping code.
8662         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8663         
8664         * icall.c, reflection.c: Track api changes.
8665
8666 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8667
8668         * loader.c (method_from_memberref): Improve error reporting,
8669         produce the class name instead of the typeref/typedef index. 
8670
8671 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8672
8673         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8674
8675 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8676
8677         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8678         stdcall and charset name mangling.  Reorganize the code and add
8679         some tracing stuff.
8680
8681 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8682
8683         * monodiet.c: More iters!
8684
8685         * marshal.c: Iter usage.
8686
8687         * icall.c: Iter usage.
8688
8689         * object.c: Use iters.
8690
8691         * debug-helpers.c: More iters
8692
8693 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8694
8695         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8696         under win32.
8697
8698 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8699
8700         * mono-debug-debugger.c: use iters
8701
8702         * class.c, class-internals.h: mono_class_setup_events is static
8703         now
8704
8705         * All callers: use iters
8706
8707 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8708
8709         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8710         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8711
8712 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8713
8714         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8715
8716         * marshal.h: Add prototypes for ldfld/stfld_remote.
8717
8718         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8719         this is called during startup.
8720         
8721 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8722
8723         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8724         MonoThreadsSync struct private in monitor.c. Changed the way
8725         MonoThreadsSync is allocated so it's faster and there is no
8726         need to keep track of it with a finalizer and it uses less memory.
8727         This also finally allows us to allocate mono objects as ptrfree when
8728         there are no reference fields.
8729
8730 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8731
8732         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8733         disappearing link to the GC interface and use them to simplify
8734         the gchandles code.
8735
8736 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8737
8738         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8739         stfld_remote which call mono_load/store_field_new. This allows methods
8740         calling ldfld/stfld wrappers to be AOTed.
8741
8742         * console-io.c: Include sys/filio.h under solaris.
8743         
8744         * console-io.c: Include curses.h if needed correctly.
8745
8746 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8747         
8748         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8749         method->klass as well.
8750
8751         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8752
8753         * class.c (mono_class_init): Switch on lazy initialization of 
8754         methods.
8755
8756         * class.c (mono_class_get_finalizer): Handle the case when the 
8757         finalizer is inherited.
8758
8759 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8760
8761         * console-io.c: <curses.h> is needed by term.h on solaris.
8762
8763 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8764
8765         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8766         mono_class_setup_properties where possible. Remove this ftn from
8767         the header file, and make it static.
8768
8769 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8770
8771         * loader.c: Add missing setup_... call.
8772
8773         * class.c: Add missing setup_... calls.
8774
8775         * class.c (mono_class_init): Switch on lazy initialization of 
8776         the generic vtable.
8777         
8778         * class.c (mono_class_init): Fix generics broken by the recent changes.
8779
8780         * monodiet.c (handle_type): Add missing setup_... calls.
8781
8782         * class.c: Back out garbage in previous patch.
8783         
8784         * class.c: Add missing setup_... calls.
8785
8786         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8787         mono_class_setup_methods () if possible.
8788
8789         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8790
8791         * class-internals.h (MonoCachedClassInfo): New structure.
8792
8793         * class.c: Initialize properties and events fields of MonoClass lazily.
8794
8795         * class.c: Add infrastructure for lazily initializing the methods and
8796         vtable fields of MonoClass. Not yet used.
8797
8798         * class.c (mono_class_get_finalizer): New helper function.
8799
8800         * class.c: Add infrastructure for loading some class related data from
8801         an AOT file.
8802
8803         * object.c: Add infrastructure for initializing the vtable from data
8804         in the AOT file.
8805
8806         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8807
8808         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8809         appropriate initialization function before accessing parts of the
8810         MonoClass structure.
8811
8812         * marshal.c: Fix warnings.
8813         
8814         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8815
8816         * mono-debug-debugger.c (get_exception_message): Use 
8817         mono_class_get_method_from_name_flags ().
8818
8819 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8820
8821         * reflection.c, appdomain.c: Replace a few manual searches that
8822         Zoltan missed. (Paolo approved this part of my initial patch).
8823
8824 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8825
8826         * profiler.c: disable recording statistical events at report time.
8827
8828 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8829
8830         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8831         to byteswap arrays of enum values, too (bug #72080).
8832
8833 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8834
8835         * appdomain.c (set_domain_search_path): Allow this to be called if
8836         domain->setup is not yet set.
8837
8838         * loader.c (mono_method_get_index): New helper function.
8839
8840         * loader.c reflection.c: Use mono_method_get_index ().
8841
8842         * class.c (mono_class_get_method_from_name_flags): New helper method.
8843
8844         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8845         this.
8846
8847         * class.c (mono_class_get_cctor): New helper method.
8848
8849         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8850         mono_class_get_method () to look up methods.
8851
8852 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8853
8854         * console-io.c: Fix the build, this should work on Windows.
8855
8856 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8857
8858         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8859         be set to null to keep things valid
8860
8861 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8862
8863         * icall.c: added Console 2.0 icalls.
8864         * Makefile.am: added console-io.[ch]
8865         * console-io.[ch]: internal calls for Console 2.0 API.
8866
8867 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8868
8869         * class.c: make sure we consider all the interfaces
8870         when calculating max_interface_id (bug found by
8871         Jeroen Frijters running ikvm).
8872
8873 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8874
8875         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8876         valuetype fields to null.
8877
8878         * object.c (set_value): Ditto. Fixes #71669.    
8879
8880 2005-01-31  Martin Baulig  <martin@ximian.com>
8881
8882         * metadata.c (mono_metadata_has_generic_params): New public
8883         function; checks whether something is a generic method.
8884
8885 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8886
8887         * appdomain.c: fix infinite recursion when adding assemblies.
8888
8889 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8890
8891         * object.c: Fix small typo to return all items for Environment.
8892         GetCommandLineArgs.
8893
8894 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8895
8896         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8897         reflection.c: more domain and assembly-unload related fixes
8898         and memory leaks plugs.
8899
8900 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8901
8902         * 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.
8903
8904 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8905
8906         * loader.c (mono_method_signature): Make this method lazy
8907         (mono_get_method_from_token): Don't computate the signature here.
8908
8909         Doing this saves quite a bit of memory. I got 90 kb on starting up
8910         monodoc. It should also save some disk reads on startup.
8911
8912         * *: MonoMethod->signature might be NULL now. You *MUST* use
8913         mono_method_signature.
8914
8915 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8916
8917         * object.c (mono_runtime_get_main_args): Return an array from the
8918         current domain here. Fixes #71938.
8919
8920 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8921
8922         * monitor.c: formatting changes to comply with the
8923         mono coding style and remove #ifdefs from the code.
8924
8925 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8926
8927         * metadata.c, private.h: remove some unneeded data
8928         and use a more compact representation for table schemas.
8929
8930 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8931
8932         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8933         to get a better distribution in hash tables.
8934         * *.c: use mono_aligned_addr_hash() where appropriate.
8935         * assembly.c: make var static.
8936
8937 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8938
8939         * domain-internals.h: Put MonoJitInfo on a diet.
8940
8941         * domain.c: Fix a warning.
8942
8943 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8944
8945         * gc.c: rework the gc handles code to reuse handles
8946         when freed.
8947
8948 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8949
8950         * domain.c: fixed long standing bug in mono_string_equal() which
8951         was brought to light with the ldstr changes.
8952
8953 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8954
8955         * reflection.c: Remove warning by adding missing include for marshal.h
8956
8957 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8958
8959         * domain.c, object.c: change the ldstr_table to hold
8960         MonoString* as keys: makes the runtime isinterned lookup
8961         faster and simplifies memory management.
8962
8963 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8964  
8965         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8966         possible to add imperative security checks before calling the icall.
8967         * reflection.c: Return security attributes on the original MonoMethod
8968         (and not the wrapped one). This fix permissions on icalls.
8969
8970 2005-01-25  Dick Porter  <dick@ximian.com>
8971
8972         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8973         the check for mktime() support actually test the mktime() return
8974         value.  "Fixes" bug 71682, though the output is still different to
8975         MS.
8976
8977 2005-01-25  Martin Baulig  <martin@ximian.com>
8978
8979         * class.c (mono_class_is_assignable_from): Make this work for
8980         generic instances.
8981
8982 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8983
8984         * marshal.c (mono_string_utf8_to_builder)
8985         (mono_string_builder_to_utf16): We might not have ownership of the
8986         string. In thise case, we need to create a new buffer.
8987
8988         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8989         be null, in which case, use the default capacity.
8990
8991 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8992
8993         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8994         GC events to the profiler.
8995
8996 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8997
8998         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8999         if you don't want the GC to run.
9000
9001 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9002
9003         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9004         start providing a GC API and keeping different implementations in
9005         their own file.
9006         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9007
9008 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9009
9010         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9011         mmap rather than allocating a huge buffer.
9012         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9013         above.
9014
9015 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9016
9017         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9018         and CheckExecutionRights.
9019         * reflection.c|h: Keep the index of the declarative security to be 
9020         used, instead of the pointer, when AOT compiler is used. Also add 
9021         class initialization when requesting demands.
9022         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9023         CheckExecutionRights. Both properties are now FALSE by default, and
9024         unmodifiable, unless the --security option is used.
9025
9026 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9027
9028         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9029         reflection.c: properly refcount images and assemblies, many leaks fixed.
9030
9031 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9032
9033         * threadpool.c: increase the timeout for threads in the thread pool to
9034         10s.  Fixes bug #67159.
9035
9036 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9037
9038         * class-internals.h: Sun's compiler insists on explicit
9039         signed on bit fields to handle then correctly.
9040
9041 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9042
9043         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9044         Make the size of the array fit only the number of invalid path
9045         chars that we have.
9046
9047         * class.c (_mono_class_get): Improve the error reporting when a
9048         class referenced is not found, to assist debugging. 
9049
9050 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9051
9052         * threads.c: fix off-by-one error.
9053         * domain.c: free data allocated in the domain.
9054
9055 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9056
9057         * reflection.c (mono_method_body_get_object): Fill out exception info
9058         as well.
9059
9060         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9061         structure.
9062         
9063 2005-01-19  Martin Baulig  <martin@ximian.com>
9064
9065         * loader.c (mono_get_method_constrained): Make this work again.
9066
9067 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9068
9069         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9070         guint16 to match the managed side.
9071
9072         * reflection.c (mono_reflection_body_get_object): Fill out local
9073         variables array.
9074
9075         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9076         as well.
9077
9078         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9079         'local_var_sig_token'.
9080
9081 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9082
9083         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9084         System.Drawing.
9085
9086         * reflection.c (mono_method_body_get_object): Handle abstract and
9087         runtime methods.
9088
9089 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9090
9091         * marshal.c, loader.c, class-internals.h, reflection.c:
9092         store the emthod data for a wrapper in an array instead of a list.
9093
9094 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9095
9096         * marshal.c: change the code to allocate memory more
9097         conservatively for method wrappers.
9098
9099 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9100
9101         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9102         fields from MonoClass to the marshal info structure where they belong.
9103
9104 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9105
9106         * class.c, object.c, class-internals.h, marshal.c: rearrange
9107         some fields and tweak some types to lower memory usage.
9108
9109 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9110
9111         * threads.c (signal_thread_state_change): Handle the case when the
9112         target thread is the current thread.
9113
9114         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9115
9116         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9117         emit_ptr_to_object_conv. 
9118
9119         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9120         marshalling. Fixes #71352.
9121
9122 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9123
9124         * metadata.h, blob.h: move table enum to blob.h so it can be included
9125         in any header.
9126         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9127         cut the size of MonoImage/MonoDynamicImage.
9128
9129 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9130
9131         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9132
9133 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9134
9135         * reflection.c, reflection.h, icall.c: add a function to check
9136         if an attribute type is defined for a metadata object.
9137
9138 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9139
9140         * object-internals.h: Added some needed fields from StringBuilder class.
9141         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9142
9143 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9144
9145         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9146         threads before shutting down the runtime.
9147
9148         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9149
9150 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9151
9152         * object-internal.h, threads.c: implement stacksize and 
9153         parameterized thread start functionality (requires
9154         matching corlib). Marked broken code for later removal.
9155
9156 2005-01-12  Martin Baulig  <martin@ximian.com>
9157
9158         * class-internals.h (MonoGenericClass): Moved the `initialized'
9159         flag to MonoDynamicGenericClass, removed `init_pending'.
9160         (MonoGenericInst): Added `is_reference' flag.
9161
9162 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9163
9164         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9165         inside the MSDOS header. Fixes #71201.
9166
9167         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9168         gc thread.
9169         (mono_domain_finalize): Ditto.
9170
9171 2005-01-12  Martin Baulig  <martin@ximian.com>
9172
9173         * class.c (mono_get_shared_generic_class): Use the cache for
9174         non-dynamic generic classes.
9175
9176         * class-internals.h (mono_class_create_generic_2): Removed
9177         function prototype, this function is now static inside class.c.
9178
9179         * class.c (mono_class_create_generic_2): Made this static, only
9180         call it from mono_class_init() and mono_class_setup_parent().
9181         (collect_implemented_interfaces_aux): Call mono_class_init() on
9182         the interfaces we collect.
9183         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9184
9185 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9186
9187         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9188         it a real thread handle.
9189
9190         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9191         MonoJitExceptionInfo, since each catch clause needs its own variable.
9192         
9193 2005-01-11  Dick Porter  <dick@ximian.com>
9194
9195         * image.c (mono_pe_file_open): New variant on mono_image_open()
9196         that does not set up the CLI metadata; used for FileVersionInfo so
9197         it can get the data for windows binaries too.
9198         
9199         * process.c (process_read_string_block): Don't read off the end of
9200         the StringTable block.
9201
9202         These both fix bug 70766.
9203
9204 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9205
9206         * gc.c: set some fields to NULL at GC cleanup time.
9207         * threads.c: if we quit the main thread, call exit ().
9208
9209 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9210
9211         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9212
9213 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9214
9215         * threads.h, threads.c, object.c: added accessor and settor for
9216         main_thread. Handle it specially when exiting from it: wait
9217         for other foreground threads to exit.
9218
9219 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9220
9221         * process.c, verify.c: remove some bloat.
9222
9223 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9224
9225         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9226         the calling convention to cdecl under win32.
9227
9228 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9229
9230         * object.c (mono_object_get_size): New function to get the size of
9231         an object instance.
9232
9233         * profiler.c (simple_allocation): Use above.
9234
9235 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9236
9237         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9238         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9239         get an appdomain by it's id and we can't assume the root's id is 0).
9240         * domain-internals.h: Change the function prototype to match.
9241         * icall.c: Change the icall table for AppDomain.
9242
9243 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9244
9245         * locales.c (string_invariant_compare_char): Only compute
9246         GUnicodeTypes in the case where we need them.  Test for ordinality
9247         first and return if so.
9248
9249         From the commit:
9250
9251                 /*
9252                  * FIXME: here we must use the information from c1type and c2type
9253                  * to find out the proper collation, even on the InvariantCulture, the
9254                  * sorting is not done by computing the unicode values, but their
9255                  * actual sort order.
9256                  */
9257
9258 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9259
9260         * loader.c: for P/Invoke methods, allow the "Internal" shared
9261         library name to refer to the calling process symbol namespace.
9262
9263 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9264
9265         * Makefile.am: Add the security manager to the build.
9266         * security-manager.c|h: New. Initialization of the security manager.
9267
9268 2005-01-07  Dick Porter  <dick@ximian.com>
9269
9270         * threads.c: 
9271         * monitor.c: Update thread state during Monitor and WaitHandle
9272         waits.  Fixes bug 71031.
9273
9274 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9275
9276         * reflection.c (property_encode_signature): Correctly handle when the
9277         property has no methods.
9278
9279 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9280
9281         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9282         
9283         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9284         fields from mb, not rmb. Fixes #71017.
9285
9286         * marshal.c (emit_ptr_to_str_conv): Add support for 
9287         ByValTStr -> string conversion. Fixes #71015.
9288
9289         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9290
9291         * mempool.c (mono_mempool_contains_addr): New helper function.
9292
9293 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9294
9295         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9296         HasSematics encoded fields.
9297         
9298         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9299         invalid string marshalling.
9300
9301         * metadata.c: Fix warnings.
9302         
9303 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9304
9305         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9306         profiler support.
9307
9308 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9309
9310         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9311         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9312         tests.
9313
9314 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9315
9316         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9317         so methods containing these can be AOTed.
9318
9319 2005-01-03  Martin Baulig  <martin@ximian.com>
9320
9321         * loader.c (find_method): Removed the hack for generic instances.
9322         (method_from_memberref): If our parent is a generic instance, pass
9323         its generic type definition to find_method() and then inflate the
9324         method.
9325         (mono_get_method_constrained): Pass the generic type definition to
9326         find_method() and inflate the method later.
9327
9328         * class-internals.h (MonoStats): Added `generic_class_count'.
9329
9330         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9331         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9332
9333         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9334         generic type definitions.
9335
9336 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9337
9338         * loader.c icall.c: Fix warnings.
9339
9340 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9341
9342         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9343         blittable types. Fixes #70864.
9344
9345 2004-12-29  Martin Baulig  <martin@ximian.com>
9346
9347         * icall.c
9348         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9349
9350         * reflection.c (mono_method_get_object): Create a
9351         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9352         call mono_get_inflated_method().
9353
9354         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9355
9356 2004-12-27  Martin Baulig  <martin@ximian.com>
9357
9358         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9359         (MonoMethodInflated): Added `inflated' field.
9360
9361         * class.c (mono_class_inflate_generic_method): Don't really
9362         inflate the method here; just set the `is_inflated' flag in the
9363         MonoMethod.
9364         (mono_class_get_inflated_method): Actually inflate the method here
9365         if it's not already inflated; we use the MonoMethodInflated's new
9366         `inflated' field as a cache.
9367
9368 2004-12-26  Martin Baulig  <martin@ximian.com>
9369
9370         * class.c
9371         (inflate_generic_class): Moved some code out of inflate_generic_type().
9372         (mono_class_inflate_generic_method): If we're already inflated,
9373         inflate the context and use the declaring method; ie. make sure
9374         the declaring method of an inflated method is always the generic
9375         method definition.
9376         (mono_class_create_from_typedef): Create
9377         `class->generic_container->context->gclass'.
9378
9379 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9380
9381         * metadata-internals.h, marshal.c, reflection.c: More
9382         MonoGHashTable->GHashTable.
9383
9384         * domain-internals.h, class.c: Change MonoGHashTable's into
9385         GHashTables for some cases where no gc stuff is used
9386
9387         All users: update apis
9388
9389 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9390
9391         * metadata.c (builtin_types): Make this `const'. Makes this get
9392         put into the shareable section.
9393         (mono_metadata_init): Casts to make gcc happy.
9394
9395 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9396
9397         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9398
9399 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9400
9401         * icall.c: Added an internal call to retrieve the position and length
9402         of assembly-level declarative security attributes (RequestMinimum, 
9403         RequestOptional and RequestRefuse). This is used by the Assembly class
9404         to re-create the corresponding permission sets.
9405
9406 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9407
9408         * marshal.c: fix the stelemref wrapper to be type correct
9409         (and faster).
9410
9411 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9412
9413         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9414         to do key & 0x7fffffff. Hashtable already does this. It just
9415         results in longer code.
9416
9417 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9418
9419         * appdomain.c: Bump corlib version.
9420         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9421         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9422         * reflection.c|h: Add functions to get declarative security infos
9423         (blob position and length) for assemblies, classes and methods.
9424
9425 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9426
9427         * reflection.c: sort the constant table (bug #70693).
9428
9429 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9430
9431         * object-internals.h, threads.c, domain.c: add accessors for
9432         the MonoThread and MonoDomain tls keys.
9433
9434 2004-12-18  Martin Baulig  <martin@ximian.com>
9435
9436         * class.c (inflate_generic_type): If we're inflating a generic
9437         instance, set `ngclass->context->container = context->container';
9438         ie. the container we inflated into.
9439
9440         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9441         inflate_generic_type() changes.
9442
9443 2004-12-17  Martin Baulig  <martin@ximian.com>
9444
9445         * class-internals.h
9446         (MonoGenericClass): Replaced `MonoType *generic_type' with
9447         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9448         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9449         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9450
9451 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9452
9453         * exception.c (mono_exception_from_token): New helper function.
9454
9455 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9456
9457         * assembly.c (mono_assembly_load_with_partial_name): Call 
9458         mono_assembly_loaded before invoking the preload hooks. Fixes
9459         #70564.
9460
9461         * object-internals.h (MonoThread): Change culture_info and 
9462         ui_culture_info into an array.
9463
9464         * threads.c: Cache culture info objects from more than one appdomain.
9465
9466         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9467         current UI culture.
9468
9469 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9470
9471         * threads.h threads.c appdomain.c: Clear the culture_info field of
9472         all threads during unloading if they point to an object in the dying
9473         appdomain.
9474
9475 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9476
9477         * culture-info.h (TextInfoEntry): New struct
9478         * object-internals.h: sync with managed
9479         * locales.c: fill the `text_info_data' field
9480         * culture-info-tables.h: update
9481
9482 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9483
9484         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9485         collector.
9486
9487 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9488
9489         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9490         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9491
9492 2004-12-12  Martin Baulig  <martin@ximian.com>
9493
9494         * mono-debug-debugger.c (write_type): If we're an enum and the
9495         builtin types have already been initialized, call mono_class_init().
9496
9497 2004-12-11  Martin Baulig  <martin@ximian.com>
9498
9499         * metadata.c (mono_metadata_load_generic_params): Added
9500         `MonoGenericContainer *parent_container' argument; automatically
9501         compute `container->is_method'; pass the correct owner to
9502         get_constraints().      
9503
9504         * reflection.c (compare_genericparam): Sort the GenericParam table
9505         according to increasing owners. 
9506
9507 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9508
9509         * profiler.c: allow disabling the default profiler.
9510
9511 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9512
9513         * decimal.c, icall.c: allow disabling System.Decimal support.
9514
9515 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9516
9517         * reflection.c: Add support for null attribute arguments.
9518
9519 2004-12-09  Martin Baulig  <martin@ximian.com>
9520
9521         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9522         names to get rid of compiler warnings.
9523
9524 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9525
9526         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9527         mono_marshal_load_type_info (). Fixes #69625.
9528         (mono_marshal_get_ptr_to_struct): Likewise.
9529
9530 2004-12-08  Martin Baulig  <martin@ximian.com>
9531
9532         * mono-debug.h: Bumped version number to 47.
9533
9534         * mono-debug-debugger.c
9535         (mono_debugger_event_handler, mono_debugger_event): Take two
9536         guint64 arguments insteed of a gpointer and a guint32.  
9537
9538 2004-12-08  Martin Baulig  <martin@ximian.com>
9539
9540         * debug-mono-symfile.h
9541         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9542         `address' to `native_offset'.
9543
9544 2004-12-08  Martin Baulig  <martin@ximian.com>
9545
9546         * class.c (mono_class_create_from_typespec): Only inflate if we
9547         either have `context->gclass' or `context->gmethod'.
9548
9549 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9550
9551         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9552
9553         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9554
9555         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9556
9557         * reflection.c (mono_assembly_get_object): Remove the workaround put
9558         in for the release.
9559         
9560         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9561
9562         * appdomain.c: Bump corlib version.
9563
9564         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9565         be visible in other appdomains.
9566
9567 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9568
9569         * threads.c: Interlocked inc and dec for longs were messed up,
9570         use a KISS based impl for this. Fixes 70234
9571
9572 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9573
9574         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9575
9576 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9577
9578         * icall.c: fix to follow policy not to allow struct
9579         arguments in icalls.
9580
9581 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9582
9583         * process.c: make the patch that handles spaces in file paths work
9584         on mono/windows too.
9585
9586 2004-12-06  Martin Baulig  <martin@ximian.com>
9587
9588         * class.c (mono_class_create_generic): Call
9589         mono_class_setup_supertypes() if we're dynamic.
9590         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9591
9592 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9593
9594         * object-internals.h: Add new fields to MonoThread.
9595
9596         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9597
9598         * icall.c threads-types.h threads.c: Add new icalls.
9599
9600         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9601
9602         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9603         managed side.
9604
9605         * appdomain.c: Bump corlib version.
9606
9607         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9608         internal assemblies. Fixes #69181.
9609
9610 2004-12-05  Martin Baulig  <martin@ximian.com>
9611
9612         * class.c (mono_class_inflate_generic_signature): Make this a
9613         no-op if `context' is NULL or we don't have any type parameters;
9614         also copy `sentinelpos'.        
9615
9616 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9617
9618         * image.c: Add unbox_wrapper_cache.
9619
9620         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9621
9622         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9623         function generator.
9624         
9625         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9626         Fixes #70173.
9627
9628         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9629         
9630 2004-12-04  Martin Baulig  <martin@ximian.com>
9631
9632         * loader.c (mono_method_get_signature_full): New public function;
9633         like mono_method_get_signature(), but with an additional
9634         `MonoGenericContext *' argument.
9635
9636         * class.c (mono_class_inflate_generic_signature): Formerly known
9637         as inflate_generic_signature(); make this public.
9638
9639 2004-12-04  Martin Baulig  <martin@ximian.com>
9640
9641         * metadata.c
9642         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9643         instead of a `MonoGenericContainer *'.  
9644         (mono_metadata_parse_array_full): Likewise.
9645         (mono_metadata_parse_signature_full): Likewise.
9646         (mono_metadata_parse_method_signature_full): Likewise.
9647         (mono_metadata_parse_generic_inst): Likewise.
9648         (mono_metadata_parse_generic_param): Likewise.
9649         (mono_metadata_parse_mh_full): Likewise.
9650         (mono_type_create_from_typespec_full): Likewise.
9651
9652 2004-12-03  Martin Baulig  <martin@ximian.com>
9653
9654         * class-internals.h (MonoGenericContainer): Replaced the
9655         `MonoGenericContext * pointer with a `MonoGenericContext'
9656         structure and made it the first element.
9657
9658 2004-12-03  Martin Baulig  <martin@ximian.com>
9659
9660         * class.c
9661         (inflate_generic_type): Set the `context->container' when creating
9662         a new MonoGenericContext.
9663         (mono_class_inflate_generic_method): Likewise.
9664         (mono_class_create_from_typespec): Just use `context->container'
9665         to get the container.
9666
9667         * loader.c (method_from_methodspec): Set `context->parent' from
9668         `context->container' - and if that's a method container, use its
9669         parent.  Also set the `context->container' when creating a new
9670         MonoGenericContext.
9671         (mono_get_method_from_token): Use just `context->container' to get
9672         the container.
9673
9674         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9675         `gclass->context->container'.
9676
9677         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9678         the `context->container' when creating a new MonoGenericContext.
9679
9680 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9681
9682         * reflection.c (compare_genericparam): Sort params with identical
9683         owner by their number. Fixes gen-111 on sparc.
9684
9685 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9686
9687         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9688         around the domain changes.
9689
9690         * appdomain.c (mono_domain_unload): Handle the case when the thread
9691         calling Unload is itself being aborted during unloading. Fixes #70022.
9692
9693         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9694
9695         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9696         checkpoint_func as an icall so it gets a wrapper.
9697         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9698         in the cross-appdomain wrappers too.
9699
9700         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9701
9702         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9703
9704         * reflection.c: Fix some memory leaks.
9705         
9706 2004-12-02  Martin Baulig  <martin@ximian.com>
9707
9708         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9709
9710         * metadata.c (generic_class_cache): New static hashtable.
9711         (mono_metadata_lookup_generic_class): New public method.
9712
9713 2004-12-02  Martin Baulig  <martin@ximian.com>
9714
9715         * class.c (mono_class_create_from_typedef): Call
9716         mono_class_setup_parent() and mono_class_create_mono_type() before
9717         parsing the interfaces.
9718
9719 2004-12-02  Martin Baulig  <martin@ximian.com>
9720
9721         * metadata.c (generic_inst_cache): New static hashtable.
9722         (mono_metadata_lookup_generic_inst): New public function.
9723         (mono_metadata_inflate_generic_inst): New public function.
9724         (mono_metadata_parse_generic_inst): New public function.
9725         (do_mono_metadata_parse_generic_class): Use the new
9726         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9727         since this'll also use the cache.
9728
9729         * reflection.c (mono_reflection_bind_generic_method_parameters):
9730         Use mono_metadata_lookup_generic_inst() to use the new cache.
9731
9732         * class.c (inflate_mono_type): Use
9733         mono_metadata_inflate_generic_inst() to inflate a generic
9734         instance; this'll also use the new cache.
9735
9736         * loader.c (method_from_methodspec): Use
9737         mono_metadata_parse_generic_inst() and
9738         mono_metadata_inflate_generic_inst() rather than parsing it
9739         manually, so we can use the new cache.
9740
9741 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9742
9743         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9744         the wait times out.
9745
9746 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9747
9748         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9749         iter->args based on whether parameters are passed in registers (i.e.
9750         MONO_ARCH_REGPARMS is defined)
9751
9752 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9753
9754         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9755         the exception message. Fixes #70070.
9756         (method_from_methodspec): Fix warnings.
9757
9758 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9759
9760         * process.c: (complete_path) return the path quoted
9761
9762 2004-12-01  Martin Baulig  <martin@ximian.com>
9763
9764         * class-internals.h (MonoGenericInst): New structure.
9765         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9766         `is_open' with `MonoGenericInst *inst'.
9767         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9768         `is_open' with `MonoGenericInst *inst'.
9769
9770 2004-11-30  Martin Baulig  <martin@ximian.com>
9771
9772         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9773
9774         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9775         to `generic_class_cache'.
9776
9777         * metadata.c
9778         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9779         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9780         (mono_generic_inst_is_valuetype): Renamed to
9781         mono_generic_class_is_valuetype().
9782
9783         * class-internals.h
9784         (MonoGenericInst): Renamed to MonoGenericClass.
9785         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9786         (MonoClass): Renamed `generic_inst' to `generic_class'.
9787         (MonoGenericContext): Renamed `ginst' to `gclass'.
9788
9789         * object-internals.h
9790         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9791
9792         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9793         mono_reflection_generic_class_initialize().
9794
9795         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9796         now known as "System.Reflection.MonoGenericClass".
9797         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9798
9799 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9800
9801         * class-internals.h: Added a flag field to MonoClass to cache the
9802         declarative security attributes actions associated with the class.
9803         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9804         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9805         applicable to the JITted method.
9806         * reflection.c|h: Added functions to extract (as flags) which security
9807         actions are available (declaratively) for a method, class or assembly.
9808         * metadata.c|h: Added functions to search the declarative security
9809         table in the metadata.
9810         
9811 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9812
9813         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9814         EXPORTEDTYPES are already in the class name cache, so there is no
9815         need to add extra code here to look at them. Just removes a bit of
9816         cruft.
9817
9818         (ves_icall_System_Environment_get_TickCount): No need for #if
9819         WINDOWS. We already have the code in io-layer.
9820
9821 2004-11-28  Martin Baulig  <martin@ximian.com>
9822
9823         * loader.c
9824         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9825         Fixes gen-112.cs.
9826
9827 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9828
9829         * assembly.c (do_mono_assembly_open): Instead of having a
9830         conditional WITH_BUNDLE, incorporate support for bundles here, by
9831         having a global `bundles' variable holding a pointer to the actual
9832         bundles. 
9833
9834         (mono_register_bundled_assemblies): New API call used by the
9835         bundle code. 
9836
9837         See mkbundle.1 for details.
9838         
9839 2004-11-27  Martin Baulig  <martin@ximian.com>
9840
9841         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9842         the vtable for generic methods.
9843
9844 2004-11-26  Martin Baulig  <martin@ximian.com>
9845
9846         * metadata.c
9847         (mono_metadata_generic_method_hash): New public function.
9848         (mono_metadata_generic_method_equal): Likewise.
9849
9850         * class-internals.h
9851         (MonoGenericContainer): Added `GHashTable *method_hash'.
9852
9853         * reflection.c (ReflectionMethodBuilder): Added
9854         `MonoGenericContainer *generic_container'.
9855         (reflection_methodbuilder_to_mono_method): Don't create a new
9856         MonoGenericContainer each time we're called.
9857         (mono_reflection_bind_generic_method_parameters): Use
9858         `container->method_hash' to cache the results so we don't create a
9859         different method if we're called several times with the same
9860         arguments.
9861
9862         * loader.c (method_from_methodspec): Use the new
9863         `container->method_hash' here, too.
9864
9865 2004-11-26  Martin Baulig  <martin@ximian.com>
9866
9867         * class.c (inflate_generic_signature): Correctly compute
9868         `res->has_type_parameters'.
9869         (mono_class_vtable): Use the `has_type_parameters' flag to
9870         determine whether we're a generic method.
9871
9872         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9873
9874 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9875
9876         * object.c (mono_runtime_run_main): Fix a small memory leak.
9877
9878 2004-11-25  Martin Baulig  <martin@ximian.com>
9879
9880         * class.c (set_generic_param_owner): Fixed the loop.
9881
9882 2004-11-25  Martin Baulig  <martin@ximian.com>
9883
9884         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9885         generic methods.
9886
9887 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9888
9889         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9890         names. Fixes #69787.
9891
9892 2004-11-24  Martin Baulig  <martin@ximian.com>
9893
9894         * class.c (mono_class_create_generic_2): If we don't have a
9895         `ginst->parent', inflate `gklass->parent' to get our parent.
9896
9897 2004-11-24  Martin Baulig  <martin@ximian.com>
9898
9899         * reflection.c (compare_genericparam): Correctly sort the
9900         GenericParam table; fixes #69779.
9901
9902 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9903
9904         * reflection.c: When writing a PE file, don't create a huge
9905         buffer in memory. Just write the arrays we have to the file.
9906         This reduces memory usage.
9907
9908         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9909         globally.
9910
9911 2004-11-17  Martin Baulig  <martin@ximian.com>
9912
9913         * class.c (mono_class_init): Don't setup `class->parent' for
9914         dynamic instances; moved this to mono_class_generic_2().
9915         (mono_class_create_generic): Also set `klass->inited' for dynamic
9916         generic instances.
9917         (mono_class_create_generic_2): Don't do anything for dynamic
9918         generic instances.  Set `klass->parent' here and also call
9919         mono_class_setup_parent() here. 
9920
9921         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9922         `MonoType *parent' argument; set `ginst->parent' before calling
9923         mono_class_create_generic_2(), so we set the correct parent.
9924
9925 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9926
9927         * reflection.c: allow getting attributes from ModuleBuilder
9928         (used by ikvm).
9929
9930 2004-11-17  Martin Baulig  <martin@ximian.com>
9931
9932         * class.c (mono_class_create_from_typedef): If a type parameter is
9933         inherited from an outer class, set its owner to that class.
9934
9935 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9936
9937         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9938           for (int*) written size. This fixes bug #69592.
9939
9940 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9941
9942         * icall.c: Added IsAuthenticodePresnet internal call.
9943         * image.c|h: New function that check a MonoImage for an Authenticode
9944         signature in the certificate PE data directory.
9945         * security.c|h: New internal call to ask the runtime if an 
9946         Authenticode signature seems referenced in the PE header.
9947
9948 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9949
9950         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9951
9952         * reflection.c (mono_image_create_pefile): Free the assembly streams
9953         after writing out the assembly file.
9954
9955         * object.c (mono_runtime_run_main): Fix small memory leak.
9956
9957         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9958         property access modifiers. Fixes #69389.
9959
9960 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9961
9962         * domain.c, object.c, object-internals.h, domain-internals.h,
9963         object.h, marshal.c: keep dynamic code info per domain.
9964
9965 2004-11-15  Martin Baulig  <martin@ximian.com>
9966
9967         * class.c (mono_type_get_name_recurse): Put type arguments in
9968         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9969         see bug #68387.
9970
9971 2004-11-15  Martin Baulig  <martin@ximian.com>
9972
9973         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9974         (mono_class_setup_vtable): When computing `the_cname' for a
9975         generic instance, don't include the namespace since we'd otherwise
9976         add it twice.
9977
9978 2004-11-15  Martin Baulig  <martin@ximian.com>
9979
9980         * class.c (mono_class_create_generic): Changed return type to void.
9981         (mono_class_create_generic_2): New public function; setup
9982         `class->method', `class->field' and `class->interfaces' here
9983         instead of in mono_class_init().
9984
9985         * class.h (mono_class_create_generic): Moved to class-internals.h.
9986
9987 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9988
9989         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9990         rather than writing to memory, write to this file. Right now,
9991         we are just writting into a buffer, and copying that. However
9992         we can avoid the buffer later.
9993
9994         (mono_dynamic_stream_reset): new function
9995
9996         * icall.c, object-internals.h: update for the above.
9997
9998 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9999
10000         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10001         have been using gc'd memory. First it is slower, unlikely
10002         the comment in the source code said, secondly, it increases
10003         our footprint to do it in the gc.
10004
10005         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10006         the method so that it does not have to copy to managed code.
10007
10008 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10009
10010         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10011
10012 2004-11-12  Martin Baulig  <martin@localhost>
10013
10014         * reflection.c (mono_image_create_token): Allow generic method
10015         definitions here, since they may appear in an `.override'; see
10016         gen-98/gen-99 for an example.
10017
10018 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10019
10020         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10021         #69365.
10022
10023         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10024         descriptive.
10025
10026 2004-11-11  Martin Baulig  <martin@ximian.com>
10027
10028         * class.c (mono_class_setup_vtable): In an explicit interface
10029         implementation, the method name now includes the arity.
10030
10031 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10032
10033         * object.c (mono_array_full_copy): Fix warning.
10034
10035 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10036
10037         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10038         mono_class_get_method_from_name() instead.
10039         
10040         * class-internals.h: Added two new types of wrappers. 
10041         Added MonoRemotingTarget enum. Added new trampoline function type, which
10042         takes an additional MonoRemotingTarget value as parameter, so it is
10043         possible to request a trampoline for a specific target.
10044         
10045         * class.c: Added new mono_class_get_method_from_name() method.
10046         
10047         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10048         general remoting sinks and one specific for cross domain calls.
10049         
10050         * debug-helpers.c: Added new wrapper names.
10051         
10052         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10053         of a remote class.
10054         
10055         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10056         
10057         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10058         with several other methods (mono_marshal_get_xappdomain_dispatch,
10059         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10060         and others) can generate a fast remoting wrapper for cross domain calls.
10061         More information can be found in docs/remoting.
10062         Other changes: Removed mono_find_method_by_name, and used
10063         mono_class_get_method_from_name instead.
10064         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10065         is stored in the remoting invoke hashtable.
10066         
10067         * marshal.h: published the new method for getting the xdomain wrapper,
10068         and also added a method for getting the adequate wrapper for a given
10069         method and target.
10070         
10071         * object-internals.h, object.c: Added a couple of methods for capying and
10072         cloning arrays.
10073         Modified mono_install_remoting_trampoline, which takes the new remoting
10074         trampoline that has a remoting target as parameter.
10075         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10076         will return the most suitable vtable for the target.
10077         Added mono_remote_class_vtable, which returns the vtable of a remote class
10078         (which can be the normal remoting vtable or the xdomain vtable).
10079         
10080         * threads.c: the xdomain invoke and dispatch wrappers must also be
10081         protected against interruptions.
10082
10083 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10084
10085         * icall.c: use memmove in BlockCopyInternal when the source and
10086         destination arrays are the same.
10087
10088 2004-11-09  Martin Baulig  <martin@ximian.com>
10089
10090         * class-internals.h (MonoGenericContainer): Removed `method' and
10091         `signature', replaced them with `is_method' and `is_signature'
10092         flags.  Added `context'.
10093
10094         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10095         instead of a `MonoGenericContainer *'.
10096
10097         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10098         for dynamic type parameters.
10099         (mono_metadata_load_generic_params): Setup `container->context'.
10100
10101         * reflection.c (mono_reflection_setup_generic_class): Setup
10102         `tb->generic_container->context'.
10103         (do_mono_reflection_bind_generic_parameters): Use
10104         mono_class_inflate_generic_type() to correctly inflate types,
10105         rather than using our own hack just for MONO_TYPE_VAR.
10106
10107 2004-11-09  Martin Baulig  <martin@ximian.com>
10108
10109         * class.c (mono_class_inflate_generic_method): Small fix; don't
10110         crash here.
10111
10112         * icall.c
10113         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10114         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10115         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10116         (ves_icall_Type_BindGenericParameters): Likewise.
10117         (ves_icall_Type_get_IsGenericInstance): Likewise.
10118         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10119         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10120         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10121         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10122
10123 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10124
10125         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10126         assembly versions and public key tokens. Fixes #69113.
10127
10128 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10129
10130         * metadata.c: fix bug introduced with the type cache changes
10131         on 2004-11-06.
10132
10133 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10134
10135         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10136         the MonoClass pointer instead of the token in exception clauses.
10137         * reflection.c: updates for the above and make the code not depend
10138         on the structure of MonoExceptionClause.
10139
10140 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10141
10142         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10143         Add support for dynamic assemblies. Fixes #69114.
10144
10145         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10146
10147 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10148
10149         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10150         since most only those methods use it. the code member of
10151         MonoMethodPInvoke was dead, so that can be removed too. Also,
10152         remove inline_count (again, not used), and move slot so that it
10153         can share bits with some other flags. This saves 8 bytes in the
10154         structure and gives us about 50 kb back for mcs helloworld.cs
10155
10156         * *.[ch]: Do naming changes for the above.
10157
10158         * loader.c (mono_method_get_header): Lazily init the header
10159         on first access.
10160         (mono_get_method_from_token): don't init the header here
10161         (mono_free_method): the header may never be allocated
10162
10163         Overall, this saves 150 kb of unmanaged allocations
10164         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10165         memory at runtime.
10166         
10167         * loader.c, loader.h (mono_method_get_header): new accessor.
10168
10169         * *.[ch]: use the above method. Prepares us to lazily load
10170         the header.
10171
10172         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10173         three warnings, which are actual bugs (see 69206).
10174
10175         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10176         unused. Saves a cool 4 bytes / method.
10177
10178 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10179
10180         * metadata.c (builtin_types): Add types for System.Object here.
10181         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10182         for a class or valuetype from klass->this_arg or klass->byval_arg.
10183
10184         On mcs for a hello world, this gets us down from 21836 MonoType's
10185         to 14560.
10186
10187         (mono_metadata_free_type): Account for the above change.
10188
10189 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10190
10191         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10192         exception instead of asserting if name is null.
10193         (ves_icall_System_AppDomain_GetData): Ditto.
10194
10195 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10196
10197         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10198         EnumBuilder.
10199
10200         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10201         Return NULL when the domain does not have entry_assembly set.
10202
10203         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10204         Add a 'resource_modules' argument.
10205         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10206
10207         * reflection.c (mono_reflection_create_runtime_class): Move setting
10208         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10209         for enums too.
10210
10211         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10212         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10213         Throw an ArgumentNullException if 'ptr' is null.
10214
10215         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10216         assemblies here. Fixes #69020.
10217
10218 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10219
10220         * reflection.c (build_compressed_metadata): Fix the previous patch for
10221         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10222         the stack.
10223
10224 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10225
10226         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10227         the cultures is false. Fixes #69090.
10228
10229         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10230         detected by valgrind.
10231         
10232         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10233         TypeResolve multiple times for the same type. Fixes #65577.
10234
10235 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10236
10237         * marshal.c: Avoid using ldftn to call managed functions. It is
10238         much slower than just a call.
10239
10240         * reflection.c (mono_module_get_object): free the basename we
10241         allocate here from glib.
10242         
10243         * reflection.c (ensure_runtime_vtable): make sure to free
10244         overrides.  Also, we were allocating an array of MonoMethod not an
10245         array of MonoMethod*.
10246
10247         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10248
10249         * image.c (mono_image_close): free image->guid here.
10250
10251 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10252
10253         * reflection.c: Fix some spec conformance issues with the PE file
10254         structures so mcs compiled apps run on the Net 2.0 beta.
10255
10256 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10257
10258         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10259         Implement this. Fixes #67264.
10260
10261         * debug-helpers.h debug-helpers.c marshal.c: Move 
10262         mono_find_method_by_name to debug-helpers.c.
10263
10264 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10265
10266         * object.c (mono_release_type_locks): type_initialization_hash is
10267         a GHashTable.
10268
10269         * reflection.c object.c object-internals.h: Fix warnings.
10270
10271         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10272         without accessors. Fixes #61561.
10273
10274         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10275         application base from the root domain if not set. Fixes #65641.
10276         (mono_runtime_init): Fix warning.
10277
10278 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10279
10280         * appdomain.c: call mono_thread_pool_init.
10281         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10282         of worker threads based on the number of CPUs and the environment
10283         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10284         for non-windows (windows) systems.
10285
10286 2004-10-27  Chris Toshok  <toshok@ximian.com>
10287
10288         * mono-debug-debugger.c (write_class): don't call mono_class_init
10289         here, as even with the check for (!klass->init_pending), we get
10290         into a situation where we're hitting cycles in class
10291         initialization.  Fixes #68816.
10292
10293 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10294
10295         * image.c: Avoid overwriting values in the loaded_images_hash when an
10296         assembly is loaded multiple times. Fixes #61152.
10297
10298         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10299         so multiple satellite assemblies for the same name can be loaded.
10300         Fixes #68259.
10301
10302         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10303         not NULL.
10304
10305         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10306         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10307
10308         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10309         pending finalizers are not invoked after the appdomain has been 
10310         unloaded. Fixes #67862.
10311
10312 2004-10-22  Martin Baulig  <martin@ximian.com>
10313
10314         * mono-debug-debugger.c
10315         (mono_debugger_runtime_invoke): Don't box valuetypes.
10316
10317 2004-10-22  Chris Toshok  <toshok@ximian.com>
10318
10319         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10320         don't hide private methods.
10321
10322 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10323
10324         * icall.c: Allows the runtime to "share" (when known) the public key
10325         token of an assembly. This avoid the need to recalculate the token 
10326         (from the public key) in managed code.
10327
10328 2004-10-21  Chris Toshok  <toshok@ximian.com>
10329
10330         * debug-helpers.c (append_class_name): argh, revert last patch.
10331         
10332 2004-10-21  Chris Toshok  <toshok@ximian.com>
10333
10334         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10335         not '/', so that it matches what the debugger uses to look up
10336         methods.
10337
10338 2004-10-21  Martin Baulig  <martin@ximian.com>
10339
10340         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10341         public method; this is called each time an exception is thrown and
10342         allows the debugger to use exception catch points.
10343
10344 2004-10-21  Martin Baulig  <martin@ximian.com>
10345
10346         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10347         the stack pointer and the exception object in some struct and pass
10348         that to the debugger.
10349
10350 2004-10-21  Chris Toshok  <toshok@ximian.com>
10351
10352         * mono-debug-debugger.c (do_write_class): add instance/static
10353         event support.  We don't expose "raise" or "other" yet.
10354         (event_is_static): new method.
10355
10356 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10357
10358         * mono-debug-debugger.c
10359         (mono_debugger_handle_exception): Remove
10360         bogus return value for fussy compilers.
10361
10362 2004-10-20  Martin Baulig  <martin@ximian.com>
10363
10364         * mono-debug-debugger.c
10365         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10366         (mono_debugger_handled_exception): Likewise.
10367
10368 2004-10-20  Martin Baulig  <martin@ximian.com>
10369
10370         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10371         MONO_DEBUGGER_EVENT_EXCEPTION.
10372
10373         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10374         public function to send the debugger a notification for an
10375         exception and inform it about a catch/finally clause.
10376
10377 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10378
10379         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10380         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10381         fix 2.95 build. 
10382
10383         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10384
10385 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10386
10387         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10388         marshalled as [In,Out]. Fixes #58325.
10389
10390 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10391
10392         * reflection.c (mono_method_body_get_object): Implement some fields.
10393
10394 2004-10-12  Martin Baulig  <martin@ximian.com>
10395
10396         * reflection.c (mono_reflection_bind_generic_parameters): Small
10397         fix, correctly retrieve our parent from a generic instance.
10398
10399 2004-10-12  Martin Baulig  <martin@ximian.com>
10400
10401         * metadata.c (mono_metadata_generic_param_equal): We always have
10402         an owner.
10403
10404         * class.c
10405         (mono_class_from_generic_parameter): We need to have an owner.
10406         (my_mono_class_from_generic_parameter): Likewise.
10407
10408         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10409         mono_reflection_create_generic_class() and added a new
10410         mono_reflection_setup_generic_class().  
10411         (mono_reflection_initialize_generic_param): If we're a nested
10412         generic type and inherited from the containing class, set our
10413         owner to the outer class.
10414
10415 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10416
10417         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10418
10419         * reflection.c (mono_method_body_get_object): New function to create
10420         a MethodBody object.
10421
10422         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10423
10424 2004-10-11  Martin Baulig  <martin@ximian.com>
10425
10426         * metadata.c (_mono_metadata_type_equal): Renamed to
10427         do_mono_metadata_type_equal() and made static.
10428
10429 2004-10-11  Martin Baulig  <martin@ximian.com>
10430
10431         * appdomain.c: Bump corlib version number to 28.
10432
10433 2004-10-10  Martin Baulig  <martin@ximian.com>
10434
10435         * class-internals.h
10436         (MonoGenericInst): Added `MonoGenericContainer *container'.
10437         (MonoGenericMethod): Likewise.
10438         (MonoGenericContext): Likewise.
10439         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10440
10441         * metadata.c
10442         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10443         (do_mono_metadata_parse_generic_inst): Likewise.
10444         (mono_metadata_parse_type_full): New public method.  This is the actual
10445         mono_metadata_parse_type() implementation - with an additional
10446         `MonoGenericContainer *' argument.
10447         (mono_metadata_parse_array_full): Likewise.
10448         (mono_metadata_parse_signature_full): Likewise.
10449         (mono_metadata_parse_method_signature_full): Likewise.
10450         (mono_metadata_parse_mh_full): Likewise.
10451         (mono_type_create_from_typespec): Likewise.
10452         (mono_metadata_interfaces_from_typedef_full): New public method;
10453         this is similar to the other _full() methods, but we take a
10454         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10455         (mono_metadata_parse_generic_param): Take an additional
10456         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10457         from that container.
10458         (mono_metadata_generic_param_equal): New static method to compare
10459         two type parameters.
10460         (_mono_metadata_type_equal): New static method; takes an
10461         additional `gboolean signature_only' argument - if true, we don't
10462         compare the owners of generic parameters.
10463         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10464         with a TRUE argument - do a signature-only comparision.
10465
10466         * loader.c: Use the new _full() methods and pass the
10467         MonoGenericContainer to them.
10468
10469         * object-internals.h (MonoReflectionTypeBuilder): Added
10470         `MonoGenericContainer *generic_container' field.
10471         (MonoReflectionMethodBuilder): Likewise.
10472
10473 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10474
10475         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10476         case initial images of dynamic assemblies.
10477
10478         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10479
10480         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10481
10482         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10483         length of event->other array.
10484         (typebuilder_setup_events): Ditto.
10485
10486         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10487         'assembly_by_name' and add an 'assemblies' list.
10488
10489         * assembly.h assembly.c: Add a new search hook for determining whenever
10490         an assembly is already loaded. Use this instead of searching in the
10491         loaded_assemblies list.
10492
10493         * domain.c appdomain.c: Implement the new search hook so loaded 
10494         assemblies are now scoped by appdomain. Fixes #67727.
10495
10496 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10497
10498         * threads.c (mono_thread_attach): Initialize synch_lock field so
10499         mono_thread_detach works again.
10500
10501         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10502         'lib' too. Fixes #63130.
10503
10504 2004-10-06  Jackson Harper  <jackson@ximian.com>
10505
10506         * culture-info-tables.h: regenerated.
10507
10508 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10509
10510         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10511         implemented by other interfaces in the result. Fixes #65764.
10512         
10513         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10514         Handle unloadable modules without crashing.
10515
10516         * image.c (load_modules): Revert the previous patch since modules must
10517         have a fixed index inside the array.
10518         
10519         * image.c (load_modules): Don't include native modules in the modules
10520         array.
10521
10522 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10523
10524         * reflection.h: Add param_defaults field.
10525
10526         * reflection.c: Add support for parameter defaults in dynamic methods.
10527         Fixes #64595.
10528
10529         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10530         an empty string when a type has no namespace. Fixes #64230.
10531
10532 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10533
10534         * tabledefs.h: Added "internal" security actions to support non-CAS
10535         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10536         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10537
10538 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10539
10540         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10541         constructor of abstract class. Fixes #61689.
10542
10543 2004-10-04  Martin Baulig  <martin@ximian.com>
10544
10545         * class-internals.h (MonoGenericContainer): New type.
10546         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10547         `MonoGenericContainer *generic_container'.
10548         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10549         `MonoGenericContainer *generic_container'.
10550
10551         * metadata.c (mono_metadata_load_generic_params): Return a
10552         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10553         removed the `num' argument.
10554
10555 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10556
10557         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10558         for dynamic images.
10559
10560         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10561         machine fields.
10562
10563         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10564
10565         * reflection.c: Save pe_kind and machine values into the generated
10566         image file.
10567
10568         * appdomain.c: Bump corlib version number.
10569
10570         * object-internals.h: Reorganize layout of LocalBuilder.
10571
10572         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10573         New helper function.
10574
10575         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10576         created MonoType for dynamic types. Fixes #66180.
10577
10578 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10579
10580         * threadpool.c: the ares hashtable needs a critical section around it.
10581         this prevents some nasty segfaults
10582
10583 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10584
10585         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10586         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10587         bug 67324).
10588         
10589 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10590
10591         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10592         
10593 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10594
10595         * image.c: Always canonicalize image file names, to avoid loading
10596         the same assembly twice when referenced using a relative path.
10597
10598 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10599
10600         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10601
10602         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10603
10604         * marshal.c: Fix warnings.
10605
10606 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10607
10608         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10609         attempting to marshal the delegate_trampoline as the method_addr.
10610         This patch has a static hashtable of marshalled delegates so that 
10611         we can map delegate_trampoline addresses back to delegates.  This
10612         allows a delegate passed to managed code to be passed back into native
10613         code.  Fixes #67039
10614
10615 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10616
10617         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10618
10619         * reflection.c (method_encode_code): Align method headers properly.
10620         Fixes #66025.
10621
10622 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10623
10624         * marshal.c: In the runtime invoke wrapper, reset the abort
10625         exception if it is cached. This avoids the automatic rethrowal of 
10626         the exception after the catch of the wrapper. Also check for pending
10627         interruptions before calling the managed method. This is done using
10628         the new method emit_thread_force_interrupt_checkpoint, since the
10629         normal checkpoint method is ignored when running the invoke wrapper.
10630         * object.c: If the abort exception is rethrown, set the abort_exc
10631         field of the thread, so it will be rethrown aftere every catch.
10632         * threadpool.c: Only run an interruption checkpoint if what has been
10633         requested is a stop of the thread (aborts will be ignored).
10634         * threads.c: By default, a thread will now never be interrumped while
10635         running the runtime invoke wrapper (this ensures that runtime_invoke
10636         will always return to the caller if an exception pointer is provided).
10637         There is a new special method mono_thread_force_interruption_checkpoint()
10638         to force an interruption checkpoint even if running a protected
10639         wrapper, which is used by the same runtime invoke wrapper to do a check
10640         at a safe point.
10641
10642 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10643
10644         * object.c, object-internals.h: Implemented mono_release_type_locks,
10645         which releases the cctor locks held by a thread.
10646         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10647         by a thread. Added mono_thread_exit() method to be used to safely stop
10648         a thread.
10649
10650 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10651
10652         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10653         Move null check before dereference.  Avoid indexing beyond the end
10654         of the 'modules' array.
10655
10656 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10657
10658         * metadata-internals.h (MonoImage): Add module_count field.
10659         * image.c (load_modules): Set image->module_count.
10660         (mono_image_load_file_for_image): Use image->module_count.
10661         * reflection.c (mono_image_load_module): Append to image->modules array 
10662         of dynamic assembly.
10663         (mono_module_get_object): Fix loop to actually increment index.
10664         Use image->module_count.
10665         * assembly.c (mono_assembly_load_references): Use image->module_count.
10666         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10667         Likewise.
10668
10669 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10670
10671         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10672         Avoid assert on generic types.
10673
10674 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10675
10676         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10677
10678         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10679
10680         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10681         function to convert a MarshalSpec structure to its managed counterpart.
10682
10683         * reflection.c: Fix warnings.
10684         
10685         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10686         field.
10687
10688         * icall.c (mono_create_icall_signature): Fix build.
10689
10690 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10691
10692         * icall.c: Add MakePointType icall.
10693
10694         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10695         warnings.
10696
10697 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10698
10699         * threadpool.c: reuse allocated slots in the queue.
10700
10701 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10702
10703         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10704
10705         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10706
10707         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10708         previous change.
10709
10710         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10711         ThrowOnUnmappableChar.
10712
10713         * icall.c (ves_icall_Type_GetPacking): New icall.
10714
10715 2004-09-24  Martin Baulig  <martin@ximian.com>
10716
10717         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10718
10719 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10720
10721         * appdomain.c:
10722         (mono_domain_set): allow setting a domain that is being unloaded.
10723         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10724         being unloaded.
10725
10726 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10727
10728         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10729         the GetCustomAttributes icall.
10730
10731 2004-09-23  Martin Baulig  <martin@ximian.com>
10732
10733         * object-internals.h (MonoReflectionGenericParam): Replaced
10734         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10735         with `guint32 attrs'.
10736
10737 2004-09-23  Martin Baulig  <martin@ximian.com>
10738
10739         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10740
10741 2004-09-23  Martin Baulig  <martin@ximian.com>
10742
10743         * object-internals.h (GenericParameterAttributes): New enum.
10744
10745 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10746
10747         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10748         
10749         * class.c (init_events): Fill out event->other field.
10750
10751         * class.c: Fix warnings.
10752
10753         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10754
10755 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10756
10757         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10758         walk which doesn't supply the IL offset.
10759
10760 2004-09-22  Martin Baulig  <martin@ximian.com>
10761
10762         * reflection.c (mono_reflection_setup_internal_class): If we're
10763         System.ValueType, System.Object or System.Enum, set
10764         `klass->instance_size' and create the vtable.
10765         (mono_reflection_create_internal_class): If we're an enum type,
10766         get the base class from our current corlib.
10767
10768 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10769
10770         * reflection.h (MonoResolveTokenError): New type.
10771
10772         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10773         icall.
10774
10775         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10776
10777 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10778
10779         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10780         Support also calling constructors, but only for already allocated objects.
10781
10782 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10783
10784         * reflection.c (type_get_qualified_name): If the klass is null
10785         return the typename to avoid a NullRefEx.
10786         (encode_cattr_value): Get the qualified name of the boxed type,
10787         not the underlying enumtype.  Fixes #62984.
10788
10789 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10790
10791         * marshal.c: Fix problems with previous checkin.
10792
10793 2004-09-21    <vargaz@freemail.hu>
10794
10795         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10796         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10797
10798         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10799
10800 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10801
10802         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10803         should only return a type for pointers, arrays, and passbyref types.
10804         Fixes bug #63841.
10805
10806 2004-09-21  Martin Baulig  <martin@ximian.com>
10807
10808         * domain.c (mono_debugger_check_runtime_version): New public
10809         function.
10810
10811         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10812
10813 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10814
10815         * reflection.c: Added missing sort to the declarative security 
10816         attributes table. MS implementation stops seeing the attributes if the
10817         token number regress in the table (as shown by ildasm and permview).
10818
10819 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10820
10821         * object-internals.h (MonoReflectionModule): Add 'token' field.
10822         
10823         * reflection.c (mono_reflection_get_token): Add support for Module
10824         and Assembly.
10825         (mono_module_get_object): Set 'token' field.
10826         (mono_module_file_get_object): Set 'token' field.
10827
10828         * icall.c: Add new Assembly and Module icalls.
10829
10830         * appdomain.c: Bump corlib version.
10831
10832 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10833
10834         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10835         tokens of metadata objects.
10836
10837         * reflection.h reflection.c (mono_reflection_get_token): New function
10838         to obtain the token of a metadata object.
10839
10840         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10841
10842 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10843
10844         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10845         
10846         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10847
10848 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10849
10850         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10851         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10852         AssemblyBuilder to access the permissions set in the class lib.
10853         * reflection.c: Added security attributes encoding step in 
10854         mono_image_build_metadata.
10855         * tabledefs.h: Added new security actions defined in 2.0:
10856         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10857
10858 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10859
10860         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10861         macro parameter.
10862
10863 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10864  
10865         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10866           finalized. There where random SIGSEVs at program termination, when
10867           an object being finalized was trying to do a string comparison and
10868           the current culture was already finalized.
10869  
10870 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10871
10872         * threads.c: call thread_cleanup before finishing the thread if we get
10873         there.
10874
10875 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10876
10877         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10878         assemblies from the parent. Fixes #65665.
10879
10880 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10881
10882         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10883         modifiers.
10884
10885 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10886
10887         * reflection.h: add prototype for mono_get_dbnull_object
10888         * reflection.c: add prototypes for get_default_param_value_blobs 
10889         and mono_get_object_from_blob for fussier compilers
10890
10891 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10892  
10893         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10894         false deadlock checks in class initialization.
10895  
10896 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10897
10898         * image.c (mono_image_addref): Fix comment.
10899
10900         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10901         possible.
10902
10903 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10904
10905         * reflection.c (mono_param_get_objects): Modified to return
10906         ParameterInfo.DefaultValue object.
10907
10908         (get_default_param_value_blobs):
10909         (mono_get_object_from_blob):
10910         (mono_get_dbnull_object): New helper routines. 
10911
10912         * object.c (mono_get_constant_value_from_blob): New helper routine
10913         carved out from get_default_field_value ()
10914
10915         * object-internals.h (mono_get_constant_value_from_blob): Added
10916         function declaration.
10917
10918 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10919
10920         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10921         referenced assemblies. Fixes #62135.
10922
10923         * exception.h exception.c (mono_get_exception_file_not_found2): New
10924         helper function.
10925
10926 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10927
10928         * class.h class.c: Add mono_type_get_underlying_type ().
10929
10930 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10931
10932         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10933         Fix GetTypes() to support dynamically created assemblies.
10934
10935 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10936
10937         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10938         
10939         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10940         previous patch.
10941
10942         * reflection.h reflection.c loader.c: Allow dynamic construction of
10943         pinvoke methods. Fixes #65571.
10944         
10945         * reflection.c (mono_reflection_get_type): Revert previous change since
10946         it causes regressions.
10947
10948 2004-09-08  Martin Baulig  <martin@ximian.com>
10949
10950         * class.c (class_compute_field_layout): Don't call
10951         mono_class_layout_fields() for open generic instances.
10952
10953 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10954         * threads.c appdomain.c: fix typo in GC macro
10955
10956 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10957
10958         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10959         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10960
10961 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10962
10963         * image.c (mono_image_close): Applied patch from 
10964         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10965         assembly is loaded multiple times from data.
10966         
10967         * image.c (mono_image_open): Fix warning.
10968
10969 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10970
10971         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10972         once. Fixes #58334.
10973         
10974         * reflection.c (mono_reflection_create_runtime_class): Initialize
10975         klass->nested_classes. Fixes #61224.
10976
10977 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10978
10979         * threads.c: sched_yield() on exit, to allow threads to quit.
10980
10981 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10982
10983         * object.c (mono_unhandled_exception): Remove leftover debug code.
10984
10985 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10986
10987         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10988
10989 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10990
10991         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10992         
10993         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10994
10995 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10996
10997         * marshal.c (emit_marshal_array): Null terminate string arrays.
10998         
10999         * marshal.c (raise_auto_layout_exception): Fix warning.
11000
11001         * reflection.c (mono_param_get_objects): Initialize the default value
11002         with DBNull.Value, not null. Fixes #62123.
11003
11004 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11005
11006         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11007         throw an exception with a cute explanation.
11008
11009 2004-09-06  Dick Porter  <dick@ximian.com>
11010
11011         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11012         Close the new process's thread handle, as we don't use it.  The
11013         handle stays around forever otherwise.
11014
11015 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11016
11017         * object.c (arith_overflow): Fix warning.
11018
11019         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11020         calling conventions in method refs. Fixes #65352.
11021
11022         * reflection.c: Fix warnings.
11023
11024 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11025
11026         * icall.c: Add a new icall for Array.Clear
11027
11028 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11029
11030         * object.c: When allocating an array, we have to throw
11031         an overflow exception if any of the lengths are < 0.
11032
11033 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11034
11035         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11036         properly. Also move implementation of string array marshalling to 
11037         managed code. Fixes #42316.
11038
11039 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11040
11041         * assembly.c: provide more information when loading an assembly fails.
11042
11043 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11044
11045         * filewatcher.c: don't expect the development fam package to be
11046         installed.
11047
11048 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11049
11050         * marshal.c: Make a copy of the signature cookie since it will be
11051         freed by the caller.
11052         
11053         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11054
11055         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11056
11057         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11058         marshal specs.
11059
11060         * marshal.c: More refactoring.
11061         
11062         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11063         smaller functions.
11064
11065 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11066
11067         * object.c: In mono_message_invoke, fill the output parameter array after
11068           calling the managed method (it was done before the call). This fixes
11069           bug #59299.
11070
11071 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11072
11073         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11074         as well.
11075
11076 2004-09-02  Martin Baulig  <martin@ximian.com>
11077
11078         * class.c (mono_class_instance_size): Don't allow generic type
11079         definitions or open generic instances.
11080         (mono_class_array_element_size): If we're a value type, call
11081         mono_class_instance_size() on the original class.
11082
11083         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11084         handle generic instances.
11085
11086         * mono-debug-debugger.c (write_type): Handle generic instances
11087         like classes.
11088
11089 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11090
11091         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11092         the allocation request fails. Fixes #65089.
11093
11094         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11095         
11096         * object.c (mono_runtime_free_method): New function to free a dynamic
11097         method.
11098
11099         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11100         delegate trampoline.
11101
11102         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11103         with hasthis as dynamic,
11104
11105         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11106
11107         * domain.c (mono_jit_info_table_remove): New function to remove an
11108         entry from the jit info table.
11109
11110         * class-internals.h (MonoMethod): Add 'dynamic' field.
11111
11112         * loader.c: Fix warnings.
11113
11114 2004-09-01  Martin Baulig  <martin@ximian.com>
11115
11116         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11117         instead of mono_debugger_lock() because the latter one is a no-op
11118         unless running in the debugger.
11119
11120 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11121
11122         * class.c (class_compute_field_layout): Classes with auto-layout or
11123         reference fields are not blittable.
11124         
11125 2004-09-01  Dick Porter  <dick@ximian.com>
11126
11127         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11128         mono_image_get_filename() to get the assembly location.
11129
11130         * icall.c:
11131         * metadata.h: Fix compile warnings
11132
11133 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11134
11135         * class.c (class_compute_field_layout): System.Object is blittable.
11136
11137         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11138         as in/out. Fixes #59909.
11139
11140 2004-09-01  Martin Baulig  <martin@ximian.com>
11141
11142         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11143         mono_metadata_generic_inst_is_valuetype() if we're a generic
11144         instance to check whether our underlying type is a reference type.
11145
11146 2004-09-01  Martin Baulig  <martin@ximian.com>
11147
11148         * metadata.c (mono_type_size): If we're a generic instance, call
11149         mono_class_value_size() for value types.
11150
11151 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11152
11153         * marshal.c: Implement more custom marshalling functionality. Fixes
11154         #64915.
11155
11156 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11157
11158         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11159
11160 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11161
11162         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11163
11164         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11165
11166         * icall.c: Fix some warnings.
11167
11168         * threads.c (abort_appdomain_thread): Fix unref errors.
11169         (mono_thread_current): Fix THREAD_DEBUG define.
11170
11171 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11172
11173         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11174
11175         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11176
11177 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11178
11179         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11180         string arrays.
11181
11182 2004-08-28  Martin Baulig  <martin@ximian.com>
11183
11184         * metadata.c
11185         (mono_metadata_generic_inst_is_valuetype): New public function.
11186
11187         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11188         mono_metadata_generic_inst_is_valuetype() if we're a generic
11189         instance to check whether our underlying type is a valuetype.
11190
11191 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11192
11193         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11194         #63768.
11195
11196 2004-08-25  Martin Baulig  <martin@ximian.com>
11197
11198         * loader.c (mono_get_method_from_token): Abstract methods can also
11199         be generic and thus have type parameters.
11200
11201         * metadata-internals.h
11202         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11203
11204         * reflection.c (mono_image_get_generic_param_info): Don't create a
11205         metadata row, just add an entry to the `gen_params' array.
11206         (build_compressed_metadata): Sort the `gen_params' array and then
11207         actually create the metadata.
11208
11209 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11210
11211         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11212
11213 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11214
11215         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11216
11217 2004-08-24  Martin Baulig  <martin@ximian.com>
11218
11219         * class.cs (mono_class_is_subclass_of): Like an interface, a
11220         generic instance also derives from System.Object.
11221
11222 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11223
11224         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11225         custom modifiers to be in any order. Fixes #61990.
11226
11227 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11228
11229         * object.c: Register mono_object_new_fast icall.
11230         
11231         * object.c (mono_class_get_allocation_ftn): Return to calling
11232         mono_object_new_fast, since it seems faster to compute the object 
11233         size in unmanaged code than passing it as a parameter.
11234
11235         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11236
11237         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11238         this function with Boehm as the oom handler, so we don't have to check
11239         the result of GC_malloc.
11240
11241         * object.c: Remove checks for oom.
11242
11243         * object.h object.c (mono_class_get_allocation_ftn): New function to
11244         return the icall which can be used to allocate an instance of a given
11245         class. 
11246
11247         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11248
11249         * class-internals.h: Add 'enabled' field.
11250
11251 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11252
11253         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11254
11255 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11256         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11257         value 0x0010.
11258
11259 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11260
11261         * appdomain.c: use the Tls function for appdomain too,
11262         at Zoltan's request. Actually return in mono_context_get
11263
11264         * appdomain.c, profiler.c, threads.c: use __thread
11265
11266 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11267
11268         * appdomain.c threads.c: Call GC_CreateThread on windows.
11269
11270         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11271         multiple libraries since this don't work on windows.
11272
11273 2004-08-18  Martin Baulig  <martin@ximian.com>
11274
11275         * class-internals.h
11276         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11277         MonoMethodHeader.
11278
11279         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11280         MonoMethodNormal since we also need it for abstract and interface
11281         methods.
11282
11283         * reflection.c
11284         (build_compressed_metadata): Sort the GenericParam table.
11285         (mono_image_create_token): Added `gboolean create_methodspec'
11286         argument; this is false when generating a MethodImpl token.
11287         (reflection_methodbuilder_to_mono_method): Abstract and interface
11288         methods may also have generic parameters.
11289
11290 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11291
11292         * appdomain.c: thread local alloc
11293
11294 2004-08-17  Martin Baulig  <martin@ximian.com>
11295
11296         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11297
11298         * icall.c
11299         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11300         argument.
11301
11302         * class.c (mono_type_get_full_name): New public function.
11303         (mono_type_get_name): Don't include the type arguments.
11304
11305 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11306
11307         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11308         for inclusion into the mono executable.
11309
11310 2004-08-16  Martin Baulig  <martin@ximian.com>
11311
11312         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11313         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11314
11315 2004-08-14  Martin Baulig  <martin@ximian.com>
11316
11317         * class.c (dup_type): Also copy the `byref' field.
11318
11319 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11320
11321         * reflection.c (create_dynamic_mono_image): Revert the last change 
11322         since it breaks bootstrap.
11323
11324 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11325
11326         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11327
11328         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11329         not free them with g_free.
11330
11331 2004-08-11  Martin Baulig  <martin@ximian.com>
11332
11333         * reflection.c (mono_reflection_setup_internal_class): Also call
11334         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11335
11336 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11337
11338         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11339         called during default (first) AppDomain creation. Keep track of
11340         Evidence when loading assemblies.
11341
11342 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11343
11344         * opcodes.c, opcodes.h: reduce runtime relocations.
11345
11346 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11347
11348         * culture-info.h, locales.c: fixes and chages to sue the new
11349         optimized format of the locale data.
11350         * culture-info-tables.h: regenerated.
11351
11352 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11353         
11354         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11355
11356 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11357
11358         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11359         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11360         * domain-internals.h: icall declaration.
11361         * icall.c: icall registration.
11362         * object-internals.h: New fields in MonoAssembly for CAS.
11363
11364 2004-08-05  Duncan Mak  <duncan@ximian.com>
11365
11366         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11367         CEE_LDELEM_ANY.
11368
11369 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11370
11371         * reflection.c: fix to deal with object[] arrays in custom ctors
11372         (bug #62550).
11373
11374 2004-08-05  Martin Baulig  <martin@ximian.com>
11375
11376         * class.c (mono_class_array_element_size): Added support for
11377         generic instances and correctly handle "recursive" types.
11378
11379 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11380
11381         * assembly.c: Fix warnings.
11382
11383 2004-08-04  Martin Baulig  <martin@ximian.com>
11384
11385         * class.c
11386         (mono_type_get_name_recurse): Added `gboolean include_arity'
11387         argument specifying whether or not we should include the generic
11388         arity in the type name.
11389         (_mono_type_get_name): New static function.
11390         (mono_class_setup_vtable): If we're a generic instance, don't
11391         include the generic arity in the names of explicit method
11392         implementations.        
11393
11394 2004-08-03  Martin Baulig  <martin@ximian.com>
11395
11396         * class.c (mono_type_get_name_recurse): Enclose the generic type
11397         arguments in `<', '>'.
11398
11399 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11400
11401         * gc.c: make GC warning messages use the trace API, they are just
11402         noise to most of the users.
11403
11404 2004-08-03  Martin Baulig  <martin@ximian.com>
11405
11406         * debug-mono-symfile.c (read_string): Correctly read the string.
11407
11408 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11409
11410         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11411         
11412         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11413         icalls.
11414         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11415
11416 2004-07-30  Martin Baulig  <martin@ximian.com>
11417
11418         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11419         Reflect latest symbol writer changes.   
11420
11421 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11422
11423         * object.c: always create an object if null is passed
11424         to Invoke() where a valuetype is expected.
11425
11426 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11427
11428         * marshal.c (mono_marshal_init): make managed
11429         signatures match native ones better for 64bits.
11430
11431 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11432
11433         * appdomain.c: hack to build correctly the private bin path on windows.
11434         Fixes bug #61991.
11435
11436 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11437
11438         * assembly.c: Load mscorlib from the correct framework directory
11439           (mono/<version>/mscorlib.dll).
11440         * appdomain.h: Added prototypes for new functions.
11441         * internals.h: Added some prototypes.
11442         * domain.c: When initializing the runtime, get from the executable and
11443           the configuration files the runtime version that the app supports.
11444           Added support methods for reading app.exe.config. Added list of versions
11445           supported by the JIT. Added two new methods: mono_init_from_assembly,
11446           which initializes the runtime and determines the required version from
11447           the provided exe file, and mono_init_version, which initializes
11448           the runtime using the provided version.
11449         * icall.c: Get machine.config from version-specific directory.
11450         * reflection.c: When generating an image, embed the version number
11451           of the current runtime.
11452
11453 2004-07-28  Dick Porter  <dick@ximian.com>
11454
11455         * socket-io.c
11456         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11457         returned sockaddr size before creating the remote address object.
11458         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11459         61608.
11460
11461 2004-07-28  Dick Porter  <dick@ximian.com>
11462
11463         * locales.c (string_invariant_compare_char): Fix invariant char
11464         compares between upper and lower cases.  Fixes bug 61458.
11465
11466 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11467         
11468         * marshal.c: actually cache stelem.ref wrappers.
11469         
11470 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11471
11472         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11473         sections and remove the mono_cli_rva_map () function.
11474
11475 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11476
11477         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11478         by Geoff Norton (<gnorton@customerdna.com>).
11479
11480 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11481
11482         * class.c: fix class loads for pointer types (typeof(int) !=
11483         typeof(int*)).
11484
11485 2004-07-27  Martin Baulig  <martin@ximian.com>
11486
11487         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11488         reading the debugging information from an external ".mdb" file.
11489
11490 2004-07-24  Martin Baulig  <martin@ximian.com>
11491
11492         * reflection.c (mono_image_get_type_info): Only write a class
11493         layout entry if we actually have a size or a packing size.
11494
11495 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11496
11497         * reflection.c (type_get_fully_qualified_name): 
11498         insert cast to get type checking of ?: with non-gcc compilers
11499
11500 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11501
11502         * rand.c: use g_getenv for both lookups of
11503         MONO_EGD_SOCKET
11504
11505 2004-07-17  Martin Baulig  <martin@ximian.com>
11506
11507         * reflection.c (mono_reflection_bind_generic_method_parameters):
11508         Set `gmethod->reflection_info'.
11509
11510 2004-07-17  Martin Baulig  <martin@ximian.com>
11511
11512         * class.c (mono_class_create_from_typedef): Insert the newly
11513         created class into the hash table before computing the interfaces
11514         since we could be called recursively.
11515
11516 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11517
11518         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11519         function to implement stelem.ref in managed code
11520         * class-internals.h, debug-helpers.c: a new wrapper type
11521         for the above.
11522
11523 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11524
11525         * gc.c: allow GC handles to work even when no GC is compiled in.
11526         Fix part of bug #61134 (GetAddrOfPinnedObject).
11527
11528 2004-07-13  Peter Williams  <peter@newton.cx>
11529  
11530         * process.c (complete_path): Make sure we don't attempt to execute
11531         directories.
11532  
11533 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11534
11535         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11536           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11537           and will add/subtract the hour if needed
11538
11539 2004-07-12  Martin Baulig  <martin@ximian.com>
11540
11541         * reflection.c (mono_field_get_object): If we have
11542         `field->generic_info', take the attributes from
11543         `field->generic_info->generic_type'.    
11544
11545 2004-07-12  Martin Baulig  <martin@ximian.com>
11546
11547         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11548         This function must be called before initializing the runtime.
11549         (mono_debug_init_1): New function; call this after initializing
11550         the runtime, but before loading the assembly.  It tells the
11551         debugger to load corlib and the builtin types.
11552
11553         * mono-debug-debugger.c: Did some larger changes in the debugging
11554         code; support recursive class declarations, make sure we actually
11555         add all classes.
11556
11557 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11558
11559         * debug-helpers.c: undo my previous patch and fixed the real issue in
11560         ../mini/exceptions-x86.c
11561
11562 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11563
11564         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11565         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11566         called from other .cctors.
11567
11568 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11569
11570         * loader.c: Removed the mono_loader_wine_init hack now that we are
11571         doing a managed version of Windows.Forms.
11572
11573 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11574
11575         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11576         threadpool.c, threads.c: remove static data from rootset.
11577
11578 2004-07-09  Dick Porter  <dick@ximian.com>
11579
11580         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11581         Don't do any more processing if the matched length was 0.  It was
11582         increasing the size of the string before.  Fixes bug 61167.
11583
11584 2004-07-09  Dick Porter  <dick@ximian.com>
11585
11586         * socket-io.h:
11587         * socket-io.c
11588         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11589         Add support for SO_PEERCRED if its available.
11590
11591 2004-07-09  Peter Bartok <pbartok@novell.com>
11592         * loader.c: winelib.exe.so error message is now only displayed if
11593         MONO_DEBUG is set. To help us avoid questions when people are trying
11594         out the new Managed.Windows.Forms.
11595
11596 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11597
11598         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11599         for isinst and castclass wrappers.
11600
11601         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11602         to libmetadata from the JIT, so they could be used by the marshalling
11603         code and the interpreter.
11604
11605         * marshal.c: Register marshalling related JIT icalls here instead of
11606         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11607         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11608
11609         * metadata.h: Remove unneeded marshalling conversions.
11610
11611         * opcodes.c: Update for new opcodes.
11612         
11613 2004-07-08  Martin Baulig  <martin@ximian.com>
11614
11615         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11616         (mono_debug_get_domain_data): Make this function static.
11617
11618 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11619
11620         * gc.c, object.h: add nice GC handle API for embedders.
11621
11622 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11623
11624         * reflection.c: more changes for the new api
11625
11626         * object.c: When we reflect on a field w/ a constant value, it
11627         will not have a memory location, so we must access metadata. Also,
11628         allow easier reading of strings so that we can read them from
11629         the constant data.
11630
11631         * class.c (mono_class_layout_fields): no need for literal fields here.
11632
11633         * class-internals.h: api changes for const fields
11634
11635         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11636
11637 2004-07-06  Martin Baulig  <martin@ximian.com>
11638
11639         * mono-debug.h: Increment version number to 44.
11640
11641         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11642         now a gpointer, rewrote this whole method.
11643
11644         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11645         function.  Add information about the wrapper in a new "misc table".
11646
11647         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11648         for the new misc table.
11649
11650 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11651
11652         * metadata-internals.h image.c: Add a cache for helper signatures.
11653
11654         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11655
11656 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11657
11658         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11659         delegates from a delegate. Fixes #61033.
11660         
11661         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11662         marshalling of stringbuilder arrays. Fixes #59900.
11663
11664 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11665
11666         * icall.c: Add EnumBuilder:setup_enum_type icall.
11667
11668 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11669
11670         * icall.c: Added a new icall for the property version of
11671         OffsetOfStringData.
11672
11673 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11674
11675         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11676         it has a constant size across platforms.
11677
11678         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11679         stack trace.
11680
11681 2004-06-29  Martin Baulig  <martin@ximian.com>
11682
11683         * mono-debug.c (mono_debug_add_method): Protect the whole function
11684         in mono_debugger_lock(), not just parts of it.
11685
11686 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11687
11688         * reflection.c: make sure padding bytes in heaps are zeroed.
11689
11690 2004-06-24  David Waite  <mass@akuma.org>
11691
11692         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11693         image.c, loader.c, locales.c, marshal.c, metadata.c,
11694         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11695         string-icalls.c, threads.c: change to C90-style comments from C99 /
11696         C++ -style
11697
11698 2004-06-24  Dick Porter  <dick@ximian.com>
11699
11700         * threads.c
11701         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11702         return createdNew.  Fixes bug 60412.
11703
11704         * threads-types.h: 
11705         * icall.c: Add createdNew parameter to CreateMutex icall
11706
11707 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11708
11709         * reflection.c, object-internals.h: save default value in params.
11710
11711 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11712
11713         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11714         no need to build a new path combining that with the application base.
11715         Fixes bug #60442.
11716
11717 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11718
11719         * reflection.c: fixed minor standard compliance issues.
11720
11721 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11722
11723         * reflection.c: fixed issue with encoding some custom attributes
11724         (arrays in properties and fields, bug #60411).
11725
11726 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11727
11728         * reflection.c: fix start address when copying the public key token.
11729
11730 2004-06-23  Martin Baulig  <martin@ximian.com>
11731
11732         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11733         the `exc' object in a static object to put it into the GC's root set.
11734
11735 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11736
11737         * reflection.c: make mono_reflection_setup_internal_class ()
11738         callable a second time to setup a new parent class.
11739
11740 2004-06-23  Dick Porter  <dick@ximian.com>
11741
11742         * threads.c: Check for WAIT_IO_COMPLETION return values.
11743
11744 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11745
11746         * appdomain.c: Removed the g_free on the public key token. Now copy 
11747         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11748         * assembly.c: Added public key token string value when loading 
11749         assemblies. Fix bug #60439.
11750         * icall.c: Added missing informations (like public key) in 
11751         GetReferencedAssemblies. Fix #60519.
11752         * image.h: Changed definition for public key token from const char*
11753         public_tok_value to guchar public_key_token [17];
11754         * reflection.c: Updated for changes to public key token.
11755
11756 2004-06-22  Lluis Sanchez Gual
11757
11758         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11759         for the field in base classes.
11760
11761 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11762
11763         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11764         mark headers as not supported, they are installed only for use by the
11765         debugger.
11766
11767 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11768
11769         * *.c, *.h: avoid namespace pollution in public headers.
11770
11771 2004-06-21  Martin Baulig  <martin@ximian.com>
11772
11773         * exception.c (mono_get_exception_security): It's in
11774         "System.Security", not in "System".
11775
11776         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11777         the exception classes.
11778
11779 2004-06-21  Martin Baulig  <martin@ximian.com>
11780
11781         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11782         Protect the exception object from being finalized.
11783
11784 2004-06-21  Martin Baulig  <martin@ximian.com>
11785
11786         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11787         public function.
11788
11789 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11790
11791         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11792         if it was not loaded before. Fix parts of #60439.
11793
11794 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11795
11796         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11797         code that was broken since Ben's change: wrappers are now
11798         dependent on the method signature only again.
11799
11800 2004-06-21  Martin Baulig  <martin@ximian.com>
11801
11802         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11803         added interface support.
11804
11805 2004-06-21  Martin Baulig  <martin@ximian.com>
11806
11807         * class.c (mono_vtable_get_static_field_data): New public method.
11808
11809 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11810
11811         * filewatcher.c : Windows build fix to be compliant with API changes.
11812
11813 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11814
11815         * class.h, class.c: more accessors.
11816         * metadata.h, metadata.c: prepare for hiding MonoType and
11817         MonoMethodSignature: people should use the accessors from now on
11818         outside of the tree.
11819
11820 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11821
11822         * *.c, *.h: more API cleanups.
11823
11824 2004-06-18  Jackson Harper  <jackson@ximian.com>
11825
11826         * assembly.c: Trace loading assemblies.
11827         * loader.c: Trace loading native libraries.
11828         * mono-config.c: Trace loading config files.
11829         
11830 2004-06-18  Dick Porter  <dick@ximian.com>
11831
11832         * locales.c: Tell ICU the lengths of strings, it can cope with
11833         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11834
11835 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11836
11837         * image.c: swapped name/filename;
11838
11839 2004-06-18  Martin Baulig  <martin@ximian.com>
11840
11841         * mono-debug-debugger.c (write_class): Write the parent class at
11842         the end of the header.
11843
11844 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11845
11846         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11847
11848 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11849
11850         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11851         (bundle_obj): New conditional define.
11852         (BUILT_SOURCES): Remove.
11853         ($(bundle_srcs)): Make parallel-make safe.
11854         (libmonoruntime_la_LIBADD): Make unconditional.
11855         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11856         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11857
11858 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11859
11860         * culture-info-tables.h: It was inconsistent with the latest
11861           supp info files.
11862
11863 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11864
11865         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11866         be loaded.
11867
11868         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11869         with gcc 2.95.
11870
11871 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11872
11873         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11874         cleaned up public header threads.h.
11875
11876 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11877
11878         * Makefile.am, *.c, *.h: more API cleanups.
11879
11880 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11881
11882         * Makefile.am: removed monosn from compilation.
11883         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11884         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11885         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11886         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11887         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11888         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11889
11890 2004-06-15  Jackson Harper  <jackson@ximian.com>
11891
11892         * assembly.c: Make locales lower case when searching the GAC for
11893         assemblies. gacutil will always make locales lowercase when
11894         installing so this effectively makes them case insensitive.
11895         
11896 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11897
11898         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11899         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11900           parameter which allows to choose whether the wait can be interrupted or 
11901           not. Also added the method mono_monitor_enter(), which locks the monitor
11902           using an infinite wait and without allowing interruption.
11903           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11904           interrupted.
11905         * object.h: Added new fields in MonoThread. suspend_event holds the event
11906           used to susped/resume the thread. synch_lock is the lock object to use for
11907           modifying the thread state.
11908         * threads.c: Use the new synch_lock object for locking, instead of "this",
11909           which can generate deadlocks.
11910           Moved thread state change in Thread.Sleep and Thread.Join from managed
11911           to unmanaged code. This avoids a deadlock when the thread was suspended
11912           just after acquiring the thread lock.
11913           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11914           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11915           which is not fully implemented in the io-layer.
11916         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11917
11918 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11919
11920         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11921         threads-types.h: more API cleanups.
11922
11923 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11924
11925         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11926         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11927         threadpool.c, threads.c: first pass at the exported API cleanup.
11928
11929 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11930
11931         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11932
11933 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11934
11935         * icall.c: added internalGetHome.
11936
11937 2004-06-14  Dick Porter  <dick@ximian.com>
11938
11939         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11940         possible to return successfully when '.' or '..' were the only
11941         entries in a directory, but were skipped.  The MonoIOStat was not
11942         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11943         Fixes bug 59574.
11944
11945 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11946
11947         * reflection.c: make binaries run on .Net 1.1 by default.
11948
11949 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11950
11951         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11952
11953 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11954
11955         * marshal.c: keep track of struct size with explicit layout
11956         (bug #59979).
11957
11958 2004-06-12  Martin Baulig  <martin@ximian.com>
11959
11960         * mono-debug-debugger.c: Comment out a debugging g_message().
11961
11962 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11963
11964         * reflection.c, reflection.h: do not free custom attrs that are cached.
11965         * icall.c: use braces to make code clearer.
11966
11967 2004-06-11  Martin Baulig  <martin@ximian.com>
11968
11969         * class.h (MonoInflatedField): New type.
11970         (MonoClassField): Replaced `MonoType *generic_type' with
11971         `MonoInflatedField *generic_info'.
11972
11973         * icall.c
11974         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11975
11976 2004-06-11  Martin Baulig  <martin@ximian.com>
11977
11978         * reflection.c (mono_image_create_method_token): Correctly encode
11979         varargs methods.
11980
11981 2004-06-11  Martin Baulig  <martin@ximian.com>
11982
11983         * metadata.c (mono_metadata_parse_method_signature): When parsing
11984         a MethodDef which has VarArgs, also set sentinelpos if we don't
11985         have any parameters.
11986
11987 2004-06-11  Martin Baulig  <martin@ximian.com>
11988
11989         * verify.c (mono_method_verify): In CEE_CALL, use
11990         mono_method_get_signature() to get the method's signature, unless
11991         we're a PInvoke method.
11992
11993 2004-06-10  Jackson Harper  <jackson@ximian.com>
11994
11995         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11996         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11997         logical name as the supplied path is just a prefix to the gac not
11998         the direct path to it.
11999         
12000 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12001
12002         * reflection.c: make the token for a created method match
12003         the token of the MethodBuilder it was created from
12004         (IKVM requires this behaviour now).
12005
12006 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12007
12008         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12009         reflection.c, socket-io.c: leak fixes.
12010
12011 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12012
12013         * icall.c: handle sentinel pos in vararg methods in position different
12014         from 0.
12015
12016 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12017
12018         * culture-info-tables.h: freshly generated.
12019
12020 2004-06-09  Martin Baulig  <martin@ximian.com>
12021
12022         * loader.c (mono_get_method_constrained): Call `mono_class_init
12023         (constrained_class)'.   
12024
12025 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12026
12027         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12028         any methods. Fixes #59629.
12029
12030 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12031
12032         * culture-info-tables.h: reflecting locale-builder updates.
12033
12034 2004-06-08  Dick Porter  <dick@ximian.com>
12035
12036         * object.h:
12037         * locales.c: Fixed compile warnings, including a real bug in
12038         CompareInfo_internal_compare.
12039         
12040 2004-06-08  Dick Porter  <dick@ximian.com>
12041
12042         * locales.c
12043         (ves_icall_System_Globalization_CompareInfo_internal_index):
12044         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12045         Double-check the resuls of usearches, because ICU currently
12046         ignores most of the collator settings here.  Fixes bug 59720.
12047         
12048 2004-06-08  Dick Porter  <dick@ximian.com>
12049
12050         * locales.c
12051         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12052         Fix memory leak and segfault-causing typo.  No idea how this one
12053         lasted so long without being noticed.
12054
12055 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12056
12057         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12058         any methods. Fixes #59629.
12059
12060 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12061
12062         * assembly.c:
12063         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12064         own the critical section before). Removed dead code (that's done
12065         in the preload hook).
12066
12067         (mono_assembly_load_with_partial_name): call the preload hook.
12068
12069 2004-06-08  Martin Baulig  <martin@ximian.com>
12070
12071         * metadata.c (mono_metadata_signature_alloc): Default
12072         `sentinelpos' to -1.
12073
12074         * reflection.c (mono_image_get_array_token): Likewise.
12075
12076 2004-06-08  Martin Baulig  <martin@ximian.com>
12077
12078         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12079
12080         * metadata.c (mono_metadata_parse_method_signature): When parsing
12081         a MethodDef which has VarArgs, set sentinelpos.
12082
12083         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12084         `gint16' since we're using -1 for non-varargs methods.
12085
12086         * reflection.c
12087         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12088         (method_encode_signature): Added varargs support.
12089         (method_builder_encode_signature): Likewise.
12090         (mono_image_get_varargs_method_token): New static method.
12091         (mono_image_create_method_token): New public method; this is
12092         called via an icall instead of mono_image_create_token() when
12093         calling a varargs method.       
12094
12095 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12096
12097         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12098
12099 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12100
12101         * culture-info-tables.h : Reflecting the latest locale-builder that
12102           fixed empty array representation ({} to {0}).
12103
12104 2004-06-07  Jackson Harper  <jackson@ximian.com>
12105
12106         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12107         looking up extra gac paths. This allows MONO_GAC_PATH to act
12108         exactly like a prefix.
12109         
12110 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12111
12112         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12113         type name before modifying it. Fixes #59405.
12114
12115 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12116
12117         * culture-info.h: added fields for "all datetime patterns".
12118         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12119           _construct_datetime_format ()): fill xxx_patterns fields.
12120         * object.h: added fields for "all datetime patterns" to
12121           MonoDateTimeFormatInfo.
12122         * culture-info-tables.h: reflecting locale-builder updates.
12123
12124 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12125
12126         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12127         the event has no add and remove methods. Fixes #59629.
12128
12129 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12130
12131         * object.c: Fixed possible integer overflow when allocating large
12132         strings.
12133
12134 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12135
12136         * culture-info-tables.h: reflecting locale-builder updates.
12137
12138 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12139
12140         * culture-info-tables.h: reflecting locale-builder updates.
12141
12142 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12143
12144         * culture-info-tables.h: reflecting locale-builder updates.
12145
12146 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12147
12148         * threads.c: Made Thread.Sleep abortable.
12149
12150 2004-06-02  Martin Baulig  <martin@ximian.com>
12151
12152         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12153
12154         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12155
12156 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12157
12158         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12159
12160 2004-05-30  Jackson Harper  <jackson@ximian.com>
12161
12162         * reflection.c: Do not hardcode assembly versions or public key
12163         tokens anymore. All of this except the corlib section was dead
12164         code anyways.
12165         
12166 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12167
12168         * object.c (mono_runtime_invoke_array): Automatically create boxed
12169         objects for byref valuetypes if needed. Fixes #59300.
12170         
12171         * object.c (mono_method_return_message_restore): Handle 
12172         MONO_TYPE_OBJECT as well.
12173
12174 2004-05-28  Jackson Harper  <jackson@ximian.com>
12175
12176         * reflection.c: The modified type encoding was causing build
12177         problems. Reverted for now.
12178         
12179 2004-05-28  Jackson Harper  <jackson@ximian.com>
12180
12181         * reflection.c/h: Take an assembly ref so that we dont create
12182         fully qualified names when encoding types in the same assembly as
12183         the custom attribute being emitted.
12184         * appdomain.c: Increment version number.
12185         
12186 2004-05-26  Duncan Mak  <duncan@ximian.com>
12187
12188         * icall.c
12189         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12190         Set the full version number (major, minor, build, revision).
12191
12192 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12193
12194         * marshal.c (emit_struct_conv): increment src/dst after blit
12195         (mono_marshal_get_managed_wrapper,
12196         mono_marshal_get_native_wrapper): make sure we have marshalling
12197         info before marshalling params (info computation affects
12198         blittable)
12199
12200         * class.c (class_compute_field_layout): correctly deal with
12201         blittable
12202         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12203         value types (as per what windows dows by default)
12204         (mono_class_setup_mono_type): System.ValueType is blittable
12205         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12206         blittable
12207
12208         * marshal.c (mono_marshal_load_type_info): flag types  as
12209         non-blittable if the native layout doesn't match the managed
12210         layout
12211
12212 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12213
12214         * appdomain.c: don't add stuff in the private search path that is
12215         above the application base. If application base is not set, there's
12216         no private search path.
12217
12218 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12219
12220         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12221         byref struct arguments in native->managed marshalling.
12222
12223 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12224
12225         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12226         cache methods using signature (special case for methods
12227         that are value type or string class)
12228         
12229         * image.c (mono_image_close): clean up allocated GSList's
12230         in runtime_invoke_cache.
12231
12232 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12233
12234         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12235         there's no MONO_CFG_DIR environment variable defined.
12236
12237 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12238
12239         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12240
12241 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12242
12243         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12244           is interrumped.
12245         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12246           before waiting for it, and call CloseHandle after the wait to unref it.
12247           This will make sure that handles are not disposed too early.
12248
12249 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12250
12251         * appdomain.c:
12252         * appdomain.h:
12253         * icall.c: removed
12254         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12255         needed now.
12256
12257         * object.c: se the application_base only for the domain that runs
12258         Main. Fixes bug #59216,
12259
12260 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12261
12262         * appdomain.c:
12263         * object.c: only the domain in which Main is run have
12264         SetupInformation.ConfigurationFile set, so moved a few lines from
12265         appdomain.c to object.c.
12266
12267 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12268
12269         * appdomain.c: we tried to load [name].(dll|exe), but according
12270         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12271         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12272         There's a test case attached to bug #58922.
12273
12274 2004-05-27  Dick Porter  <dick@ximian.com>
12275
12276         * icall.c:
12277         * file-io.c: Implemented icalls for locking and unlocking regions
12278         in a file.
12279         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12280         FALSE on error (fixes both compiler warning and real bug.)
12281
12282 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12283
12284         * culture-info-tables.h: reflecting locale-builder updates.
12285
12286           (Added missing ChangeLog entry for 05/26)
12287
12288 2004-05-27  Jackson Harper  <jackson@ximian.com>
12289
12290         * locales.c: Fix some cut and paste errors.
12291         
12292 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12293
12294         * mono-config.c: set the correct path for config. directory on windows.
12295
12296 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12297
12298         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12299           on win32.
12300
12301 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12302
12303         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12304         from pinvoke functions.
12305         
12306         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12307
12308 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12309
12310         * culture-info-tables.h: reflecting locale-builder updates.
12311
12312 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12313
12314         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12315         #59086.
12316
12317 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12318
12319         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12320         * icall.c: Modified icalls for RNG.
12321         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12322         Windows (CryptoAPI).
12323
12324 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12325
12326         * locales.c: Fix build.
12327
12328 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12329
12330         * culture-info-tables.h: reflecting locale-builder updates.
12331
12332 2004-05-25  Jackson Harper  <jackson@ximian.com>
12333
12334         * locales.c: When creating the current culture use the $LANGs
12335         specific culture. So DateTimeFormat and NumberFormat entries are created.
12336         
12337 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12338
12339         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12340         a char array as parameter.
12341
12342 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12343
12344         * image.c: In mono_image_open(), always use an absolute path name to
12345           look for already loaded images.
12346
12347 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12348
12349         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12350         missing in the windows build (like older cygwin include files).
12351
12352 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12353
12354         * icall.c: Fixed check for possible integer overflow in Buffer_
12355         BlockCopy icall. Replaced comments style // by /* */.
12356
12357 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12358
12359         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12360         
12361         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12362         check after MONO_VTADDR. Fixes pinvoke2.exe.
12363
12364         * marshal.h marshal.c metadata.h: Add beginnings of support for
12365         ftnptr -> delegate marshalling.
12366
12367 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12368
12369         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12370         * threads.c: Fix warnings.
12371
12372 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12373
12374         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12375         * icall.c: Registered icalls for Suspend and Resume.
12376         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12377           Thread.Abort.
12378         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12379         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12380         * process.c: Use WaitForSingleObjectEx.
12381         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12382           checkpoints.
12383         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12384           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12385           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12386           background threads. Added basic support for Abort in Windows.
12387           Start new threads using a managed delegate invoke wrapper. This wrapper
12388           has an interruption checkpoint that is needed since an interruption
12389           can be requested before the thread leaves the unmanaged code that starts 
12390           the thread.
12391         * marshal.c: Added interruption checkpoint after every native call, and
12392           also before managed calls for wrappers called from unmanaged code to
12393           go into managed code.
12394         * object.h: Added new field in MonoThread to keep track of interruption
12395           requests.
12396
12397 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12398
12399         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12400         calls.
12401
12402 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12403
12404         * appdomain.c:
12405         * assembly.c:
12406         * gc.c:
12407         * locales.c:
12408         * mono-config.c:
12409         * rand.c: getenv -> g_getenv (windows!)
12410
12411         * process.c: complete_path is also used on non-windows platforms.
12412
12413 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12414
12415         * icall.c: new signature for Process_Start.
12416
12417         * process.[ch]: new signature for Process_Start. If we're on windows
12418         and UseShellExecute is false, we have to search for the program by
12419         ourselves if we don't get a full path.
12420
12421 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12422
12423         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12424         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12425
12426 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12427
12428         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12429         Fixes bug #58373.
12430
12431 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12432
12433         * process.c: use double quotes to quote program name and arguments on
12434         windows. Fixes bug #58575.
12435
12436 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12437
12438         * file-io.c: don't return "." and ".." when using windows Find*File.
12439
12440 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12441
12442         * marshal.c: Don't pass wrappers to message init because method 
12443         addressed used to lookup metadata. part of remoting[2|3] fix.
12444
12445 2004-05-15  Jackson Harper  <jackson@ximian.com>
12446
12447         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12448         path is essentially the same as MONO_PATH except that it points to
12449         GACs instead of lib directories.
12450         * loader.h: The user gac is gone so we dont need function to
12451         enable/disable it.
12452         * mono-config.c: user gac option is now gone.
12453         
12454 2004-05-15  Jackson Harper  <jackson@ximian.com>
12455
12456         * culture-info.h: Make defines more consistent, add calendar data
12457         to the culture info table.
12458         * culture-info-tables.h: Add basic calendar data. Basically
12459         everyone gets default gregorian until all the data is
12460         updated.
12461         * locales.c: Use the new consistent defines. Set calendar data for
12462         culture info objects.
12463         * object.h: add a field for calendar data to CultureInfo
12464         
12465 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12466
12467         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12468         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12469         a signature.
12470         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12471         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12472         an extra param that is the pointer of the method to invoke. The IL for
12473         the invoke method is no longer specific to the method, but to the
12474         signature of the method. Thus, we can share the same code for multiple
12475         methods. This reduces the number of methods that have to be compiled.
12476
12477 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12478
12479         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12480
12481         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12482
12483         * icall.c: Optimize Buffer.BlockCopy.
12484
12485 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12486
12487         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12488         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12489         quote). Changed them to "MMMM yyyy".
12490
12491 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12492
12493         * rand.c
12494         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12495
12496 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12497
12498         * reflection.h: Updated after changes to managed structures.
12499
12500         * appdomain.c: Bump corlib version.
12501
12502 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12503
12504         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12505         windows.
12506
12507 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12508
12509         * Makefile.am: link to ../os/libmonoos.la on windows.
12510
12511         * assembly.c:
12512                 -If MONO_DEBUG, warn about non-existing directories in
12513                 MONO_PATH.
12514                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12515                 compile time variable.
12516                 -Removed init_default_path and call mono_set_rootdir from
12517                 libmonoos.a instead (windows only).
12518
12519         * assembly.h: declare mono_assembly_getrootdir().
12520
12521         * domain.c:
12522         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12523
12524         * loader.c: s/getenv/g_getenv/
12525
12526 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12527
12528         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12529
12530         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12531
12532         * metadata.h: Add new marshalling conversions.
12533
12534         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12535         function.
12536
12537         * reflection.c (mono_reflection_get_type): Lookup the type in all
12538         modules of a multi-module assembly. Fixes #58291.
12539
12540 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12541
12542         * threads.c: Before aborting a background, set the StopRequested
12543         state.  This avoids throwing the Abort exception.
12544         In mono_thread_manage, don't continue with the shutdown until all
12545         aborted threads have actually stopped.
12546
12547 2004-05-10  Jackson Harper  <jackson@ximian.com>
12548
12549         * locales.c: Remove the modifier from culture names.
12550         
12551 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12552
12553         * Makefile.am: monosn is not installed any more. It has been deprecated
12554         in favor of sn.
12555
12556 2004-05-07  Jackson Harper  <jackson@ximian.com>
12557
12558         * locales.c
12559         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12560         Fix array construction, add bailout if the length is 0.
12561
12562 2004-05-07  Dick Porter  <dick@ximian.com>
12563
12564         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12565         machine doesn't have a DNS entry.  Patch by Urs Muff
12566         (umuff@quark.com), fixes bug 57928.
12567
12568 2004-05-06  Jackson Harper  <jackson@ximian.com>
12569
12570         * reflection.c: Handle null PublicTokens properly. alloc mem for
12571         assembly names culture so we dont crash when freeing it.
12572         
12573 2004-05-06  Jackson Harper  <jackson@ximian.com>
12574
12575         * assembly.c: Check the usergac when loading with partial names.
12576         
12577 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12578
12579         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12580         does nothing for now (not required for Linux/Windows) but the class
12581         library can call it (and a newer or modified runtime could need it).
12582         * icall.c: Registred icall.
12583
12584 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12585
12586         * loader.c: prints a message on module loading error we set MONO_DEBUG
12587         environment variable.
12588
12589 2004-05-05  Jackson Harper  <jackson@ximian.com>
12590
12591         * appdomain.c: Handle PublicKeyToken=null properly.
12592         
12593 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12594
12595         * environment.c|h: Added icall ves_icall_System_Environment_
12596         GetOSVersionString to get the current OS version as a string.
12597         * icall.c: Registred icall.
12598
12599 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12600
12601         * object.c: in mono_object_get_virtual_method(), take into account that
12602         non-virtual methods don't have a slot in the vtable. Check needed when
12603         the object is a proxy.
12604
12605 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12606
12607         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12608         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12609
12610         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12611
12612         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12613         passed when a valuetype is expected.
12614
12615         * object.c (mono_unhandled_exception): Only set the exit code if the
12616         exception happens in the main thread. Fixes thread5.exe.
12617
12618         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12619         invalid names. Fixes #58047.
12620
12621 2004-05-03  Jackson Harper  <jackson@ximian.com>
12622
12623         * assembly.c: This line was committed accidently and is unneeded.
12624         
12625 2004-05-03  Jackson Harper  <jackson@ximian.com>
12626
12627         * icall.c: Add new icall for Assembly::LoadWithPartialName
12628         * assembly.c/.h: new function that probes the GAC to load partial
12629         assembly names by Paolo Molaro.
12630         
12631 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12632
12633         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12634         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12635         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12636         full type name.
12637
12638 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12639
12640         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12641         * reflection.c: fix bug when parsing a full type name and Version is not
12642         the last thing in the string.
12643
12644 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12645
12646         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12647         crashes when it is freed.
12648
12649 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12650
12651         * assembly.c: print the compat warning to stderr.
12652
12653 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12654
12655         * assembly.c (mono_assembly_load_references): Add a compatibility
12656         hack to run old applications that might be still referencing the
12657         3300-based assemblies, only do this for System.xxx.
12658
12659 2004-05-01  Jackson Harper  <jackson@ximian.com>
12660
12661         * appdomain.c: If the culture is neutral we set it to "".
12662         
12663 2004-04-29  Jackson Harper  <jackson@ximian.com>
12664
12665         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12666
12667 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12668  
12669         * string-icalls.c: added low overhead function for copying chars
12670         * icall.c: added needed icall for the above function
12671  
12672 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12673
12674         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12675         Environment.GetLogicalDrives.
12676
12677 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12678
12679         * rand.c: try and talk to egd or prngd
12680         for random bytes if opening devices fail.
12681
12682 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12683
12684         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12685         alignment for the type using the native alignment of its members 
12686         instead of using klass->min_align.
12687
12688         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12689
12690 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12691
12692         * file-io.c:
12693         * socket-io.c: added check for sys/aio.h.
12694
12695 2004-04-28  Dick Porter  <dick@ximian.com>
12696
12697         * threads.c: Don't abort a thread thats already aborting, when
12698         terminating everything.
12699
12700 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12701
12702         * icall.c: added 2 new async calls for Socket.
12703
12704         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12705         IO on *nix systems.
12706
12707         * threadpool.c: removed unused variable.
12708
12709 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12710
12711         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12712
12713 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12714
12715         * locales.c: put back string_invariant_tolower () and
12716         string_invariant_toupper ().
12717
12718 2004-04-26 David Waite <mass@akuma.org>
12719
12720         * file-io.h:
12721         * socket-io.h:
12722         * threads.h:
12723         * unicode.h: remove comma from end of enumeration declarations
12724
12725 2004-04-26 David Waite <mass@akuma.org>
12726
12727         * debug-mono-symfile.h:
12728         * decimal.c:
12729         * mono_debug.h:
12730         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12731
12732
12733 2004-04-26  Jackson Harper  <jackson@ximian.com>
12734
12735         * appdomain.c: Increment version number.
12736         
12737 2004-04-26  Jackson Harper  <jackson@ximian.com>
12738
12739         * appdomain.c: Set assembly references public token value when
12740         PublicKeyToken is specified, not the hash_value. Free public token
12741         values when free assembly name data. Previously the public key
12742         token was hex decoded, however we are using hex encoded public key
12743         tokens, so this is not neccasary.
12744         * assembly.c: Lookup assemblies in the gac if their public token
12745         value is set. Add function to allow enabling user gac
12746         lookups. Specify whether or not the assembly was loaded from the
12747         GAC. Compare full assembly names when checking the cache for
12748         assemblies (Temporarily disabled see comment in code). Remove
12749         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12750         specifies trace-loader they get extra info to stdout on the
12751         loading of assemblies.
12752         * image.h: Add a field for an assembly references public token
12753         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12754         whether an assembly has been loaded from the GAC.
12755         * image.c: Remove a corlib -> mscorlib name mapping.
12756         * loader.h: Add function to enable/disable the user gac.
12757         * mono-config.c: Check if the usergac is enabled in the config
12758         file.
12759         * icall.c: New icall to determine whether or not an assembly has
12760         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12761         * tabldefs.h: Add constant for assemblyref flag that specifies a
12762         full public key is used instead of a public token.
12763         * reflection.c: Remove mscorlib -> corlib mappings. Set
12764         PublicTokenValue instead of hash value. This value is a hex
12765         string so it does not need to be expanded.
12766
12767 2004-04-26  Martin Baulig  <martin@ximian.com>
12768
12769         * mono-debug-debugger.c (mono_debugger_initialize): Set
12770         `mono_debugger_initialized' before calling mono_debug_lock().
12771
12772 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12773
12774         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12775           InternalToUpper/InternalToLower.
12776         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12777           removed invariant culture shortcut.  This is now done in managed code.
12778         * locales.c: (string_invariant_toupper/tolower) removed.
12779
12780 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12781
12782         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12783         Added Poll internal call.
12784
12785         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12786         call for Poll. Select was too heavy for polling a single socket.
12787
12788         * threadpool.[ch]: added mono_threadpool_cleanup.
12789         * threads.c: use it. Don't use Thread_Abort on windows.
12790
12791 2004-04-23  Martin Baulig  <martin@ximian.com>
12792
12793         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12794
12795 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12796
12797         * icall.c: Registred new icalls for key pair protection and added an
12798         icall for Environment.GetFolderPath on Windows.
12799         * security.c|h: Added new icalls for key pair protection.
12800
12801 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12802
12803         * socket-io.c: don't display the non-supported family warning for known
12804         families. Now this is not displayed on windows when checking support
12805         for IPv4/IPv6.
12806
12807 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12808
12809         * class.c: don't display the layout warning for static fields.
12810
12811 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12812
12813         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12814         * locales.c, locales.h: Added new icalls for culture-specific
12815         Char.ToLower and Char.ToUpper.
12816
12817 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12818
12819         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12820         by David Waite.
12821
12822 2004-04-20  Martin Baulig  <martin@ximian.com>
12823
12824         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12825         of the type name before passing it to mono_reflection_type_from_name().
12826
12827 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12828
12829         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12830         encodings here. Fixes #56965.
12831
12832 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12833
12834         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12835         fix test on strstr result not that I can see anything that
12836         relies on the result.
12837
12838 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12839
12840         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12841         Fixes #57081.
12842
12843         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12844
12845         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12846         function to determine which marshalling to use for strings. Fixes
12847         #56965.
12848
12849         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12850
12851         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12852
12853 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12854
12855         * icall.c: #include mono-config.h
12856
12857 2004-04-15  Jackson Harper  <jackson@ximian.com>
12858
12859         * culture-info-tables.h: Fix date formats for en-US culture.
12860         
12861 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12862
12863         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12864         ThreadPool.SetMinThreads.
12865         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12866         ThreadPool.SetMinThreads.
12867
12868 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12869
12870         * mono-config.c: also load the .config file in the directory
12871         where the assembly was found.
12872
12873 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12874
12875         * assembly.c: load per-assembly config files.
12876         * icall.c: decrapified code to get the config dir and moved to
12877         mono-config.c.
12878         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12879         per-assembly config files. When doing a dll map lookup give precedence
12880         to the per-assembly data.
12881
12882 2004-04-14  Martin Baulig  <martin@ximian.com>
12883
12884         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12885         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12886         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12887
12888         * mono-debugger-debugger.c: While the debugger is locked, remember
12889         whether the symbol tables have changes and send one single
12890         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12891
12892 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12893
12894         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12895
12896         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12897         function.
12898
12899         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12900         account when marshalling string arrays. Fixes #56965.
12901
12902 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12903
12904         * icall.c: Add new icalls mapping for security.
12905         * security.c|h: Add internal calls for WindowsIdentity,
12906         WindowsImpersonationContext and WindowsPrincipal.
12907
12908 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12909
12910         * class.c: Added comment to ensure the System.MonoDummy class
12911         is removed when no longer necessary
12912
12913 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12914
12915         * appdomain.c: Pass arguments to the bootstraping exceptions to
12916         minimize JITed methods at boot
12917
12918         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12919         second string to be null.
12920
12921         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12922         Change the protocol to minimize the JIT methods at startup.  Now
12923         it Returns the internal codepage, if the value of "int_code_page"
12924         is 1 at entry, and we can not compute a suitable code page
12925         number, returns the code page as a string.
12926
12927 2004-04-13  Jackson Harper  <jackson@ximian.com>
12928
12929         * culture-info-tables.h: Fix number of decimal digits for all
12930         english locales.
12931
12932 2004-04-13  Jackson Harper  <jackson@ximian.com>
12933
12934         * icall.c: Clairfy out of sync error message. It is not always
12935         your corlib that is out of sync.
12936
12937 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12938
12939         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12940         properties when only the set accessor is overriden. Fixes #55874.
12941
12942 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12943
12944         * assembly.c (mono_assembly_load_references): Make this thread safe.
12945         Fixes #56327.
12946
12947 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12948
12949         * monosn.c: Add missing initialization calls.
12950
12951 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12952
12953         * locales.c:
12954         ves_icall_System_Globalization_CultureInfo_construct_number_format
12955         Fix g_assert so it compiles on fussier compilers re int/ptr
12956         mismatch
12957
12958 2004-04-08  Dick Porter  <dick@ximian.com>
12959
12960         * socket-io.h:
12961         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12962         53992.  Also rearrange the code so that the internal calls return
12963         an error value and exceptions are thrown from managed code.
12964
12965         * icall.c: Add type info to the socket icalls.
12966
12967 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12968
12969         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12970         owes me a beer.
12971
12972 2004-04-07  Martin Baulig  <martin@ximian.com>
12973
12974         * class.c (mono_class_from_generic_parameter): Don't default
12975         `klass->parent' to `mono_defaults.object_type'.
12976
12977 2004-04-07  Martin Baulig  <martin@ximian.com>
12978
12979         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12980         `param->pklass->reflection_info'.       
12981
12982 2004-04-07  Jackson Harper  <jackson@ximian.com>
12983
12984         * culture-info-tables.h: Fix date separator symbol.
12985         
12986 2004-04-07  Martin Baulig  <martin@ximian.com>
12987
12988         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12989         from System.Type to System.MonoType.
12990
12991 2004-04-07  Martin Baulig  <martin@ximian.com>
12992
12993         * reflection.h
12994         (MonoReflectionGenericParam): Added `has_reference_type' and
12995         `has_value_type' fields.
12996
12997         * reflection.c (mono_image_get_generic_param_info): Encode the
12998         correct flags if we have the `class' or `struct' constraint.
12999
13000 2004-04-07  Martin Baulig  <martin@ximian.com>
13001
13002         * reflection.h
13003         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13004
13005 2004-04-07  Jackson Harper  <jackson@ximian.com>
13006
13007         * appdomain.c: Revert extra patches, just wanted to bump the
13008         version number.
13009         
13010 2004-04-07  Jackson Harper  <jackson@ximian.com>
13011
13012         * Makefile.am: Add culture-info private headers.
13013         * icall.c: Add new icalls for contructing locales.
13014         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13015         * locales.h: Declare new culture info construction methods.
13016         * object.h: Add new fields used to avoid the CultureMap to
13017         MonoCultureInfo.
13018         * culture-info.h: Definition of structs used in the culture info
13019         tables.
13020         * culture-info-tables.h: Autogenerated tables that contain culture
13021         info data. This file was generated with the locale-builder tool.
13022         * appdomain.c: Incement corlib version number.
13023         
13024 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13025
13026         * appdomain.c: (mono_runtime_init) move mono_thread_init
13027         to before mono_object_new calls so critical sections
13028         are initialized before use.
13029
13030 2004-04-07  Martin Baulig  <martin@ximian.com>
13031
13032         * icall.c
13033         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13034         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13035         (ves_icall_MonoGenericParam_initialize): Removed.
13036         (monogenericparam_icalls): Removed.
13037         (generictypeparambuilder_icalls): Added new table for
13038         System.Reflection.Emit.GenericTypeParameterBuilder.
13039
13040         * reflection.c
13041         (mono_reflection_define_generic_parameter): Removed.
13042         (mono_reflection_initialize_generic_parameter): This is now called
13043         from GenericTypeParameterBuilder's .ctor.
13044
13045 2004-04-06  Martin Baulig  <martin@ximian.com>
13046
13047         * class.c (mono_class_init): Don't inflate nested classes in a
13048         generic instance.
13049         (mono_type_get_name_recurse): Include the generic arguments for
13050         generic instances and generic type declarations.
13051         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13052         (_mono_class_get_instantiation_name): Removed.
13053         (mono_class_create_generic): Always use `gklass->name' as our name.
13054
13055         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13056
13057         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13058         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13059         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13060         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13061         closed generic methods here.
13062
13063         * reflection.c
13064         (mono_reflection_generic_inst_get_nested_types): Removed.
13065         (inflate_mono_method): Copy the generic parameters from the
13066         MonoMethodHeader into out MonoGenericMethod.
13067
13068 2004-04-06  Martin Baulig  <martin@ximian.com>
13069
13070         * row-indexes.h
13071         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13072
13073         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13074
13075         * reflection.c (build_compressed_metadata): If we have any entries
13076         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13077         set the header version to 1.1.
13078
13079 2004-04-06  Martin Baulig  <martin@ximian.com>
13080
13081         * class.c (mono_class_init): If we're a generic instance,
13082         initialize our nested classes, too.
13083         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13084         suffix. 
13085
13086 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13087
13088         * process.c: quote the argument passed to the shell on windows.
13089
13090 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13091
13092         * threads.c (mono_alloc_special_static_data): Allow this to be
13093         called during startup.
13094
13095 2004-04-02  Martin Baulig  <martin@ximian.com>
13096
13097         * icall.c
13098         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13099
13100 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13101
13102         * icall.c: Fix build.
13103
13104 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13105
13106         * Makefile.am: Added security.c|h.
13107         * icall.c: Added icall for get_UserName;
13108         * security.c: New file for security related icalls. Added function
13109         get_UserName for System.Environment (fix #56144).
13110         * security.h: New. Header file for security.c
13111
13112 2004-04-02  Dick Porter  <dick@ximian.com>
13113
13114         * icall.c: Deleted the icalls that were obsoleted some time ago
13115         by the ICU string code, and which were mixed into the icall
13116         rearranging.  Fixes bug 55969.
13117
13118         * string-icalls.h: 
13119         * string-icalls.c: Deleted the code that those icalls reference.
13120
13121 2004-04-01  Martin Baulig  <martin@ximian.com>
13122
13123         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13124
13125         * class.c (mono_class_from_generic_parameter): Don't set 
13126         TYPE_ATTRIBUTE_INTERFACE.
13127         (my_mono_class_from_generic_parameter): Likewise.
13128
13129 2004-04-01  Martin Baulig  <martin@ximian.com>
13130
13131         * loader.c (find_method): Added an optional `MonoClass *ic'
13132         argument to search in a specific interface.
13133         (mono_get_method_constrained): New public function.
13134
13135 2004-04-01  Martin Baulig  <martin@ximian.com>
13136
13137         * reflection.c (mono_image_get_generic_field_token): Use the
13138         `handleref' cache here.
13139
13140 2004-04-01  Martin Baulig  <martin@ximian.com>
13141
13142         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13143
13144         * reflection.c (create_generic_typespec): Use the `typespec' hash
13145         here, not the `typeref' one.    
13146
13147 2004-04-01  Martin Baulig  <martin@ximian.com>
13148
13149         * class.c (mono_class_inflate_generic_type): Moved the
13150         functionality into a new static inflate_generic_type() which
13151         returns NULL if it didn't do anything.  Only increment the
13152         `mono_stats.inflated_type_count' if we actually inflated
13153         something.
13154         (mono_class_get_full): Check the classes type to see whether we
13155         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13156
13157 2004-04-01  Jackson Harper  <jackson@ximian.com>
13158
13159         * reflection.c: Set culture for assembly references.
13160         
13161 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13162
13163         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13164
13165 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13166
13167         * assembly.c:
13168         (do_mono_assembly_open): the critical section also covers
13169         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13170
13171 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13172
13173         * threads.c:
13174         (mono_manage_threads): abort the background threads when finishing.
13175         Fixes bug #47232.
13176
13177 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13178
13179         * gc.c: only close the done_event handle if there was no timeout.
13180         C-ified comments.
13181
13182 2004-03-30  Martin Baulig  <martin@ximian.com>
13183
13184         * icall.c (icall_entries): It's called "System.Activator", not
13185         "System.Activation".    
13186
13187 2004-03-30  Martin Baulig  <martin@ximian.com>
13188
13189         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13190         (mono_class_create_from_typespec): Likewise.
13191
13192 2004-03-30  Martin Baulig  <martin@ximian.com>
13193
13194         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13195         `has_ctor_constraint' and `initialized'.
13196
13197 2004-03-30  Martin Baulig  <martin@ximian.com>
13198
13199         * reflection.c (encode_new_constraint): New static function to add
13200         the constructor constraint attribute to a type parameter.
13201         (encode_constraints): Call encode_new_constraint() if necessary.
13202
13203         * reflection.h
13204         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13205
13206         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13207         
13208 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13209
13210         * reflection.c, icall.c: add support for pinning variables. 
13211
13212 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13213
13214         * marshal.c (mono_marshal_get_managed_wrapper):
13215         init bool local with zero rather than null.
13216
13217 2004-03-29  Martin Baulig  <martin@ximian.com>
13218
13219         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13220         the "official" behavior here.
13221         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13222
13223 2004-03-29  Martin Baulig  <martin@ximian.com>
13224
13225         * icall.c: Reflect latest API changes.
13226
13227 2004-03-29  Martin Baulig  <martin@ximian.com>
13228
13229         * loader.c (mono_get_method_from_token): Also call
13230         mono_metadata_load_generic_params () for abstract and interface
13231         methods; replace the type arguments in the method signature with
13232         the ones which are loaded from the metadata.
13233
13234 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13235
13236         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13237         of the lock is not the current thread. MS.NET don't do it, in spite of
13238         what the documentation says. See bug #56157.
13239
13240 2004-03-28  Martin Baulig  <martin@ximian.com>
13241
13242         * class.c (mono_class_init): Don't call init_properties() and
13243         init_events() for generic instances; set `prop->parent' when
13244         inflating properties.
13245
13246         * reflection.c (mono_generic_inst_get_object): Call
13247         `mono_class_init (ginst->klass)'.
13248         (mono_type_get_object): Only create a MonoGenericInst if your
13249         generic type is a TypeBuilder.
13250         (do_mono_reflection_bind_generic_parameters): Only set
13251         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13252
13253 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13254
13255         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13256         Fixes #56091.
13257
13258 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13259
13260         * icall.c: added Kill_internal icall.
13261         * process.[ch]: added Kill_internal icall.
13262
13263 2004-03-25  Martin Baulig  <martin@ximian.com>
13264
13265         * class.h (MonoStats): Added `generic_instance_count',
13266         `inflated_method_count', `inflated_type_count' and
13267         `generics_metadata_size'.       
13268
13269 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13270
13271         * reflection.c: no warnings now.
13272
13273 2004-03-25  Martin Baulig  <martin@ximian.com>
13274
13275         * class.c (mono_class_get_full): New public function; does a
13276         mono_class_get(), but also takes a `MonoGenericContext *'.
13277
13278         * loader.c (mono_field_from_memberref): Renamed to
13279         `field_from_memberref', made static and added `MonoGenericContext *'
13280         argument.
13281         (mono_field_from_token): Added `MonoGenericInst *' argument.
13282         (method_from_memberef): Likewise.
13283         (mono_get_method_from_token): Likewise.
13284         (mono_get_method_full): New public function; does a
13285         mono_get_method(), but also takes a `MonoGenericContext *'.
13286
13287         * verify.c (mono_method_verify): Get the method's generic context
13288         and pass it to mono_field_from_token(), mono_get_method_full() and
13289         mono_class_get_full().
13290
13291 2004-03-25  Martin Baulig  <martin@ximian.com>
13292
13293         * class.c (mono_class_inflate_generic_type): Take a
13294         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13295         `MonoGenericMethod *'.
13296
13297 2004-03-25  Martin Baulig  <martin@ximian.com>
13298
13299         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13300         instead of the MonoGenericMethod here.
13301
13302 2004-03-25  Martin Baulig  <martin@ximian.com>
13303
13304         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13305         each time we create a new MonoGenericInst, we also create a new
13306         context which points back to us.
13307
13308         * class.c (inflate_method): Use `ginst->context' instead of
13309         creating a new context.
13310
13311         * loader.c (method_from_memberref): Use
13312         `klass->generic_inst->context' instead of creating a new context.
13313
13314 2004-03-25  Martin Baulig  <martin@ximian.com>
13315
13316         * class.h (MonoGenericContext): New struct.
13317         (MonoGenericMethod): Removed `generic_inst'.
13318
13319         * class.c (mono_class_inflate_generic_method): Take a
13320         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13321
13322 2004-03-25  Martin Baulig  <martin@ximian.com>
13323
13324         * loader.h (MonoMethodInflated): New typedef.
13325
13326         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13327         `generic_param_count' consume just 30 bits, added `is_inflated'
13328         and `has_type_parameters' flags (one bit each).
13329
13330         * class.c (mono_class_inflate_generic_method): Create a
13331         MonoMethodInflated instead of a MonoMethodNormal and set
13332         `is_inflated' in the method signature.
13333
13334         * class.h (MonoGenericMethod): Removed `generic_method'.
13335
13336 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13337
13338         * image.c: Make sure the name of a MonoImage is always an absolute path.
13339           This fixes bug #54415.
13340
13341 2004-03-24  Martin Baulig  <martin@ximian.com>
13342
13343         * class.c (mono_class_setup_vtable): If we're a generic instance,
13344         use our generic type's vtable size.
13345
13346 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13347
13348         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13349         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13350         problems.
13351
13352 2004-03-23  Martin Baulig  <martin@ximian.com>
13353
13354         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13355         `MonoEvent *events'.
13356
13357         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13358         (typebuilder_icalls): Added "get_event_info"; calls
13359         mono_reflection_event_builder_get_event_info(). 
13360
13361         * reflection.c (mono_reflection_generic_inst_initialize): Added
13362         `MonoArray *events'.
13363         (mono_reflection_event_builder_get_event_info): New function.
13364
13365 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13366
13367         * object.h: add mono_type_initialization_init
13368
13369         * object.c (mono_runtime_class_init): 
13370         implement class constructor synchronization rules
13371         to cope with threading issues.  
13372         add mono_type_initialization_init
13373
13374         * appdomain.c (mono_runtime_init): call 
13375         mono_type_initialization_init
13376
13377         * class.h: removing initializing field from MonoVTable
13378
13379 2004-03-23  Martin Baulig  <martin@ximian.com>
13380
13381         * class.c (my_mono_class_from_generic_parameter): Use
13382         `param->name' if it's not NULL. 
13383
13384 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13385
13386         * class.c: do not insert non-virtual methods in the vtable.
13387         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13388         that means the method is non-virtual. This never would have
13389         happened before.
13390
13391 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13392
13393         * profiler.c: Added lock for accessing coverage_hash.
13394
13395 2004-03-22  Martin Baulig  <martin@ximian.com>
13396
13397         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13398         `method->method->signature->generic_param_count != 0' to make it
13399         work for interface methods.
13400
13401 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13402
13403         * process.c: quote the string passed to the shell using g_shell_quote.
13404
13405 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13406
13407         * threads.c:
13408         (mono_threads_manage): don't remove the finalizer thread and self
13409         from the threads hash table so that mono_thread_manage can be called
13410         more than once.
13411
13412 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13413
13414         * process.c: quote the arguments when UseShellExecute is true. Fixes
13415         bug #55790.
13416
13417 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13418
13419         * threads.c: set mono_thread_detach as a cleanup routine for every
13420         thread. This way it's always executed upon thread termination, either
13421         aborted or finished normally. No more xsp hangs!
13422
13423 2004-03-17  Martin Baulig  <martin@ximian.com>
13424
13425         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13426         `int count_nested' and a `MonoType **nested'.
13427
13428         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13429         most of the functionality into a new static
13430         do_mono_reflection_bind_generic_parameters() and don't take a
13431         `MonoType *nested_in' argument any more.  Don't compute nested
13432         types here.
13433         (mono_reflection_generic_inst_get_nested_types): New public method
13434         to get nested types.
13435
13436         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13437         we're a nested class.
13438
13439         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13440         mono_reflection_generic_inst_get_nested_types() to compute the
13441         nested types.
13442
13443 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13444
13445         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13446         descriptive error message under windows.
13447         
13448 2004-03-17  Martin Baulig  <martin@ximian.com>
13449
13450         * class.c (dup_type): Added `const MonoType *original' argument;
13451         copy the attrs from the original type.
13452
13453 2004-03-17  Martin Baulig  <martin@ximian.com>
13454
13455         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13456         `m->generic_inst_cache' here.
13457
13458 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13459
13460         * exception.h exception.c: Add stack_overflow_exception.
13461
13462 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13463
13464         * threadpool.c:
13465         (overlapped_callback): call SetEvent *after* invoking the callback.
13466         No need to call CloseHandle.
13467
13468 2004-03-16  Martin Baulig  <martin@ximian.com>
13469
13470         * reflection.c (mono_image_get_fieldref_token): Take a
13471         `MonoReflectionField *' instead of a `MonoClassField *' and a
13472         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13473
13474 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13475
13476         * appdomain.c: don't add the culture to the filename we're looking for
13477         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13478
13479 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13480
13481         * locales.c: don't ignore symbols when doing case insensitive compares.
13482         Thanks Dick! Fixes bug #54046.
13483
13484         * threads.c: surround 'threads' usage with enter/leave in
13485         mono_thread_manage.
13486
13487 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13488
13489         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13490         implicitly marshalled as [Out]. Fixes #55450.
13491
13492         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13493         an exception.
13494
13495 2004-03-16  Martin Baulig  <martin@ximian.com>
13496
13497         * class.c (mono_class_from_generic_parameter): Use the actual
13498         parameter name. 
13499
13500 2004-03-16  Martin Baulig  <martin@ximian.com>
13501
13502         * reflection.c (type_get_signature_size): New static function.
13503         Compues the size of the type in a method signature.
13504         (method_get_signature_size): New static function; calls
13505         type_get_signature_size() to compute the actual size of the
13506         method's signature.
13507         (method_encode_signature): Use method_get_signature_size() to get
13508         the signature's size rather than using `nparams * 10'.
13509
13510 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13511
13512         * file-io.h: define here WapiOverlapped on windows. I don't want the
13513         regular OVERLAPPED one.
13514
13515         * file-io.c:
13516         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13517         Disabling AIO on windows.
13518
13519 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13520
13521         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13522         bug #55385.
13523
13524 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13525
13526         * appdomain.c: upgraded corlib version.
13527
13528         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13529         and BeginWrite. Allow opening files for asynchrnous operations.
13530
13531         * file-io.h: new struct that maps FileStreamAsyncResult.
13532         * icall.c: added new icalls.
13533         * process.[ch]: support setting child process environment variables
13534         and use the SHELL or COMSPEC when UseShellExecute is true.
13535
13536         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13537         callback for async. IO is here and also BindHandle.
13538
13539         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13540         from here.
13541
13542 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13543
13544         * reflection.c (create_custom_attr): Allow len == 0.
13545
13546         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13547         computation on big-endian machines.
13548
13549 2004-03-13  Martin Baulig  <martin@ximian.com>
13550
13551         * class.h (MonoGenericInst): Added `int count_ifaces'.
13552
13553         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13554         `ginst->count_ifaces' instead `klass->interface_count' since we
13555         may get called before the vtable is created.
13556
13557         * loader.c (mono_method_get_param_names): If we're a generic
13558         instance, return and don't initialize the class.
13559
13560         * reflection.c (mono_reflection_setup_generic_class): Don't call
13561         ensure_runtime_vtable().
13562         (mono_reflection_bind_generic_parameters): Set
13563         `ginst->count_ifaces'.
13564
13565 2004-03-11  Jackson Harper <jackson@ximian.com>
13566
13567         * icall.c:
13568         * unicode.c:
13569         * unicode.h: Remove unused System.Char icalls.
13570         
13571 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13572
13573         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13574         code when we P/Invoke the first library in Windows.Forms, instead
13575         of when we first open the assembly.
13576
13577         * assembly.c: Drop the lookup from here.
13578
13579 2004-03-10  Martin Baulig  <martin@ximian.com>
13580
13581         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13582         class for properties, fields and events.  Finally fixes #54945.
13583
13584 2004-03-10  Martin Baulig  <martin@ximian.com>
13585
13586         * metadata.c (mono_metadata_class_equal): New static function;
13587         checks whether two generic instances or two generic parameters are
13588         equal.
13589         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13590         compare classes.        
13591
13592 2004-03-10  Martin Baulig  <martin@ximian.com>
13593
13594         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13595
13596         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13597         argument and write it into the `reflection_info' field.
13598
13599         * icall.c
13600         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13601         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13602
13603 2004-03-09  Jackson Harper  <jackson@ximian.com>
13604
13605         * char-conversions.h: use 8 bits for numeric data its all we need
13606         * icall.c: numeric data is only 8 bits now.
13607
13608 2004-03-09  Martin Baulig  <martin@ximian.com>
13609
13610         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13611
13612         * class.c (init_properties, init_events): Initialize the new
13613         `parent' field.
13614
13615         * reflection.c (typebuilder_setup_properties): Likewise.
13616         (typebuilder_setup_events): Likewise.
13617
13618         * reflection.h (MonoEventInfo): Replaced `parent with
13619         `declaring_type' and `reflected_type'.
13620
13621         * icall.c (ves_icall_get_property_info): Distinguish between
13622         declaring and reflected type.
13623         (ves_icall_get_event_info): Likewise.
13624
13625 2004-03-09  Martin Baulig  <martin@ximian.com>
13626
13627         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13628         (ves_icall_Type_GetField): Correctly set field->klass.
13629
13630 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13631
13632         * loader.h: Fix warning.
13633
13634 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13635
13636         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13637         library routine if present.  Notice that it will still continue
13638         executing even if its missing, for those working on the Gtk#
13639         edition of Windows.Forms.
13640
13641         * assembly.c (do_mono_assembly_open): If loading the
13642         System.Windows.Forms call mono_loader_wini_init.
13643
13644 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13645
13646         * class.h: Added MonoRemoteClass struct.
13647         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13648         function for MonoStrings.
13649         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13650         Added internal call for getting the proxy type.
13651         * marshal.c: Get the type of transparent proxies from its remote_class.
13652         Added methods that generate the IL for type checks and casts:
13653         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13654         mono_marshal_get_proxy_cancast.
13655         * marshal.h: Declaration of the previous new methods.
13656         * object.c: Added new moethods for creating and updating MonoRemoteClass
13657         instances: mono_remote_class, mono_upgrade_remote_class, 
13658         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13659         * verify.c: FIx transparent_proxy_fields layout.
13660         * appdomain.c: Bump corlib version.
13661
13662 2004-03-04  Jackson Harper  <jackson@ximian.com>
13663
13664         * icall.c: Add icall to access char conversion tables.
13665         * char-conversions.h: Character conversion tables.
13666         * Makefile.am: Add char-conversions.h private header file.
13667         
13668 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13669
13670         * appdomain.c (unload_thread_main): Increase unloading timeout to
13671         10 sec as a temporary workaround for Nant problems.
13672
13673 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13674
13675         * gc.c: Add checks for GC_enable and GC_disable.
13676
13677         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13678         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13679         (bug #54988).
13680         
13681 2004-02-27  Martin Baulig  <martin@ximian.com>
13682
13683         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13684         `MonoReflectionType *' instead of a `MonoType *'.
13685
13686 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13687
13688         * gc.c (run_finalize): Avoid finalizing the object representing the
13689         finalizer thread.
13690         (finalizer_thread): Fix warning.
13691
13692 2004-02-25  Martin Baulig  <martin@ximian.com>
13693
13694         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13695         argument for nested types.
13696         (mono_class_create_generic): Added support for nested generictypes.
13697
13698         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13699         `GList *nested'.
13700
13701         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13702
13703         * reflection.c (method_encode_signature): Increase the minimum
13704         value of `size' from 10 to 11.
13705         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13706         and `MonoType **types' arguments instead of the `MonoArray
13707         *types'; added `MonoType *nested_in'.  Recursively instantiate
13708         nested classes. 
13709
13710 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13711
13712         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13713         stack_overflow_ex members which are used by exception handling.
13714
13715         * appdomain.c (mono_runtime_init): Initialize the new members.
13716
13717         * gc.c (mono_gc_enable): New helper function.
13718         * gc.c (mono_gc_disable): New helper function.
13719
13720 2004-02-23  Martin Baulig  <martin@ximian.com>
13721
13722         * icall.c: I must have been really stupid - make it actually work
13723         this time ;-)
13724
13725 2004-02-23  Martin Baulig  <martin@ximian.com>
13726
13727         * loader.c (method_from_memberref): Only inflate the method if
13728         it's in another klass.
13729
13730 2004-02-23  Martin Baulig  <martin@ximian.com>
13731
13732         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13733         (mono_class_init): If we're a generic instance and an interface,
13734         compute `class->interface_id'; also create `class->interfaces'
13735         here and inflate them.
13736
13737         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13738         `ginst->is_open'.
13739         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13740
13741         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13742
13743 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13744
13745         * reflection.c (method_encode_code): Improved the error message
13746         generated by the exception.
13747
13748 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13749
13750         * icall.c: Martin did not do what he said in the ChangeLog for
13751         2004-02-18, but put back the changes for properties and events.
13752         Commenting those changes out again and adding comment to bug #54518.
13753         
13754         * process.c: removed warning.
13755
13756 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13757
13758         * marshal.c (emit_struct_conv): Print an error message instead of
13759         asserting when a type does not have the StructLayout attribute.
13760
13761 2004-02-20  Martin Baulig  <martin@ximian.com>
13762
13763         * reflection.c (mono_type_get_object): Also use the cache for
13764         generic instances.
13765         (mono_reflection_bind_generic_parameters): Always compute
13766         `ginst->ifaces'.        
13767
13768 2004-02-20  Martin Baulig  <martin@ximian.com>
13769
13770         * class.h (MonoGenericMethod): Removed `klass'.
13771
13772         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13773         *klass' argument.
13774
13775 2004-02-20  Martin Baulig  <martin@ximian.com>
13776
13777         * reflection.c (method_encode_methodspec): Actually use the
13778         uninflated signature for the memberref.
13779
13780 2004-02-20  Martin Baulig  <martin@ximian.com>
13781
13782         * class.h (MonoGenericMethod): Removed `declaring'.
13783
13784         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13785         is NULL, compute it here.
13786
13787 2004-02-20  Martin Baulig  <martin@ximian.com>
13788
13789         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13790
13791         * metadata.c (mono_metadata_generic_inst_hash): New method.
13792         (mono_metadata_generic_inst_equal): New method.
13793
13794         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13795         `klass->image->generic_inst_cache' cache to avoid creating
13796         duplicate MonoGenericInst's.
13797
13798         * class.c (mono_class_inflate_generic_type): Use the cache.
13799
13800 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13801
13802         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13803
13804 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13805
13806         * icall.c: added Socket.WSAIoctl icall.
13807
13808         * socket-io.[ch]: implemented
13809         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13810
13811 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13812
13813         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13814
13815 2004-02-18  Urs C Muff  <umuff@quark.com>
13816
13817         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13818         this work on PPC and other big-endian architectures.
13819
13820         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13821         fields with an underscore to make sure they're only accessed by
13822         the read32() macro.
13823
13824 2004-02-18  Martin Baulig  <martin@ximian.com>
13825
13826         * icall.c: Put the klass->refclass changes back for methods and
13827         fields, but not for properties and events.  We're currently not
13828         distinguishing between DeclaringType and ReflectedType for
13829         properties and events, that's what caused the regressions.
13830
13831 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13832
13833         * object.c:
13834         (mono_async_result_new): the handle can be NULL.
13835
13836         * threadpool.c: Use an event instead of a semaphore, don't initialize
13837         it until needed. This saves quite a few semaphores from being created
13838         when using the threadpool.
13839
13840 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13841
13842         * object.c (mono_string_is_interned_lookup): Fix interning of long
13843         strings. Fixes #54473.
13844
13845         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13846
13847         * icall.c: Revert the klass->refclass changes since they introduce
13848         regressions (bug #54518).
13849
13850 2004-02-18  Martin Baulig  <martin@ximian.com>
13851
13852         * class.c (mono_class_init): If we're a generic instance and don't
13853         come from a TypeBuilder, inflate our members here.
13854         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13855         (mono_class_create_generic): New public method.
13856         (mono_class_initialize_generic): Removed.
13857         (get_instantiation_name): Renamed to
13858         _mono_class_get_instantiation_name() and made it public.
13859
13860 2004-02-18  Martin Baulig  <martin@ximian.com>
13861
13862         * class.c (mono_class_inflate_generic_type): Clear the new
13863         instance's `nginst->klass' when inflating a generic instance.
13864         (mono_class_is_subclass_of): Added (basic) support for generic
13865         instances.
13866
13867 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13868
13869         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13870         MonoMempool to hold compiled native code.
13871
13872 2004-02-17  Martin Baulig  <martin@ximian.com>
13873
13874         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13875         `properties'.
13876
13877         * reflection.c (mono_reflection_generic_inst_initialize): Added
13878         `MonoArray *properties' argument.
13879
13880         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13881
13882 2004-02-17  Martin Baulig  <martin@ximian.com>
13883
13884         * icall.c (ves_icall_Type_GetFields): Renamed to
13885         ves_icall_Type_GetFields_internal() and added a
13886         `MonoReflectionType *rtype' argument; pass it to
13887         mono_field_get_object() to set the field's "reflected" type.
13888         (ves_icall_Type_GetConstructors): Likewise.
13889         (ves_icall_Type_GetEvents): Likewise.
13890         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13891         argument; pass it to mono_method_get_object() to set the method's
13892         "reflected" type.       
13893
13894 2004-02-17  Martin Baulig  <martin@ximian.com>
13895
13896         * class.h (MonoDynamicGenericInst): New type.
13897         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13898
13899         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13900         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13901         (ves_icall_MonoGenericInst_GetFields): New interncall.
13902
13903         * class.c (mono_class_from_generic): Don't call
13904         mono_class_initialize_generic() if this is a dynamic instance;
13905         ie. it's being created from a TypeBuilder.
13906         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13907         `class->byval_arg.type'.
13908
13909         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13910         to `inflate_method' and made static.
13911         (mono_reflection_inflate_field): Removed.
13912         (mono_reflection_generic_inst_initialize): New public method.
13913
13914         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13915         `ctors' and `fields'; added `initialized'.
13916
13917 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13918
13919         * debug-helpers.c (mono_method_full_name): Fix output for empty
13920         namespaces.
13921
13922 2004-02-12  Martin Baulig  <martin@ximian.com>
13923
13924         * class.h (MonoClassField): Added `MonoType *generic_type'.
13925
13926         * reflection.c (mono_image_get_fieldref_token): Added support for
13927         instantiated generic types.
13928         (field_encode_inflated_field): Removed.
13929         (mono_image_get_inflated_field_token): Removed.
13930         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13931
13932         * reflection.h (MonoReflectionInflatedField): Removed.
13933
13934 2004-02-12  Martin Baulig  <martin@ximian.com>
13935
13936         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13937         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13938
13939         * reflection.c (mono_image_get_methodspec_token): Take a
13940         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13941         (mono_image_create_token): Check whether we have a
13942         `method->signature->gen_method' and call
13943         mono_image_get_methodspec_token() if appropriate.
13944         (inflated_method_get_object): Removed.
13945         (mono_reflection_bind_generic_method_parameters): Return a
13946         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13947         (mono_reflection_inflate_method_or_ctor): Likewise.
13948
13949         * reflection.h (MonoReflectionInflatedMethod): Removed.
13950
13951 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13952
13953         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13954         for custom valuetype marshalling.
13955
13956         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13957
13958 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13959
13960         * icall.c: fixed WSAGetLastError_internal name.
13961
13962 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13963
13964         * threads.c (mono_thread_attach): Allow this to be called multiple
13965         times for a thread.
13966         
13967         * threads.c (build_wait_tids): Do not wait for ourselves.
13968
13969         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13970         appdomain list is empty.
13971
13972         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13973         memory returned by mono_string_builder_to_utf16, since it points into
13974         managed memory. Thanks to Bernie Solomon for noticing this.
13975
13976         * icall.c: Add AppDomainSetup icalls.
13977
13978         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13979
13980         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13981         types.
13982
13983         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13984         custom attributes to the method_aux struct. Also fix array indexes etc.
13985
13986         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13987         
13988 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13989
13990         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13991         (both static and runtime) and reduce startup time.
13992
13993 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13994
13995         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13996         AsAny marshalling conversion instead of crashing.
13997
13998         * marshal.c: Fix warnings.
13999
14000 2004-02-09  Martin Baulig  <martin@ximian.com>
14001
14002         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14003
14004         * reflection.h (MonoReflectionInflatedMethod): Removed the
14005         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14006
14007         * reflection.c (method_encode_methodspec): Removed the `method'
14008         argument; we get it from `gmethod->declaring'.
14009         (inflated_method_get_object): Removed the `declaring' argument.
14010
14011 2004-02-09  Martin Baulig  <martin@ximian.com>
14012
14013         * class.h (MonoGenericMethod): New type.
14014         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14015         `generic_method'.
14016
14017         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14018         a `MonoGenericMethod *gen_method' one.
14019
14020         * class.c (mono_class_inflate_generic_type): Take an additional
14021         `MonoGenericMethod * argument.  This is only non-NULL if we're
14022         inflating types for a generic method.   
14023         (mono_class_inflate_generic_signature): Renamed to
14024         inflate_generic_signature() and made static; take a
14025         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14026         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14027         instead of a `MonoGenericInst *' one.
14028         (mono_class_inflate_generic_method): Likewise.
14029
14030         * reflection.c (encode_generic_method_sig): Take a
14031         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14032         (method_encode_methodspec): Likewise.
14033         (inflated_method_get_object): Likewise. 
14034
14035         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14036         field with a `MonoGenericMethod *gmethod' one.  
14037
14038 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14039
14040         * class.h (mono_class_has_parent): add parens to expansion
14041         so you can ! this.
14042
14043 2004-02-08  Martin Baulig  <martin@ximian.com>
14044
14045         * image.h (MonoImage): Removed `generics_cache'.
14046
14047         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14048         instead of a `MonoType *' argument; removed the `inflate_methods'
14049         argument.  Don't inflate methods here.
14050
14051         * loader.c (find_method): If it's a generic instance, call
14052         mono_class_init() on the `sclass->generic_inst->generic_type'.
14053
14054         * metadata.c (mono_type_size): Make this work on uninitialized
14055         generic instances; call it on the `ginst->generic_type's class.
14056
14057         * reflection.c (mono_reflection_bind_generic_parameters): Call
14058         mono_class_from_generic() to create the `ginst->klass'.
14059
14060 2004-02-08  Martin Baulig  <martin@ximian.com>
14061
14062         * class.h (MonoClass): Changed type of `generic_inst' from
14063         `MonoType *' to `MonoGenericInst *'.
14064
14065 2004-02-08  Martin Baulig  <martin@ximian.com>
14066
14067         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14068         mono_type_get_object(), this is now creating a `MonoGenericInst'
14069         for MONO_TYPE_GENERICINST.
14070         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14071         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14072
14073         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14074         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14075         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14076         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14077         and reflected type.
14078
14079         * reflection.h (MonoReflectionInflatedMethod): Removed
14080         `declaring_type' and `reflected_type'.
14081
14082 2004-02-08  Martin Baulig  <martin@ximian.com>
14083
14084         * class.h (MonoGenericInst): Added `MonoType *parent' and
14085         `MonoType **ifaces'.
14086
14087         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14088         `parent' and `interfaces'.
14089
14090         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14091         `MonoType *' argument and return a `MonoType *'.
14092
14093         * icall.c
14094         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14095         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14096
14097 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14098
14099         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14100         valuetype marshalling.
14101
14102 2004-02-06  Martin Baulig  <martin@ximian.com>
14103
14104         * class.c
14105         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14106         (my_mono_class_from_generic_parameter): Likewise.
14107
14108 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14109
14110         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14111         contents of the symbol files lazily.
14112
14113         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14114
14115         * threads.h threads.c icall.c: New icalls for getting and setting the
14116         threads name.
14117
14118 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14119
14120         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14121         Raise an exception when the domain is not found.
14122
14123 2004-02-03  Martin Baulig  <martin@ximian.com>
14124
14125         * reflection.c (mono_image_get_methodspec_token): Use the
14126         uninflated signature; fixes gen-33.
14127
14128 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14129
14130         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14131         the finalizer code can use thread functionality.
14132
14133         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14134         the finalizer thread.
14135
14136         * threads.c: Make some functions more robust.
14137
14138         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14139
14140         * metadata.h: Add new marshalling conventions.
14141
14142         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14143         stringbuilder marshalling. Fixes #53700.
14144
14145         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14146
14147         * reflection.c (mono_image_get_type_info): Save declarative security
14148         info.
14149
14150         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14151         unmanaged fields as well.
14152
14153         * appdomain.c: Bump corlib version.
14154
14155 2004-02-01  Martin Baulig  <martin@ximian.com>
14156
14157         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14158         method type arguments.  
14159
14160 2004-01-30  Duncan Mak  <duncan@ximian.com>
14161
14162         * marshal.h: Add prototype for
14163         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14164         and
14165         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14166         fix the build.
14167
14168 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14169
14170         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14171         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14172
14173 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14174
14175         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14176         custom marshalling of valuetypes.
14177
14178         * marshal.c: Fix some warnings.
14179
14180 2004-01-29  Martin Baulig  <martin@ximian.com>
14181
14182         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14183         for generic method parameters.
14184
14185         * reflection.c (method_encode_methodspec): Write the uninflated
14186         signature into the methodspec table.
14187         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14188         is always the uninflated method.
14189         (reflection_methodbuilder_to_mono_method): Copy the generic
14190         parameters from the MethodBuilder into `header->gen_params'.
14191
14192 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14193
14194         * class.c (mono_class_from_generic_parameter): Fix warning.
14195
14196 2004-01-27  Martin Baulig  <martin@ximian.com>
14197
14198         * class.c (mono_class_from_generic_parameter): Don't create
14199         `klass->methods' here.  
14200
14201 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14202
14203         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14204         extension since it does not work with libraries named lib<FOO>.dll.so.
14205
14206 2004-01-25  Martin Baulig  <martin@ximian.com>
14207
14208         * class.c (mono_class_inflate_generic_type): Added support for
14209         MONO_TYPE_GENERICINST.
14210
14211         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14212         inflate methods on open constructed types.      
14213
14214 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14215
14216         * object.c: fire ProcessExit event in the root AppDomain after running
14217         Main. Fixes bug #53299.
14218
14219 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14220
14221         * socket-io.c: include the new socket-wrappers.h header.
14222         Use the wrappers instead of the unix socket functions to make the code
14223         more clear.
14224
14225 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14226
14227         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14228
14229         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14230         Fixes #22532.
14231
14232 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14233
14234         * reflection.c (mono_image_create_pefile): Handle the case when the
14235         entry point is not a MethodBuilder.
14236
14237         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14238         field to ReflectionMethod since it is not allways a builder.
14239
14240         * reflection.c (type_get_fully_qualified_name): New helper function to
14241         return the fully qualified name of a type.
14242
14243         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14244         type name for custom marshallers.
14245
14246         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14247
14248         * class.c (mono_class_setup_vtable): If a parent class already 
14249         implements an interface, use the implementing methods from that class.
14250         Fixes #53148.
14251
14252 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14253
14254         * threadpool.c: just return instead of ExitThread to allow for thread
14255         clean up earlier.
14256
14257 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14258
14259         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14260         when closing resource modules.
14261
14262         * reflection.c (mono_image_create_pefile): Handle the case when the
14263         entry point is not a MethodBuilder.
14264
14265         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14266         field to ReflectionMethod since it is not allways a builder.
14267
14268 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14269
14270         * marshal.c (mono_marshal_get_managed_wrapper): 
14271         mono_marshal_alloc takes native int so CONV_I
14272         the arg for 64bits.
14273
14274 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14275
14276         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14277         tokens in the cattr table. Fixes #53108.
14278
14279 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14280
14281         * loader.c: don't trim ".dll" before looking up in the config file.
14282         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14283
14284 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14285
14286         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14287         Return the module which contains the resource as well.
14288         (ves_icall_System_Reflection_Module_Close): New icall.
14289
14290         * appdomain.c: Bump corlib version number.
14291
14292         * image.c (mono_image_addref): New public function.
14293
14294         * assembly.c: Call mono_image_addref.
14295
14296         * reflection.c (mono_module_get_object): Increase reference count of 
14297         the image.
14298
14299         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14300         Fixes #22532.
14301
14302         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14303         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14304         proper exceptions on DllImport problems.
14305
14306 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14307
14308         * class.c, metadata.c: eliminate CSIZE macro.
14309
14310 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14311
14312         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14313         * object.h: Added async_callback field in MonoAsyncResult.
14314         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14315         * verify.c: Added async_callback in MonoAsyncResult layout.
14316
14317 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14318
14319         * reflection.c (mono_reflection_get_custom_attrs): Add support
14320         for Modules.
14321
14322 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14323
14324         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14325         marshalling.
14326         (mono_marshal_method_from_wrapper): Add null pointer check.
14327
14328 2004-01-16  Martin Baulig  <martin@ximian.com>
14329
14330         * debug-mono-symfile.h: Set version number to 36 and reflect
14331         latest symbol writer changes.
14332
14333 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14334
14335         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14336         multi-dimensional arrays.
14337         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14338         (mono_class_from_mono_type): Use bounded_array_class_get.
14339         
14340         * class.c (mono_bounded_array_class_get): New function which takes
14341         a 'bounded' bool argument to distinguish vectors from one dimensional
14342         arrays.
14343
14344         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14345         bounded_array_class_get if the array has bounds.
14346
14347         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14348         Search modules loaded using AssemblyBuilder:AddModule as well.
14349
14350 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14351
14352         * appdomain.c: increased corlib version.
14353         * filewatcher.c: removed g_print.
14354         * icall.c:
14355         (get_property_info): only allocate what is actually requested.
14356         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14357
14358 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14359
14360         * Makefile.am: added filewatcher.[ch]
14361         * filewatcher.[ch]: FileSystemWatcher runtime support.
14362         * icall.c: added new FSW icalls.
14363
14364 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14365
14366         * string-icalls.c: fix stringbuilder regression as suggested by
14367         Iain McCoy <iain@mccoy.id.au>.
14368
14369 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14370
14371         * process.c (process_read_stringtable_block): Recognize '007f' as
14372         a language neutral stringtable block.
14373
14374 2004-01-12  Patrik Torstensson
14375
14376         * object.h (MonoStringBuilder) : Changed layout to support our
14377         new stringbuilder class.
14378         * marshal.c: Change marshalling to support the new layout of 
14379         string builder.
14380         * appdomain.c: increased version number because new layout of
14381         string builder.
14382
14383 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14384
14385         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14386         assembly name as an string instead of an AssemblyName, since it is
14387         easier to extract info from it.
14388
14389         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14390         the culture subdirectories too. Fixes #52231.
14391
14392 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14393
14394         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14395         It takes 2 new parameters with an optional name for the method to look
14396         for and case ignoring info.
14397
14398         * threadpool.c: removed unused variable.
14399
14400 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14401
14402         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14403         It takes 2 new parameters with an optional name for the property to look
14404         for and case ignoring info.
14405         Fixes bug #52753.
14406
14407 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14408
14409         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14410         Fix #52451.
14411
14412 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14413
14414         * appdomain.c:
14415         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14416         Fixes bug #52630.
14417
14418 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14419
14420         * reflection.c: Add support for more than one unmanaged resource.
14421
14422         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14423         in field->def_value, as done in all other cases.
14424
14425         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14426         TypeBuilders.
14427
14428         * reflection.c (mono_reflection_create_runtime_class): Remove 
14429         errorneous assignment to klass->element_class, since it is already
14430         done in mono_reflection_setup_internal_class.
14431
14432 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14433
14434         * gc.c: added missing LeaveCriticalSection.
14435         * icall.c: indented a couple of lines.
14436         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14437         if we call EndInvoke inside a callback. Fixes bug #52601.
14438
14439 2004-01-07  Martin Baulig  <martin@ximian.com>
14440
14441         * mono-debug-debugger.h
14442         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14443
14444 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14445
14446         * appdomain.c: Use messages in NotImplementedException.
14447
14448         * exception.c (mono_get_exception_not_implemented): Now this takes
14449         a message argument.
14450
14451         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14452         exception instead of g_asserting an aborting when something is not
14453         implemented.
14454
14455         Add some inline docs.
14456
14457 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14458
14459         * reflection.h: Update after changes to object layout.
14460
14461         * reflection.c: Implement saving of unmanaged aka win32 resources.
14462
14463         * appdomain.c: Bump version number.
14464
14465         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14466         Handle missing domains gracefully.
14467
14468 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14469
14470         * file-io.c : On Windows, there are much more invalid_path_chars.
14471
14472 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14473
14474         * class.h, object.c: prepare for GetType () speedup.
14475
14476 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14477
14478         * profiler.c: workaround for --profile null reference exception on
14479           cygwin. Patch by Patrik Torstensson.
14480
14481 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14482
14483         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14484         make work for unaligned access.
14485
14486 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14487
14488         * class.c: small cleanup (class->fields [i] -> field).
14489         * image.c: check address of metadata is valid.
14490
14491 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14492
14493         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14494         search the list of loaded assemblies.
14495
14496         * reflection.c (mono_reflection_type_from_name): Use 
14497         mono_assembly_loaded instead of mono_image_loaded.
14498
14499         * reflection.c: Fix warnings.
14500
14501 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14502
14503         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14504         is dynamic. This is needed since an assembly can contain both dynamic and
14505         non-dynamic images.
14506
14507         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14508         assembly->dynamic.
14509
14510         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14511
14512         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14513         to store modules loaded using AddModule.
14514
14515         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14516         on Modules.
14517
14518         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14519
14520         * reflection.c (mono_image_fill_export_table_from_module): New function to
14521         fill out the EXPORTEDTYPES table from a module.
14522
14523         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14524         into a separate function. Also handle loaded non-dynamic modules.
14525
14526         * reflection.c (mono_image_basic_init): Fix memory allocation.
14527
14528         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14529
14530         * assembly.c (mono_assembly_load_references): Make this public.
14531
14532 2003-12-19  Martin Baulig  <martin@ximian.com>
14533
14534         * class.c (mono_class_initialize_generic): Made this static, take
14535         a `MonoGenericInst *' instead of a `MonoClass *'.
14536         (mono_class_from_generic): Call mono_class_initialize_generic()
14537         unless we're already initialized or being called from
14538         do_mono_metadata_parse_generic_inst().
14539
14540         * class.h (MonoGenericInst): Added `initialized' and
14541         `init_pending' flags.
14542
14543         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14544         `mono_class_init (gklass)' or mono_class_initialize_generic()
14545         here; set `generic_inst->init_pending' while parsing the
14546         `type_argv'.
14547
14548 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14549
14550         * locales.c: include string.h for memxxx prototypes
14551
14552 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14553
14554         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14555         constructor when accessing literal fields.
14556
14557 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14558
14559         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14560
14561         * reflection.c (assembly_add_resource_manifest): New function to fill
14562         the MANIFESTRESOURCE table.
14563
14564         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14565
14566         * reflection.h: Update to changes in class layout.
14567
14568         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14569         Reenable call to mono_runtime_is_shutting_down ().
14570
14571         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14572         determine if the runtime is shutting down.
14573
14574 2003-12-16  Jackson Harper <jackson@ximian.com>
14575
14576         * icall.c: comment out call to mono_runtime_is_shutting_down to
14577         fix build.
14578         
14579 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14580
14581         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14582         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14583
14584 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14585
14586         * reflection.c: move definition of swap_with_size
14587         to before its first call
14588
14589 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14590
14591         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14592
14593         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14594         icall.
14595
14596         * object.c: Fix warnings.
14597
14598         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14599         members if FlattenHierarchy is set.
14600
14601         * reflection.c (mono_image_add_decl_security): New function to emit
14602         declarative security.
14603
14604         * reflection.h reflection.c: Add support for declarative security.
14605
14606         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14607         
14608 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14609
14610         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14611         
14612         * appdomain.c verify.c: Moved corlib version checking into its own
14613         function in appdomain.c since it needs to create vtables etc.
14614
14615 2003-12-13  Patrik Torstensson <p@rxc.se>
14616
14617         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14618         instead of unwrapped server.
14619
14620 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14621
14622         * verify.c (check_corlib): Fix field index.
14623
14624 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14625
14626         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14627         GetGacPath icall.
14628
14629 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14630
14631         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14632         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14633         cope with sizeof(size_t) != sizeof(guint32).
14634
14635 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14636
14637         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14638         in case of failure.
14639
14640 2003-12-10  Mark Crichton <crichton@gimp.org>
14641
14642         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14643         in managed code.
14644
14645         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14646
14647 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14648
14649         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14650         marked as deleted.
14651
14652 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14653
14654         * verify.c (check_corlib): Handle the case when the version field is 
14655         initialized by a static constructor.
14656
14657 2003-12-08  Patrik Torstensson  <p@rxc.se>
14658
14659     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14660
14661 2003-12-08  Martin Baulig  <martin@ximian.com>
14662
14663         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14664         a MonoReflectionGenericParameter, also take the parameter index
14665         and name as arguments.
14666         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14667         (ves_icall_MonoGenericParam_initialize): New interncall.
14668         (ves_icall_Type_make_byref_type): New interncall.
14669
14670         * reflection.h (MonoReflectionGenericParam): Derive from
14671         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14672         `index' fields.
14673
14674         * reflection.c (mono_reflection_define_generic_parameter): Create
14675         and return a new MonoReflectionGenericParam; don't initialize the
14676         constraints here.
14677         (mono_reflection_initialize_generic_parameter): New public method;
14678         initializes the constraints and creates the `param->pklass'.
14679
14680 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14681
14682         * reflection.h reflection.c: Use the new fields 'num_types', 
14683         'num_fields' and 'num_methods' to track the number of types etc.
14684
14685         * verify.c (check_corlib): Check corlib version number.
14686
14687 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14688
14689         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14690         function works on all methods.
14691
14692 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14693
14694         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14695         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14696         the custom_type_info flag of the transparent proxy.
14697         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14698         objects that supports IRemotingTypeInfo.
14699         * object.h: Added custom_type_info field in transparent proxy.
14700
14701 2003-12-06  Martin Baulig  <martin@ximian.com>
14702
14703         * class.c (mono_class_create_from_generic): Removed.
14704         (mono_class_from_generic): Check `ginst->klass' before doing
14705         anything else.  This is important to fully support "recursive"
14706         generic types.
14707
14708         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14709         empty `generic_inst->klass' before doing anything else.
14710
14711 2003-12-06  Dick Porter  <dick@ximian.com>
14712
14713         * verify.c: 
14714         * object.h:
14715         * icall.c:
14716         * locales.c: Use C structs to access class fields.  Don't do a
14717         conversion between MonoString and UChar because both are
14718         platform-endian UTF-16.  Compare now takes startindex and count
14719         parameters.  Add a char overload for IndexOf.  Speed up the
14720         invariant string IndexOf.
14721
14722 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14723
14724         * Makefile.am (monosn_LDADD): Fix parallel build.
14725
14726 2003-12-04  Martin Baulig  <martin@ximian.com>
14727
14728         * icall.c
14729         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14730         (ves_icall_Type_make_array_type): New interncall.       
14731
14732 2003-12-04  Martin Baulig  <martin@ximian.com>
14733
14734         * locales.c: also change it in the !HAVE_ICU case.
14735
14736 2003-12-04  Dick Porter  <dick@ximian.com>
14737
14738         * icall.c:
14739         * locales.c: construct_compareinfo is now in CompareInfo, not
14740         CultureInfo.
14741
14742 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14743
14744         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14745         image->files array.
14746
14747         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14748         table as well.
14749
14750         * assembly.c (mono_assembly_load_references): Only load references
14751         once.
14752
14753         * class.c (mono_class_from_name): Avoid linear search of the 
14754         EXPORTEDTYPE table.
14755
14756         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14757
14758 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14759
14760         * image.h (MonoImage): Add 'field_cache' field.
14761
14762         * loader.c (mono_field_from_token): Cache field lookups.
14763         
14764         * reflection.c (mono_module_get_object): Fix name property.
14765
14766         * icall.c (ves_icall_get_enum_info): Update after changes to 
14767         mono_metadata_get_constant_index ().
14768
14769         * icall.c: Get rid of get_type_info icall, use a separate icall for
14770         each type property to avoid needless memory allocations. Fixes #51514.
14771
14772         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14773         to avoid needless binary searches.
14774
14775         * class.c (class_compute_field_layout): Move the initialization of
14776         field->def_value to mono_class_vtable ().
14777
14778         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14779         non-corlib types.
14780
14781         * object.c (mono_object_allocate): Make it inline.
14782
14783         * object.c (mono_object_allocate_spec): Make it inline.
14784         
14785 2003-12-02  Dick Porter  <dick@ximian.com>
14786
14787         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14788         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14789
14790 2003-12-01  Dick Porter  <dick@ximian.com>
14791
14792         * threads.c: Fix signature and call in CreateMutex and
14793         CreateEvent.
14794
14795 2003-12-01  Dick Porter  <dick@ximian.com>
14796
14797         * icall.c: 
14798         * locales.c: Implement string compares and searching
14799
14800         * object.h: Add extra Thread field
14801
14802 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14803
14804         * reflection.c (fixup_method): Add support for MonoCMethod.
14805
14806 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14807
14808         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14809
14810         * reflection.c (assembly_name_to_aname): Allow extra characters in
14811         assembly names. Fixes #51468.
14812
14813 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14814
14815         * exception.c (mono_exception_from_name_domain): New helper function.
14816
14817         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14818         exception object in the correct domain.
14819
14820         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14821         formatting + make a copy a the input data.
14822
14823         * loader.c (mono_get_method_from_token): Methods which contain
14824         native code do not have entries in the ImplMap.
14825
14826         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14827         Thanks to Gonzalo for spotting this.
14828         
14829         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14830         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14831
14832         * assembly.h (mono_assembly_load_from): Split the second part of 
14833         assembly loading into a new public function.
14834
14835         * exception.h (mono_get_exception_bad_image_format): New function.
14836
14837 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14838
14839         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14840         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14841         
14842         * icall.c: Add new icall for creating dynamic methods.
14843
14844         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14845
14846         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14847
14848         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14849         create a dynamic method.
14850
14851         * reflection.c (resolve_object): New helper function.
14852
14853         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14854         which manipulate it so they can also work on dynamic methods.
14855
14856         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14857         creating the MonoReflectionMethodAux structure if it is not needed.
14858         
14859         * reflection.h verify.c: Update after changes to object layout.
14860
14861         * reflection.c (method_builder_encode_signature): Fix compilation on
14862         gcc 2.95.x.
14863
14864 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14865
14866         * appdomain.h: Added support for context static fields. Added static_data
14867           field to MonoAppContext and renamed thread_static_fields to a more
14868           generic special_static_fields in MonoAppDomain, since it can now contain
14869           context static fields.
14870         * domain.c: Updated hashtable name.
14871         * object.c: Replaced field_is_thread_static() for a more generic
14872           field_is_special_static() which also checks for context static attribute.
14873           In mono_class_vtable(), added support for static context fields.
14874         * threads.c: Changed methods that manage thread static fields to more
14875           generic methods so they can be reused both for thread and context static
14876           data.
14877         * threads.h: Declared some new methods.
14878
14879 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14880
14881         * reflection.h: Update after changes to the managed types.
14882
14883         * reflection.c (encode_custom_modifiers): New helper function.
14884
14885         * reflection.c (method_encode_signature): Emit custom modifiers.
14886
14887         * reflection.c (field_encode_signature): Emit custom modifiers.
14888
14889 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14890
14891         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14892
14893         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14894         implementation.
14895
14896         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14897         icall.
14898
14899         * object.c (mono_field_get_value_object): New function.
14900
14901         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14902         specific.
14903
14904 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14905
14906         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14907         return a preallocated out-of-memory exception instance.
14908
14909         * object.c (out_of_memory): Use the new function.
14910
14911         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14912         flag is before the custom modifiers. Fixes #49802.
14913
14914 2003-11-16  Martin Baulig  <martin@ximian.com>
14915
14916         * class.c (mono_class_is_open_constructed_type): Implemented the
14917         MONO_TYPE_GENERICINST case.
14918
14919 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14920
14921         * assembly.c (mono_assembly_fill_assembly_name): New function to
14922         fill out the MonoAssemblyName structure.
14923         (mono_assembly_open): Use the new function.
14924
14925         * icall.c (fill_reflection_assembly_name): New helper function.
14926
14927         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14928         new function.
14929
14930         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14931
14932 2003-11-15  Martin Baulig  <martin@ximian.com>
14933
14934         * class.c (mono_class_is_open_constructed_type): New public
14935         function; checks whether a type is an open constructed type,
14936         ie. whether it still contains type parameters.
14937         (mono_class_inflate_generic_type): If we're a type parameter and
14938         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14939         type.
14940
14941         * class.h (MonoGenericInst): Added `guint32 is_open'.
14942
14943         * loader.c (method_from_methodspec): Check whether we're an open
14944         or closed constructed type and set `ginst->is_open'.
14945
14946         * reflection.c (mono_reflection_bind_generic_parameters): Check
14947         whether we're an open or closed constructed type and set
14948         `ginst->is_open'.
14949         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14950         from open constructed types.
14951
14952 2003-11-15  Martin Baulig  <martin@ximian.com>
14953
14954         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14955         a generic instance (instead of a generic type declaration) with
14956         unbound generic parameters, bind them to our actual types.
14957
14958 2003-11-14  Martin Baulig  <martin@ximian.com>
14959
14960         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14961
14962         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14963         an interface type, populate `res->interfaces' with instantiated
14964         versions of all the interfaces we inherit.
14965
14966 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14967
14968         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14969         when MONO_PATH is set but doesn't contain the install dir.
14970
14971 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14972
14973         * icall.c:
14974         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14975         it's also implemented in base classes. Fixes bug #50927.
14976
14977 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14978
14979         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14980         if this method is called from a finalizer. Fixes #50913.
14981
14982 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14983
14984         * threads.c: Implement VolatileRead/VolatileWrite
14985
14986         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14987
14988 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14989
14990         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14991         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14992         2.95.3.
14993
14994         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14995         from Peter Ross (pro@missioncriticalit.com).
14996         
14997 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14998
14999         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15000
15001 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15002
15003         * assembly.c (mono_assembly_load_references): Disable check because it
15004         triggers on older corlibs which lots of people have.
15005
15006 2003-11-12  Jackson Harper  <jackson@ximian.com>
15007
15008         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15009         load corlib.dll if mscorlib.dll is not found.
15010         * assembly.h: Remove corlib name define.
15011         * class.c:
15012         * domain.c:
15013         * image.c: Change corlib name to mscorlib.
15014         
15015 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15016
15017         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15018
15019 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15020
15021         * appdomain.h: Added loader_optimization here to sync with the C#
15022         code, and add disallow_binding_redirects field.
15023
15024 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15025
15026         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15027
15028         * reflection.c (mono_image_build_metadata): Fix crash on modules
15029         with no types.
15030
15031         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15032
15033         * icall.c (ves_icall_get_method_info): Return callingConvention as
15034         well.
15035
15036         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15037         namespaces from the EXPORTEDTYPE table as well.
15038
15039         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15040         from all modules inside the assembly.
15041         
15042 2003-11-11  Martin Baulig  <martin@ximian.com>
15043
15044         * reflection.c (mono_reflection_bind_generic_parameters): Make
15045         this work for interfaces.
15046
15047 2003-11-11  Martin Baulig  <martin@ximian.com>
15048
15049         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15050
15051 2003-11-11  Martin Baulig  <martin@ximian.com>
15052
15053         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15054         "MonoInflatedMethod" and "MonoInflatedCtor".
15055
15056 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15057
15058         * reflection.c (resolution_scope_from_image): Use the assembly table
15059         from the manifest module, since other modules don't have it.
15060
15061         * debug-helpers.c (mono_type_full_name): New helper function.
15062
15063         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15064
15065         * image.c (mono_image_load_file_for_image): New public function which
15066         is a replacement for the load_file_for_image in class.c.
15067
15068         * assembly.c (mono_assembly_load_module): A wrapper for the function
15069         above which does assembly association and reference loading too.
15070
15071         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15072
15073 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15074
15075         * appdomain.c: not all of the attributes for the full assembly name
15076         are required and the order doesn't matter. Fixes bug #50787.
15077
15078 2003-11-10  Dick Porter  <dick@ximian.com>
15079
15080         * locales.c: Use platform-endian UTF16
15081
15082 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15083
15084         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15085         
15086 2003-11-10  Martin Baulig  <martin@ximian.com>
15087
15088         * metadata.c
15089         (mono_metadata_load_generic_params): Make this actually work.
15090
15091         * reflection.c (mono_reflection_bind_generic_parameters): If our
15092         parent is a generic instance, pass all the `types' to it, no
15093         matter whether it has the same number of type parameters or not.
15094
15095 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15096
15097         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15098
15099         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15100         assignment code to this function so it gets called recursively for all
15101         modules.
15102
15103         * image.c (load_modules): Remove the assembly assignment since it is
15104         now done by mono_assembly_load_references.
15105         
15106         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15107         Add 'module' argument.
15108         (mono_module_get_types): New helper function.
15109         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15110
15111 2003-11-08  Martin Baulig  <martin@ximian.com>
15112
15113         * class.c (mono_class_inflate_generic_method): Interface method
15114         don't have a header.
15115
15116         * reflection.c (mono_image_get_methodspec_token): Take an
15117         additional `MonoGenericInst *' argument instead of reading it from
15118         the header; this is necessary to support interfaces.
15119         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15120         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15121         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15122         argument.
15123
15124         * reflection.h (MonoReflectionInflatedMethod): Added
15125         `MonoGenericInst *ginst'.
15126
15127 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15128
15129         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15130
15131 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15132
15133         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15134
15135 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15136
15137         * reflection.c 
15138         (reflection_methodbuilder_from_method_builder):
15139         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15140         initialize a ReflectionMethodBuilder structure.
15141         (mono_image_get_methodbuilder_token):
15142         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15143         tokens which point to types in another module inside the same assembly.
15144
15145         * reflection.c: Use the new helper functions.
15146         
15147         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15148
15149         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15150         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15151
15152         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15153         neccesary.
15154
15155         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15156         current module. Emit the manifest only for the main module.
15157
15158         * reflection.c (mono_image_create_token): Add assertion when a 
15159         memberref needs to be created.
15160
15161         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15162
15163         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15164         larger buffer for the custom attribute blob. Fixes #50637.
15165         
15166 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15167
15168         * threadpool.c: notify listener on async processing handles after
15169         invoking the async callback. Thanks to Zoltan.
15170
15171 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15172
15173         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15174         avoid code duplication.
15175
15176         * reflection.h (MonoDynamicImage): New type which is currently unused,
15177         but will be used through the ref.emit code in place of 
15178         MonoDynamicAssembly.
15179
15180         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15181         object layout.
15182
15183         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15184         a MonoDynamicImage instead of just a MonoImage.
15185         
15186         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15187         icalls to ModuleBuilder but keep their semantics, so they will work
15188         with moduleb->assemblyb. This will change later.
15189         
15190 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15191
15192         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15193         object layout.
15194
15195         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15196         main module, since it is now done by the managed code.
15197
15198 2003-11-03  Martin Baulig  <martin@ximian.com>
15199
15200         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15201         `ginst->klass' here.
15202         (method_encode_methodspec): Don't use the `ginst->generic_method's
15203         klass if it's a generic instance, use `ginst->klass' in this case.
15204
15205 2003-11-03  Martin Baulig  <martin@ximian.com>
15206
15207         * reflection.c (mono_image_get_generic_method_param_info):
15208         Removed, use mono_image_get_generic_param_info() instead.
15209         (mono_image_get_type_info): Write the GenericParam table before
15210         the Method table.  This is neccessary because in the GenericParam
15211         table, type parameters of the class (ie. '!0' etc.) must come
15212         before the ones from its generic methods (ie. '!!0' etc).
15213
15214 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15215
15216         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15217
15218 2003-11-02  Martin Baulig  <martin@ximian.com>
15219
15220         * reflection.c (create_generic_typespec): Take a
15221         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15222         the generic parameters from it.
15223
15224 2003-11-02  Martin Baulig  <martin@ximian.com>
15225
15226         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15227         instead of a `MonoClassField *' since we just need the type.
15228         (create_generic_typespec): New static function.  Creates a
15229         TypeSpec token for a generic type declaration.
15230         (mono_image_get_generic_field_token): New static function.
15231         (mono_image_create_token): If we're a FieldBuilder in a generic
15232         type declaration, call mono_image_get_generic_field_token() to get
15233         the token.
15234
15235 2003-11-02  Martin Baulig  <martin@ximian.com>
15236
15237         * reflection.h
15238         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15239         `MonoReflectionGenericInst *declaring_type' and
15240         `MonoReflectionGenericInst *reflected_type' fields.
15241
15242         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15243         `MonoReflectionGenericInst *declaring_type' and a
15244         `MonoReflectionGenericInst *reflected_type' argument instead of a
15245         single `MonoReflectionGenericInst *type' one.  Set
15246         `res->declaring_type' and `res->reflected_type' from them.
15247         (mono_reflection_inflate_field): Likewise.      
15248
15249 2003-11-02  Martin Baulig  <martin@ximian.com>
15250
15251         * class.c (mono_class_setup_vtable): Don't store generic methods
15252         in the vtable.  
15253
15254 2003-11-02  Martin Baulig  <martin@ximian.com>
15255
15256         * reflection.h (MonoReflectionGenericInst): Added
15257         `MonoReflectionType *declaring_type'.
15258
15259         * reflection.c (mono_reflection_bind_generic_parameters): Use
15260         `if (tb->parent)' instead of `klass->parent'.
15261
15262 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15263
15264         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15265         with an empty ASSEMBLY table.
15266
15267         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15268         variable in the inner and outer loops.
15269
15270 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15271
15272         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15273         argument.
15274
15275         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15276         
15277         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15278         icalls. Instead, do everything in managed code. This is needed since
15279         it is hard to restore the original domain etc. in unmanaged code in the
15280         presence of undeniable exceptions.
15281
15282         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15283         New icalls to push and pop appdomain refs.
15284
15285 2003-10-31  Martin Baulig  <martin@ximian.com>
15286
15287         * class.c (inflate_generic_type): Renamed to
15288         mono_class_inflate_generic_type() and made it public.
15289
15290         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15291         New interncall.
15292
15293         * loader.c (mono_field_from_memberref): Also set the retklass for
15294         typespecs.
15295
15296         * fielder.c (mono_image_get_inflated_field_token): New static
15297         method; creates a metadata token for an inflated field.
15298         (mono_image_create_token, fixup_method): Added support for
15299         "MonoInflatedField".
15300         (fieldbuilder_to_mono_class_field): New static function.
15301         (mono_reflection_inflate_field): New public function.
15302
15303         * reflection.h
15304         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15305         (MonoReflectionInflatedField): New typedef.     
15306
15307 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15308
15309         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15310         for Solaris and other platforms without s6_addr16
15311
15312 2003-10-30  Martin Baulig  <martin@ximian.com>
15313
15314         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15315         argument instead of two.
15316         (mono_class_inflate_generic_signature): Likewise.
15317         (inflate_generic_header): Likewise.
15318         (mono_class_inflate_generic_method): Likewise.  In addition, if
15319         `ginst->klass' is set, it becomes the new `method->klass'.
15320
15321         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15322         field.
15323
15324         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15325         first byte. [FIXME]
15326         (method_encode_methodspec): If we have generic parameters, create
15327         a MethodSpec instead of a MethodRef.
15328         (fixup_method): Added support for "MonoInflatedMethod" and
15329         "MonoInflatedCtor".
15330         (mono_image_create_token): Added support for "MonoInflatedMethod"
15331         and "MonoInflatedCtor".
15332         (inflated_method_get_object): New static function; returns a
15333         managed "System.Reflection.MonoInflatedMethod" object.
15334         (mono_reflection_bind_generic_method_parameters): Return a
15335         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15336         (mono_reflection_inflate_method_or_ctor): Likewise.
15337         (mono_image_get_generic_method_param_info): Initialize unused
15338         fields to zero.
15339         (mono_image_get_generic_param_info): Likewise.
15340
15341         * reflection.h (MonoReflectionInflatedMethod): New public
15342         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15343         "S.R.MonoInflatedCtor" classes.
15344
15345         * loader.c (method_from_memberref): If we're a TypeSpec and it
15346         resolves to a generic instance, inflate the method.
15347
15348 2003-10-28  Dick Porter  <dick@ximian.com>
15349
15350         * object.c (mono_runtime_run_main): Convert command-line arguments
15351         into utf8, falling back to the user's locale encoding to do so.
15352
15353 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15354
15355         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15356         at this time.
15357
15358         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15359
15360         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15361         up icalls at method definition time. Partially fixes #33569.
15362
15363 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15364
15365         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15366         marshalling of arrays. Fixes #50116.
15367
15368         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15369
15370         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15371         points to a vtable in the dying appdomain.
15372
15373         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15374         listeners into unmanaged code inside the lock.
15375
15376         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15377         domains and add some comments.
15378
15379 2003-10-25  Martin Baulig  <martin@ximian.com>
15380
15381         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15382
15383         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15384
15385         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15386         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15387         currently parsing.  Create the generic class and store it in
15388         `generic_inst->klass' before parsing the type arguments.  This is
15389         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15390         for an example.
15391         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15392         to support recursive typespec entries.
15393
15394         * class.c (mono_class_setup_parent): If our parent is a generic
15395         instance, we may get called before it has its name set.
15396         (mono_class_from_generic): Splitted into
15397         mono_class_create_from_generic() and mono_class_initialize_generic().
15398
15399 2003-10-25  Martin Baulig  <martin@ximian.com>
15400
15401         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15402         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15403         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15404         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15405
15406         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15407         (create_typespec): Likewise.
15408         (mono_reflection_bind_generic_parameters): Return a
15409         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15410         (mono_reflection_inflate_method_or_ctor): New public function.
15411
15412         * reflection.h (MonoReflectionGenericInst): New typedef.        
15413
15414 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15415
15416         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15417         inside the domain lock. Fixes #49993.
15418         
15419         * object.c (mono_class_vtable): When typed allocation is used, 
15420         allocate vtables in the GC heap instead of in the mempool, since the
15421         vtables contain GC descriptors which are used by the collector even
15422         after the domain owning the mempool is unloaded.
15423
15424         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15425
15426         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15427         reflect what it does. Also invalidate mempools instead of freeing
15428         them if a define is set.
15429
15430         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15431         of the appdomain.
15432         
15433         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15434         hold the finalizable objects in this domain.
15435
15436         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15437         appdomain.
15438
15439         * appdomain.c (mono_domain_set): New function to set the current
15440         appdomain, but only if it is not being unloaded.
15441
15442         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15443         appdomain which is being unloaded.
15444         
15445         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15446         unloading of the root appdomain.
15447
15448         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15449         icall to execute a method in another appdomain. Intended as a 
15450         replacement for InternalSetDomain, which can confuse the code 
15451         generation in the JIT.
15452
15453         * appdomain.c (mono_domain_is_unloading): New function to determine
15454         whenever an appdomain is unloading.
15455
15456         * appdomain.c (mono_domain_unload): New function to correctly unload
15457         an appdomain.
15458
15459         * assembly.c (mono_assembly_load_references): Check that an assembly
15460         does not references itself.
15461
15462         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15463         domain manually, it asks the finalizer thread to do it, then waits for
15464         the result. Also added a timeout.
15465
15466         * icall.c: Register the new icalls.
15467
15468         * threads.h threads.c: Export the mono_gc_stop_world and 
15469         mono_gc_start_world functions.
15470         
15471         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15472         function to fill out the mempool with 0x2a.
15473
15474 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15475
15476         * reflection.h (MonoReflectionMethodAux): New structure to store
15477         information which is rarely used, thus is not in the MonoMethod
15478         structure.
15479
15480         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15481         store the aux info.
15482
15483         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15484         and marshalling info into the aux structure.
15485
15486         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15487         from the aux structure.
15488
15489         * loader.c (mono_method_get_param_names): Retrieve the param names from
15490         the aux structure.
15491         
15492 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15493
15494         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15495         warning.
15496
15497 2003-10-21  Dick Porter  <dick@ximian.com>
15498
15499         * socket-io.c
15500         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15501         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15502
15503 2003-10-21  Martin Baulig  <martin@ximian.com>
15504
15505         * reflection.c (mono_reflection_bind_generic_parameters):
15506         `klass->parent' is NULL for interfaces.
15507
15508 2003-10-21  Martin Baulig  <martin@ximian.com>
15509
15510         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15511
15512 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15513
15514         * exception.c (mono_exception_from_name_msg): New helper function for
15515         creating exceptions and initializing their message field.
15516
15517         * exception.c: Simplify functions using the new helper.
15518
15519         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15520         New function.
15521
15522         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15523         mono_raise_exception, since otherwise gcc doesn't generate the function
15524         epilog for raise_exception, confusing the stack unwinding in the JIT.
15525         Fixes #45043.
15526
15527         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15528         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15529         Fixes #49499.
15530
15531 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15532
15533         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15534         utf8.
15535
15536 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15537
15538         * icall.c: Removed GetUninitializedObject method because
15539           AllocateUninitializedClassInstance does the same.
15540
15541 2003-10-18  Martin Baulig  <martin@ximian.com>
15542
15543         * class.c (inflate_generic_signature): Renamed to
15544         mono_class_inflate_generic_signature() and made it public.
15545         (my_mono_class_from_generic_parameter): New static function; if we
15546         don't already have the generic parameter's MonoClass, create a
15547         very simple one which is just used internally in the runtime and
15548         not passed back to managed code.
15549
15550         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15551
15552         * metadata.h (MonoMethodSignature): Moved the
15553         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15554         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15555
15556         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15557         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15558         interncall on the MonoMethod class, not on MethodInfo.
15559         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15560         calling mono_reflection_bind_generic_method_parameters() directly.
15561
15562         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15563         return the already computed `method->signature'.
15564         (method_from_methodspec): New static function to load a method
15565         from a MethodSpec entry.
15566         (mono_get_method_from_token): Call the new method_from_methodspec()
15567         for MethodSpec tokens.  
15568         (mono_get_method_from_token): If we're a generic method, load the
15569         type parameters.
15570
15571         * reflection.c (mono_image_get_memberref_token): Allow
15572         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15573         table.
15574         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15575         (mono_image_create_token): First check whether it's a generic
15576         method (so we'd need to create a MethodSpec), then do the other
15577         two alternatives.
15578         (mono_reflection_bind_generic_method_parameters): Return a
15579         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15580         called directly from the interncall.
15581
15582 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15583
15584         * reflection.c (load_public_key): Move loading of the public key
15585         into managed code.
15586
15587         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15588
15589         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15590         fields.
15591
15592         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15593         culture, hash_alg and public_key. Fixes #49555.
15594
15595 2003-10-17  Martin Baulig  <martin@ximian.com>
15596
15597         * class.h (MonoGenericInst): Moved this declaration here and added
15598         `MonoMethod *generic_method'.
15599
15600         * icall.c
15601         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15602         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15603
15604         * metadata.c (mono_metadata_type_equal): Two types of
15605         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15606         index; ie. don't compare the address of the `MonoGenericParam'
15607         structure.
15608         (mono_metadata_load_generic_params): Removed the `MonoMethod
15609         *method' argument.
15610
15611         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15612         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15613
15614         * reflection.c (method_encode_signature): Encode the number of
15615         generic parameters.
15616         (encode_generic_method_sig): New static function.
15617         (method_encode_methodspec): New static function; creates an entry
15618         in the MethodSpec table for a generic method.
15619         (mono_image_get_methodspec_token): New static function.
15620         (mono_image_create_token): Call mono_image_get_methodspec_token()
15621         for generic methods.
15622         (mono_reflection_bind_generic_method_parameters): New public
15623         function.  Instantiates a generic method.
15624
15625 2003-10-16  Martin Baulig  <martin@ximian.com>
15626
15627         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15628         *gen_params' here from MonoMethodHeader.
15629
15630         * metadata.c (mono_metadata_parse_method_signature): If we have
15631         generic parameters, initialize `method->gen_params' and then set
15632         the correct `type->data.generic_param' in all the parameters.
15633
15634 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15635
15636         * threads.c (mono_threads_get_default_stacksize): New function to 
15637         return the default stacksize.
15638
15639         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15640         termination of the finalizer thread, since the previous method had
15641         race conditions. Fixes #49628.
15642
15643         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15644         as for the other managed threads.
15645
15646 2003-10-16  Martin Baulig  <martin@ximian.com>
15647
15648         * class.c (inflate_generic_signature): Copy `generic_param_count'
15649         and `gen_params'.
15650
15651         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15652         New interncall.
15653
15654         * metadata.c (mono_metadata_parse_method_signature): Actually set
15655         the `method->generic_param_count' here.
15656         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15657
15658 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15659
15660         * object.h: Add a new field to TypedRef to simplify the implementation
15661         of the REFANY opcodes in the JIT.
15662
15663         * icall.c: Make use of the new field.
15664
15665         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15666         dynamically.
15667
15668 2003-10-15  Martin Baulig  <martin@ximian.com>
15669
15670         * class.c (mono_class_from_gen_param): Renamed to
15671         mono_class_from_generic_parameter() and moved most of the
15672         functionality from mono_reflection_define_generic_parameter()
15673         here; ie. we create a "real" class here.
15674         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15675         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15676         previously been called.
15677
15678         * class.h (MonoGenericParam): Moved the declaration of this struct
15679         here from metadata.h and added `MonoMethod *method'.
15680
15681         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15682         interncall.
15683
15684         * loader.c (mono_get_method_from_token): If we have any generic
15685         parameters, call mono_metadata_load_generic_params() to read them
15686         from the MONO_TABLE_GENERICPAR.
15687
15688         * metadata.c (mono_metadata_load_generic_params): Added
15689         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15690
15691         * metadata.h (MonoMethodSignature): Replaced
15692         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15693         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15694
15695         * reflection.c (mono_reflection_define_generic_parameter): Moved
15696         most of the functionality into the new
15697         mono_class_from_generic_parameter(); set the `method' field if
15698         we're a method parameter.       
15699
15700 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15701
15702         * marshal.c (emit_struct_conv): if native size is 0
15703         emit no code.
15704
15705 2003-10-14  Martin Baulig  <martin@ximian.com>
15706
15707         * icall.c: The generics API has changed in the spec since it was
15708         added to System.Type; these modifications make it match the spec
15709         again.
15710         (ves_icall_Type_GetGenericParameters): Renamed to
15711         `ves_icall_Type_GetGenericArguments'.
15712         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15713         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15714         `ves_icall_MonoType_get_HasGenericArguments'.
15715         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15716         `ves_icall_MonoType_get_IsGenericParameter'.
15717         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15718         this is no interncall anymore.
15719         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15720         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15721
15722 2003-10-14  Martin Baulig  <martin@ximian.com>
15723
15724         * reflection.c (mono_reflection_bind_generic_parameters): Also
15725         inflate generic methods if we're reading the class from IL.
15726
15727 2003-10-13  Martin Baulig  <martin@ximian.com>
15728
15729         * reflection.c (mono_reflection_define_generic_parameter): This
15730         method isn't called directly from the icall anymore; take a
15731         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15732         method generic parameters.
15733         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15734         (method_builder_encode_signature): Encode generic parameters.
15735         (mono_image_get_method_info): Write generic params to the
15736         MONO_TABLE_GENERICPARAM table.
15737
15738         * reflection.h (MonoReflectionMethodBuilder): Added
15739         `MonoArray *generic_params'.
15740
15741         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15742
15743         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15744         wrapper for mono_reflection_define_generic_parameter().
15745         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15746
15747 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15748
15749         * marshal.h: Add missing function to fix build.
15750
15751         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15752         the SetLastError pinvoke attribute.
15753
15754         * marshal.c (mono_marshal_set_last_error): New helper function called
15755         by the generated code.
15756         
15757         * marshal.c (mono_mb_emit_branch): New helper function.
15758
15759         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15760
15761         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15762         classes as parameters and return values of delegates. Fixes #29256. 
15763
15764 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15765
15766         * locales.c: use gint32 in non HAVE_ICU case
15767
15768 2003-10-11  Martin Baulig  <martin@ximian.com>
15769
15770         * mono-debug.c (mono_debug_add_method): Added a workaround for
15771         bug #48591.
15772
15773 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15774
15775         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15776         delegates passed to native code must use the STDCALL calling 
15777         convention. Fixes #35987.
15778
15779 2003-10-10  Martin Baulig  <martin@ximian.com>
15780
15781         * class.c (inflate_generic_type): If we're inflating for a generic
15782         type instance (and not for a generic method), return
15783         MONO_TYPE_MVAR unchanged.
15784
15785 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15786
15787         * string-icalls.c: Join ignores null strings in the source array.
15788         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15789         * threads.c: GetAvailableTheads is slightly more accurate.
15790
15791 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15792
15793         * threads.h threads.c : add mono_threads_set_default_stacksize
15794         and pass default to CreateThread calls.
15795
15796 2003-10-09  Dick Porter  <dick@ximian.com>
15797
15798         * icall.c:
15799         * locales.h:
15800         * locales.c: Internal calls for constructing CultureInfo and
15801         related objects from libicu (if its available.)
15802
15803 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15804
15805         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15806
15807 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15808
15809         * threadpool.c: added an argument to async_invoke_thread that is the
15810         item to process, pass the MonoAsyncResult to the thread start function
15811         when creating a new thread. This way we don't need to acquire any lock
15812         when we're creating a new thread. Readded a semaphore for faster
15813         response times (instead of that Sleep i added).
15814
15815 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15816
15817         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15818         get daylight change dates better on Windows, fix handling
15819         of platforms without tm_gmtoff.
15820
15821 2003-10-06  Martin Baulig  <martin@ximian.com>
15822
15823         * class.c (inflate_generic_method): Renamed to
15824         mono_class_inflate_generic_method() and made public.
15825         (mono_class_init): Don't inflate the generic methods here.
15826         (mono_class_from_generic): Added `gboolean inflate_methods'
15827         argument.  Inflate the methods here.
15828
15829         * loader.c (mono_method_get_param_names): Ignore instances of
15830         generic types for the moment.
15831
15832         * reflection.c (fixup_method): Added support for inflated methods.
15833         (mono_image_create_token): Use mono_image_get_methodref_token()
15834         for inflated methods.
15835         (mono_custom_attrs_from_param): Ignore instances of generic types
15836         for the moment.
15837         (mono_reflection_bind_generic_parameters): New public function.
15838         Moved all the functionality from
15839         ves_icall_Type_BindGenericParameters() here and added support for
15840         dynamic types.
15841         (mono_reflection_define_generic_parameter): Initialize
15842         `klass->methods' here.
15843
15844         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15845         functionality into mono_reflection_define_generic_parameter().
15846         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15847         TypeBuilder, return that TypeBuilder.
15848
15849 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15850
15851         * appdomain.c: removed mono_delegate_semaphore.
15852
15853         * threadpool.c:
15854         (mono_thread_pool_add): moved hash table creation inside and the thread 
15855         creation outside of the critical region.
15856         (mono_thread_pool_finish): removed obsolete code.
15857         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15858         continue or exit the thread depending on the queue.
15859
15860 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15861
15862         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15863         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15864         handle more bool marshalling options
15865
15866 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15867
15868         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15869         arrays of structs. Also add a more descriptive error message when
15870         a structure member is marshalled as LPArray.
15871
15872 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15873
15874         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15875         marshalling arrays of complex types. Fixes #29098. Also remove an
15876         usused and incomplete function.
15877
15878 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15879
15880         * gc.c: report heap_size - free_bytes as total memory allocated
15881         (bug#49362).
15882
15883 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15884
15885         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15886         fix timezone handling problems on Windows.
15887         
15888         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15889         asserts when the year is outside the range handled by ms the functions.
15890
15891         * class.c (setup_interface_offsets): If the class is an interface,
15892         fill out its interface_offsets slot.
15893
15894 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15895
15896         * threadpool.c: mark threadpool threads as background.
15897
15898 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15899
15900         * decimal.c - define DECINLINE to nothing if not using GCC
15901
15902 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15903
15904         * assembly.c: More refcount fixes.
15905
15906 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15907
15908         * string-icalls.c: if we're not trimming, return the same string.
15909         When not splitting, don't create a new string.
15910
15911 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15912
15913         * image.c:
15914         (mono_image_open): increment the ref_count inside the critical section.
15915
15916 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15917
15918         * image.c (mono_image_open): Fix reference counting bug.
15919
15920 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15921
15922         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15923         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15924         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15925         mono_lookup_pinvoke_call throws.        
15926
15927 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15928
15929         * reflection.c (mono_reflection_parse_type): Fix #49114.
15930
15931         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15932         temporary workaround for cygwin header problem.
15933
15934         * object.c (mono_object_isinst): Synchronize this with the code
15935         generated by the JIT for casts.
15936
15937 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15938
15939         * reflection.c (encode_type): Fix #38332.
15940
15941 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15942
15943         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15944         the original method from the wrapper method.
15945
15946 2003-09-25  Martin Baulig  <martin@ximian.com>
15947
15948         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15949         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15950         (ves_icall_Type_get_IsGenericInstance): New interncall.
15951
15952 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15953
15954         * object.c: fix cast warning in big endian code.
15955
15956 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15957
15958         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15959         
15960 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15961
15962         * assembly.c: don't call check_env from mono_assembly_load. It's
15963         already done once in mono_assemblies_init and may cause headaches when
15964         multiple threads are loading assemblies.
15965
15966 2003-09-19  Martin Baulig  <martin@ximian.com>
15967
15968         * reflection.c (mono_reflection_define_generic_parameter): Don't
15969         allocate `klass->methods', set `klass->flags' to
15970         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15971
15972 2003-09-18  Martin Baulig  <martin@ximian.com>
15973
15974         * class.c (mono_class_init): Don't create `class->methods' if it's
15975         already initialized.
15976
15977         * metadata.c (mono_metadata_load_generic_params): Make this
15978         actually work.
15979
15980         * reflection.c (mono_reflection_define_generic_parameter): Set
15981         parent class and interfaces from the constraints.
15982
15983         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15984         to keep this struct in sync with the declaration in TypeBuilder.cs.
15985
15986 2003-09-17  Martin Baulig  <martin@ximian.com>
15987
15988         * metadata.h (MonoType): Replaced the data's `int type_param'
15989         field with `MonoGenericParam *generic_param'.
15990         (MonoGenericParam): Added `MonoClass *klass'.
15991
15992         * class.c (mono_class_from_gen_param): Removed the
15993         `MonoImage *image' and `int type_num' arguments.
15994
15995         * metadata.c (mono_metadata_parse_generic_param): New static
15996         method; creates a MonoGenericParam which just contains the index.
15997         (do_mono_metadata_parse_type): Call
15998         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15999         MONO_TYPE_MVAR.
16000
16001         * reflection.c (mono_image_typedef_or_ref): Generic type
16002         parameters may be in the same assembly, but never use a typedef
16003         for them.
16004         (mono_reflection_define_generic_parameter): We're now creating a
16005         "real" class for the type parameter; it's now safe to call
16006         mono_class_from_mono_type() on the class'es type, it'll do the
16007         right thing.
16008
16009 2003-09-16  Martin Baulig  <martin@ximian.com>
16010
16011         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16012         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16013         the `symfile' data structure must be fully initialized before it
16014         gets added to the table.
16015
16016 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16017
16018         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16019
16020         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16021         class init trampolines.
16022
16023 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16024
16025         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16026         to the built-in profiler to turn off time and allocation profiling
16027         respectively.
16028
16029 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16030
16031         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16032         g_direct_equal.
16033
16034         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16035         in human readable form.
16036
16037 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16038
16039         * reflection.c icall.c: Fixed warnings.
16040
16041         * image.c (load_class_names): Use a temporary hash table to hold the
16042         namespaces in order to avoid doing many string comparisons.
16043
16044         * image.h: Fix typo.
16045
16046         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16047         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16048         since the NULL case is short-circuited inside g_hash_table_lookup, 
16049         leading to better performance.  
16050
16051         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16052         obtain the first custom attribute for a given index. Depends on the
16053         CustomAttribute table being sorted by the parent field.
16054
16055         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16056         for better performance.
16057
16058 2003-09-07  Martin Baulig  <martin@ximian.com>
16059
16060         * class.c (mono_class_init): If we're a generic instance, inflate
16061         all our methods instead of loading them from the image.
16062         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16063
16064 2003-09-07  Martin Baulig  <martin@ximian.com>
16065
16066         * mono-debug-debugger.c: Added support for constructors.
16067
16068 2003-09-06  Martin Baulig  <martin@ximian.com>
16069
16070         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16071         New interncall.
16072
16073         * reflection.c (mono_reflection_setup_generic_class): Call
16074         ensure_runtime_vtable() to create the vtable.
16075
16076 2003-09-05  Martin Baulig  <martin@ximian.com>
16077
16078         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16079         MONO_TYPE_MVAR.
16080
16081 2003-09-04  Martin Baulig  <martin@ximian.com>
16082
16083         * reflection.c (mono_reflection_define_generic_parameter): Generic
16084         parameters start with zero.
16085
16086 2003-09-04  Martin Baulig  <martin@ximian.com>
16087
16088         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16089
16090         * reflection.h (MonoReflectionGenericParam): New typedef.
16091         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16092         the generic parameters from the managed TypeBuilder.
16093
16094         * reflection.c (mono_reflection_define_generic_parameter): New function.
16095         (mono_reflection_create_runtime_class): Encode generic parameters.
16096         (mono_reflection_setup_generic_class): New function; this is
16097         called after adding adding all generic params to the TypeBuilder.
16098         (encode_type): Added MONO_TYPE_VAR.
16099
16100 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16101
16102         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16103         here from the JIT.
16104
16105         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16106         load hook.
16107
16108 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16109
16110         * reflection.h reflection.c class.h class.c: Delete duplicate 
16111         definition of mono_type_get_name () from reflection.c and export the
16112         one in class.c.
16113
16114         * class.c: Class loading fixes from Bernie Solomon 
16115         (bernard@ugsolutions.com).
16116
16117         * reflection.c: Endianness fixes from Bernie Solomon 
16118         (bernard@ugsolutions.com).
16119         
16120 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16121
16122         * assembly.h assembly.c: Define a file format version for AOT
16123         libraries.
16124         
16125         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16126
16127         * appdomain.h (MonoJitInfo): New field to determine whenever the
16128         code is domain neutral.
16129         
16130 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16131
16132         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16133
16134 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16135
16136         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16137         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16138         Avoid caching the result since strings must be domain specific. Fixes
16139         #48050.
16140
16141 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16142
16143         * marshal.c (mono_marshal_init): Make this callable multiple times
16144         since it is hard to find a correct place to call it.
16145
16146         * object.c (mono_runtime_class_init): Execute static constructors in
16147         the correct appdomain.
16148
16149         * image.c (build_guid_table): Handle the case when multiple images have
16150         the same GUID.
16151
16152 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16153
16154         * icall.c: added a couple of icalls for System.Web.
16155
16156 2003-08-28  Martin Baulig  <martin@ximian.com>
16157
16158         * icall.c (ves_icall_Type_BindGenericParameters): Use
16159         `klass->generic_inst' instead of `&klass->byval_arg' in the
16160         mono_type_get_object() call.  The returned type must be
16161         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16162
16163 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16164
16165         * NOTES: New file.
16166
16167         * object.c (mono_class_proxy_vtable): Make it thread safe.
16168
16169         * pedump.c: Fix warning.
16170
16171         * object.c appdomain.h: Get rid of metadata_section. 
16172         It is no longer needed and it was causing deadlocks with domain->lock.
16173
16174         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16175
16176 2003-08-26  Martin Baulig  <martin@ximian.com>
16177
16178         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16179
16180 2003-08-26  Martin Baulig  <martin@ximian.com>
16181
16182         * pedump.c (main): Call mono_metadata_init(),
16183         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16184         and mono_loader_init().
16185
16186 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16187
16188         * loader.h: Add missing include to fix build.
16189
16190         * image.h: mono_image_load_references is no more.
16191
16192         * assembly.c: Reworked assembly loading to make it really thread safe.
16193         After these changes, the assembly returned by mono_assembly_open is
16194         fully initialized, i.e. all its references assemblies are loaded.
16195
16196         * assembly.c (mono_image_load_references): Renamed to 
16197         mono_assembly_load_references, and made private, since clients no
16198         longer need to call it.
16199
16200         * class.c: Removed calls to mono_assembly_load_references, since it was
16201         a source of deadlocks.
16202
16203         * loader.h loader.c class.h class.c: Protect data structures using a 
16204         new lock, the loader lock.
16205
16206         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16207         GPtrArrays only when needed.
16208
16209         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16210         into empty structures by mcs. Fixes pinvoke7.cs.
16211         
16212         * domain.c (mono_init): Call a new initialization function.
16213
16214         * appdomain.c (mono_runtime_init): Call the new initializer function
16215         of the marshal module.
16216
16217         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16218         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16219
16220         * marshal.h marshal.c: Added locks around the wrapper caches to make
16221         this module thread safe.
16222
16223         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16224         this argument. Fixes pinvoke1.exe.
16225
16226 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16227
16228         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16229         enumeration of values. Removed fields to store remote call output values in
16230         MonoAsyncResult. Not needed any more.
16231         * object.c: Initialize call_type and async_result fields in mono_message_init.
16232         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16233         dispatching the message.
16234         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16235         async call to finish. To do it use a message with EndInvoke call type.
16236
16237 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16238
16239         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16240         determines whenever a method has marshalling info.
16241
16242 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16243
16244         * assembly.c: fix the build on windows.
16245
16246 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16247
16248         * object.cs: Fixed bug #47785.
16249
16250 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16251
16252         * string-icalls.c (StringReplace): If their are no occurances of
16253         the old string found return a reference to the supplied
16254         string. This saves some memory and matches MS behavoir.
16255         
16256 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16257
16258         * socket-io.c: fixed compilation for systems that define AF_INET6
16259         and don't define SOL_IP/SOL_IPV6.
16260
16261 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16262
16263         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16264         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16265
16266         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16267
16268         * domain.c: Make this module thread safe.
16269
16270         * domain.c (mono_init): Call new initialization function.
16271
16272         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16273         reference types too. Fixes #38812.
16274
16275         * image.c (mono_image_init): Fixed warnings.
16276
16277         * class.c (mono_class_from_typeref): Handle assembly load failure
16278         correctly.
16279
16280         * appdomain.c (add_assemblies_to_domain): Handle the case when
16281         the references of an assembly are not yet loaded.
16282
16283         * metadata.c image.c assembly.c: Moved initialization of global
16284         variables to a separate function called at startup since lazy 
16285         initialization of these variables is not thread safe.
16286         
16287         * image.c assembly.c: Made this module thread safe by adding locks in 
16288         the appropriate places.
16289
16290         * domain.c (mono_init): Call the new initialization functions of the
16291         three modules.
16292
16293 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16294
16295         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16296           make a direct call. It is proxy's work to make the call asynchronous.
16297           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16298           the return values.
16299         * object.cs: mono_method_call_message_new(): read AsyncResult and
16300           state object from parameters list, if this info is requested.
16301         * object.h: Added fields to store remote call output values in
16302           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16303
16304 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16305
16306         * object.h: add needed fields to MonoThread.
16307         * threads.c, threads.h: allow registering a function to cleanup data
16308         allocated per thread by the JIT.
16309
16310 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16311
16312         * loader.h: portability fix by Bernie Solomon
16313         * <bernard@ugsolutions.com>.
16314
16315 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16316
16317         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16318         return a MonoArray. This simplifies the code and also ensures that
16319         the cache allways contains an object reference as a value.
16320
16321         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16322         function.
16323
16324 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16325
16326         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16327         fixes a problem with byte ordering when getting the address family for
16328         a socket.
16329
16330 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16331
16332         * .cvsignore: Added monosn.
16333
16334         * reflection.h reflection.c loader.c: Added support for parameter
16335         marshalling to dynamically created types. Fixes #47295.
16336
16337 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16338
16339         * rand.c: remove useless warnings.
16340
16341 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16342
16343         * class.c: implemented ldtoken for methods and fieldrefs.
16344
16345 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16346
16347         * threadpool.c: when mono_async_invoke was called, no one took care of
16348         monitoring the queue. So if the method invoked took some time and we
16349         got new async invoke requests after 500 ms (the thread created waited
16350         that long in WaitForSingleObject), the new async invoke was not called
16351         until the previous one finished.
16352
16353         This is fixed now. Thanks to Totte for helping with it.
16354
16355 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16356
16357         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16358
16359 2003-08-11  Martin Baulig  <martin@ximian.com>
16360
16361         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16362
16363 2003-08-06  Martin Baulig  <martin@ximian.com>
16364
16365         * mono-debug-debugger.c: Added support for static fields,
16366         properties and methods.
16367
16368 2003-08-06  Martin Baulig  <martin@ximian.com>
16369
16370         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16371         make this work for applications with multiple application domains.
16372
16373 2003-08-04  Martin Baulig  <martin@ximian.com>
16374
16375         * mono-debug-debugger.c: Completely reworked the type support; the
16376         most important thing is that we're now just using one single
16377         `MonoType' instance per type.
16378
16379 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16380
16381         * mono-endian.h, mono-endian.c, icall.c: Added icall
16382         ves_icall_System_Double_AssertEndianity to assert double word endianity
16383         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16384
16385 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16386
16387         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16388         support, icalls and fixes.
16389
16390 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16391
16392         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16393         classes that are a punctuation character in .NET is not the same a
16394         g_unichar_ispunct.
16395
16396 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16397
16398         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16399
16400 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16401
16402         * icall.c: Add new MemCopy internalcall.
16403         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16404         Simplified code; It is not necessary to handle all the cases here,
16405         as the C# code takes care of it.  Only handle the case of the name
16406         resource embedded into the assembly.
16407
16408         Changed signature to return the data pointer and the size of the
16409         data. 
16410
16411 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16412
16413         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16414         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16415
16416 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16417
16418         * socket-io.c: ignore EINTR error in select.
16419
16420 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16421
16422         * class.h, class.c: removed unused subclasses field in MonoClass.
16423
16424 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16425
16426         * icall.c: improve fix of get_base_definition(). If the parent class
16427           doesn't have the mehod, look at the parent of the parent.
16428         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16429           to check if a parameter is an in or out parameter
16430           (PARAM_ATTRIBUTE_IN is not set by default).
16431           mono_method_return_message_restore(): Use mono_class_value_size to
16432           get the size of a value type. mono_type_stack_size (parameterType)
16433           does not return the correct value if parameterType is byRef.
16434           mono_load_remote_field(), mono_load_remote_field_new(),
16435           mono_store_remote_field(), mono_store_remote_field_new():
16436           raise exception if the remote call returns an exception.
16437
16438 2003-07-28  Martin Baulig  <martin@ximian.com>
16439
16440         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16441         method.  This is a wrapper around mono_runtime_invoke() which
16442         boxes the instance object if neccessary.
16443
16444 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16445
16446         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16447         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16448
16449 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16450
16451         * icall.c: disable mcs bug workaround.
16452
16453 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16454
16455         * object.c (mono_runtime_class_init): Take the metadata_section
16456         mutex before obtaining the domain mutex.
16457
16458         * appdomain.h: Added definition of metadata_section mutex here. 
16459
16460         * object.c: define metadata_mutex here.
16461
16462 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16463
16464         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16465         fixed.
16466
16467 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16468
16469         * reflection.c: Fix bug #46669
16470
16471 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16472
16473         * exception.c:
16474         * exception.h:
16475         * icall.c:
16476         * object.h: fill in the type name for TypeLoadException.
16477
16478 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16479
16480         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16481         relationship between TypeBuilders while compiling corlib) and bug
16482         45993 (Array types returned from the runtime while compiling
16483         corlib were from the loaded corlib).
16484
16485 2003-07-22  Martin Baulig  <martin@ximian.com>
16486
16487         * mono-debug-debugger.c: Reworked the type support a bit more;
16488         distinguish between types and classes.
16489
16490 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16491
16492         * icall.c: add IsArrayImpl icall.
16493
16494 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16495
16496         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16497         initializing real_size only once. Also fix bug #46602.
16498
16499 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16500
16501         * object.c: Renamed mono_metadata_section to metadata_section.
16502
16503 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16504
16505         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16506           empty array if the type is an array. Fixed.
16507           ves_icall_MonoMethod_get_base_definition: if the base method
16508           is abstract, get the MethodInfo from the list of methods of
16509           the class.
16510         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16511           and it was 1-based. Fixed in mono_param_get_objects.
16512
16513 2003-07-20  Martin Baulig  <martin@ximian.com>
16514
16515         * mono-debug.h: Set version number to 31.
16516         (mono_debug_init): Added `MonoDomain *' argument.
16517
16518         * mono-debug-debugger.c: Reworked the type support; explicitly
16519         tell the debugger about builtin types; pass the `klass' address to
16520         the debugger.
16521
16522 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16523
16524         * image.c: Allow new metadata tables to be loaded without a
16525         warning. Also update the warning message to give the new constant value.
16526                 
16527 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16528
16529         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16530         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16531         array type representation changes.
16532
16533 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16534
16535         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16536         on Environment.Exit () call.
16537
16538 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16539
16540         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16541         requires a matching corlib.
16542
16543 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16544
16545         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16546           Committed again without the CRs.
16547         
16548 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16549
16550         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16551           getting it from the "this" socket instance. Did not work
16552           if the socket is a subclass of Socket.
16553           Also fixed bug #35371.
16554
16555 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16556
16557         * metadata.c: fixed size for TypedByRef.
16558         * loader.c: when searching for a method, consider the vararg amrker.
16559         * unicode.c, decimal.c: constify some arrays.
16560
16561 2003-07-15  Dick Porter  <dick@ximian.com>
16562
16563         * socket-io.c: Fixed compilation for gcc < 3.2.
16564
16565         Fixed compilation for machines that don't have AF_INET6 (thanks to
16566         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16567
16568         Fixed compile warnings.
16569         
16570         Fixed formatting and line endings.
16571
16572 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16573
16574         * socket-io.h:
16575         * socket-io.c: Added IPv6 support.
16576
16577 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16578
16579         * class.c (mono_class_is_assignable_from): New function to implement
16580         the is_assignable_from logic. Used by mono_object_isinst, 
16581         Type::IsAssignableFrom () and the interpreter.
16582
16583         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16584         Object, even interfaces.
16585         
16586         * object.c (mono_object_isinst): Implement in terms of 
16587         is_assignable_from.
16588
16589         * icall.c (ves_icall_type_is_assignable_from): New icall.
16590
16591 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16592
16593         * domain.c (foreach_domain): fix compiler warning.
16594
16595 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16596
16597         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16598         not available on all plattforms
16599
16600 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16601
16602         * image.h image.c: Store the metadata version string in MonoImage.
16603         * icall.c: New icall to retrieve the image version.
16604         * reflection.c (create_dynamic_image): Fill in the image version field
16605         * reflection.c (build_compressed_metadata): Use the image version
16606         from the image structure.
16607
16608 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16609
16610         * appdomain.c: modified comment.
16611         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16612         That will be its last iteration when mono_gc_cleanup is called from
16613         mono_runtime_cleanup and before the domain is unloaded.
16614
16615         Fixes bug #45962.
16616
16617 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16618
16619         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16620         attributes.
16621
16622 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16623
16624         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16625         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16626         Bernie Solomon <bernard@ugsolutions.com>.
16627
16628 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16629
16630         * object.c, object.h: provide mono_object_new_fast() for faster
16631         allocation in some special cases.
16632
16633 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16634
16635         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16636         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16637
16638 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16639
16640         * threadpool.c: fix leaks.
16641
16642 2003-07-01  Dick Porter  <dick@ximian.com>
16643
16644         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16645         using MonoGHashTables.  Fixes threadpool bug posted to list.
16646
16647 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16648
16649         * image.h, image.c: added support to load an assembly from a byte array.
16650         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16651         assembly bundle support.
16652
16653 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16654
16655         * threadpool.c (mono_thread_pool_add): keep a reference to the
16656         AsyncResult to prevent GC
16657
16658 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16659
16660         * class.c: leak fix.
16661
16662 2003-06-25  Dick Porter  <dick@ximian.com>
16663
16664         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16665         for the async object, the WaitHandle object will close the handle.
16666         Fixes bug 45321.
16667
16668 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16669
16670         * class.c: in mono_array_class_get (), lookup from the hash with the
16671         same type we insert: this works around a bug in
16672         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16673         lluis. The real fix will have to wait for after the release.
16674
16675 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16676
16677         * icall.c: fix memory leak when getting type members.
16678
16679 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16680
16681         * reflection.c: added more pubtoken special cases.
16682
16683 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16684
16685         * class.c: handle field offset correctly when class size
16686         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16687
16688 2003-06-20  Martin Baulig  <martin@ximian.com>
16689
16690         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16691         *image' field.
16692
16693 2003-06-20  Martin Baulig  <martin@ximian.com>
16694
16695         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16696
16697 2003-06-20  Martin Baulig  <martin@ximian.com>
16698
16699         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16700         just distinguish between variables in registers and variables at
16701         an offset relative to a register.
16702
16703 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16704
16705         * icall.c: #ifdef out latest changes until mcs is fixed.
16706
16707 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16708
16709         * icall.c: return members in metadata order.
16710
16711 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16712
16713         * icall.c: avoid infinite loop in GetTimeZoneData.
16714
16715 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16716
16717         * icall.c: added Marshal.Prelink/All icalls.
16718
16719 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16720
16721         * object.c, object.h: fix warnings and do some overflow checking
16722         when creating arrays.
16723
16724 2003-06-17  Dick Porter  <dick@ximian.com>
16725
16726         * file-io.h:
16727         * file-io.c: File attributes need to be tweaked slightly when
16728         passed from the managed to the w32 world.
16729
16730 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16731         * profiler.h profiler-private.h profiler.c: Rework last patch
16732         based on suggestion by Paolo.
16733         
16734 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16735
16736         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16737         instruction level coverage data collection.
16738         * profiler.h profiler.c (: Added new callback function which can be
16739         used by the profiler to limit which functions should have coverage
16740         instrumentation.
16741         * profiler.c (mono_profiler_load): Call g_module_build_path to
16742         generate the file name of the profiler library.
16743
16744 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16745
16746         * profiler.c, profiler.h, profiler-private.h: added basic block 
16747         coverage profiling API.
16748
16749 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16750
16751         * reflection.c (mono_reflection_create_runtime_class): Add support
16752         for events in dynamically generated code.
16753
16754         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16755         not allocated.
16756
16757 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16758
16759         * icall.c: when getting timezone info, return reasonable values if we
16760         can't get the actual data.
16761
16762 2003-06-14  Dick Porter  <dick@ximian.com>
16763
16764         * threads.c (start_wrapper): Remove the reference to the thread
16765         object in the TLS data, so the thread object can be finalized.
16766         This won't be reached if the thread threw an uncaught exception,
16767         so those thread handles will stay referenced :-( (This is due to
16768         missing support for scanning thread-specific data in the Boehm GC
16769         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16770
16771 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16772
16773         * reflection.c: ensure streams and tables are first allocated with
16774         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16775
16776 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16777
16778         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16779
16780 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16781
16782         * reflection.c (mono_reflection_create_runtime_class): Add support for
16783         properties to dynamically created classes.
16784         * reflection.c: Fix a few places where non-MonoObjects were inserted
16785         into the tokens hashtable.
16786
16787 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16788
16789         * object.c: some support to handle out of memory exceptions.
16790
16791 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16792
16793         * marshal.c (mono_marshal_get_native_wrapper): support reference
16794         return types
16795
16796 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16797
16798         * object.h, object.c: more portability stuff from Bernie Solomon.
16799         Unexport mono_object_allocate(). Added mono_object_unbox ().
16800         Set exitcode when an unhandled exception is thrown.
16801
16802 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16803
16804         * marshal.c (mono_marshal_get_native_wrapper): use custom
16805         marshaler for return types.
16806
16807 2003-06-10  Dick Porter  <dick@ximian.com>
16808
16809         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16810         ip_mreq is available
16811
16812 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16813
16814         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16815         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16816         by Bernie Solomon <bernard@ugsolutions.com>.
16817
16818 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16819
16820         * gc.c (mono_gc_init): Avoid error message on shutdown when
16821         GC_DONT_GC=1 is used.
16822
16823         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16824         New icall to return the GUID of a module.
16825
16826 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16827
16828         * class.c: ensure instance size always includes the parent's size
16829         even whem class size is set explicitly (fixes bug#44294).
16830
16831 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16832
16833         * profiler.h, profiler.c: made the simple profiler thread-safe,
16834         get more accurate timing info. Allow the loading of an
16835         externally-developed profiler module.
16836
16837 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16838
16839         * marshal.c (mono_marshal_get_native_wrapper): improved
16840         class/byref arguments.
16841         (mono_marshal_get_native_wrapper): better string marshaling support.
16842
16843 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16844
16845         * class.c: ensure .pack and .size are handled correctly and
16846         simplified layout of static fields.
16847
16848 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16849
16850         * appdomain.c
16851         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16852
16853         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16854         current directory (fix bug 44008)
16855
16856 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16857
16858         * marshal.c (mono_marshal_get_native_wrapper): started support for
16859         custom marshalers.
16860         (mono_delegate_to_ftnptr): consider marshalling specifications
16861
16862 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16863
16864         * reflection.c, reflection.h: emit custom marshal info.
16865
16866 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16867
16868         * object.c: free the GError.
16869         * icall.c: added CloseEvent_internal.
16870         * threads.[ch]:
16871         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16872         call.
16873
16874 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16875
16876         * loader.c (mono_method_get_signature): Add support for dynamic
16877         assemblies.
16878
16879 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16880
16881         * reflection.c: fixed bug #43905.
16882
16883 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16884
16885         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16886         handling TypedReference and ArgIterator.
16887         * loader.c, loader.h: added function to get signature at call site.
16888
16889 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16890
16891         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16892         data readonly. Buglets and warning fixes. Some MethodSpec support.
16893
16894 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16895
16896         * class.h, class.c, object.c: remove relative numbering support.
16897
16898 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16899
16900         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16901         free the string, until we get a chance to fix Gtk#
16902
16903 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16904
16905         * marshal.c: revert last patch.
16906
16907 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16908
16909         * icall.c: updates for new mono_class_vtable() not calling
16910         the type constructor anymore.
16911
16912 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16913
16914         * object.h, object.c: separate vtable creation from type
16915         initialization. Make running the .cctor thread safe.
16916
16917 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16918
16919         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16920
16921 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16922
16923         * loader.c (mono_get_method): consider calling convention
16924
16925 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16926
16927         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16928         to return the invisible global type for a module.
16929
16930         * reflection.c (mono_image_build_metadata): Emit global fields too.
16931
16932 2003-05-20  Peter Williams  <peterw@ximian.com>
16933
16934         * loader.c (mono_lookup_internal_call): Add a few newlines.
16935
16936 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16937
16938         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16939         literal strings.
16940
16941         * appdomain.c (set_domain_search_path): Recalculate search path when
16942         AppDomainSetup.PrivateBinPath changes.
16943
16944         * object.c (mono_class_compute_gc_descriptor): It turns out some
16945         parts of the class libs (like System.Thread) holds pointers to
16946         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16947         to treat native int a pointer type here.
16948         
16949 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16950
16951         * appdomain.h, domain.c: add hashtable for jump target resolution.
16952
16953 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16954
16955         * reflection.h reflection.c icall.c: Added new icalls 
16956         GetManifestResourceInfoInternal, GetModulesInternal and support
16957         infrastructure.
16958
16959 2003-05-16  Dick Porter  <dick@ximian.com>
16960
16961         * icall.c:
16962         * file-io.h:
16963         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16964
16965 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16966
16967         * object.c: mono_store_remote_field: little fix to previous patch.
16968
16969 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16970
16971         * class.c: add constructors to array classes.
16972         * icall.c: special case array construction for InternalInvoke (),
16973
16974 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16975
16976         * class.h class.c reflection.c object.c: Added support for field
16977         defaults in dynamically generated classes.
16978
16979 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16980
16981         * reflection.c: properly encode charset for ddlimport.
16982
16983 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16984
16985         * threads.c: allow compiling without GC.
16986
16987 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16988
16989         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16990         handling of thread static data.
16991
16992 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16993
16994         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16995
16996 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16997
16998         * class.c (mono_array_class_get): always set the serializable flags
16999         (mono_array_class_get): always set the SEALED attribute for array types
17000
17001 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17002
17003         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17004         attributes (fix for bug 42021).
17005
17006 2003-05-12  Dick Porter  <dick@ximian.com>
17007
17008         * gc.c: Don't run finalizers when the finalizer thread is
17009         finishing up, because the default domain has already been
17010         destroyed.
17011
17012 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17013
17014         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17015         value is null, we should throw an exception.   This is slightly
17016         different than the other conventions used for the constructor.
17017
17018 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17019
17020         * socket-io.c: fixed windows build.
17021
17022 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17023
17024         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17025
17026 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17027
17028         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17029         compilers.
17030
17031 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17032
17033         * class.c (mono_class_layout_fields): Add experimental GC aware
17034         auto layout facility. Requires class library changes to work correctly.
17035
17036         (mono_class_setup_vtable): Avoid overriding explicit interface
17037         method implementations. Fixes iface3.exe test.
17038
17039         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17040         object reference.
17041         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17042         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17043
17044         * metadata.h: Add new type classification macro which determines
17045         whenever the type holds an object reference.
17046
17047 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17048
17049         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17050
17051 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17052
17053         * gc.c (finalizer_thread): Work around a GC bug.
17054
17055 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17056
17057         * marshal.c (emit_struct_conv): allow unions
17058
17059         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17060
17061 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17062
17063         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17064
17065 2003-05-06  Martin Baulig  <martin@ximian.com>
17066
17067         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17068
17069 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17070
17071         * socket-io.c:
17072         (Select_internal): allow NULLs, don't create arrays if not needed.
17073         Coupled with Socket.cs changes.
17074
17075         * threadpool.c:
17076         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17077         register a finalizer for it that will close the semaphore handle. This
17078         fixes the leak and make Lupus' test run with > 4080 loops.
17079
17080 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17081
17082         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17083         Jerome Laban (bug #42287)
17084
17085 2003-05-02  Martin Baulig  <martin@ximian.com>
17086
17087         * debug-mono-symfile.h
17088         (MonoSymbolFile): Moved declaration into mono-debug.h.
17089         (MonoDebugMethodJitInfo): Likewise.
17090         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17091         argument.
17092         (_mono_debug_address_from_il_offset): Take a
17093         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17094
17095         * mono-debug.h
17096         (MonoDebugDomainData): New struct.
17097         (mono_debug_get_domain_data): New function.
17098         (mono_debug_add_method): Take an additional `MonoDomain *'
17099         argument.
17100         (mono_debug_source_location_from_address): Likewise.
17101         (mono_debug_il_offset_from_address): Likewise.
17102         (mono_debug_address_from_il_offset): Likewise.
17103
17104 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17105
17106         * reflection.c: one more check for null type in custom attrs.
17107
17108 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17109
17110         * reflection.c: avoid warning (comparison is always false due to limited
17111         range of data type).
17112
17113 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17114
17115         * icall.c: throw an exception in Type.GetField if the argument 'name'
17116         is NULL.
17117
17118 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17119
17120         * reflection.c: fixed handling of enums in named arguments to custom
17121         attributes (bug #42123).
17122
17123 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17124
17125         * reflection.c: use the right array element type and handle
17126         a null for a Type argument, too.
17127
17128 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17129
17130         * reflection.c: handle arrays as arguments to custom attributes.
17131
17132 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17133
17134         * reflection.c: handle a string value in a custom attr
17135         ctor that takes an object.
17136
17137 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17138
17139         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17140         (fix bug #42063)
17141
17142 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17143
17144         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17145
17146 2003-04-27  Martin Baulig  <martin@ximian.com>
17147
17148         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17149         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17150         MONO_DEBUGGER_EVENT_BREAKPOINT.
17151         (mono_breakpoint_trampoline_code): Removed.
17152         (mono_debugger_event_handler): The last argument is now a
17153         `guint32'.
17154         (mono_debugger_insert_breakpoint_full): Removed the
17155         `use_trampoline' argument.
17156         (mono_debugger_method_has_breakpoint): Likewise.
17157         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17158         mono_debugger_breakpoint_callback(); take the method and
17159         breakpoint number as arguments.
17160
17161 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17162
17163         * metadata.c: fix off by one when loading parameters attributes.
17164
17165 2003-04-24  Martin Baulig  <martin@ximian.com>
17166
17167         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17168
17169 2003-04-24  Martin Baulig  <martin@ximian.com>
17170
17171         * mono-debug-debugger.c: Moved all code which interacts with the
17172         Mono Debugger here.
17173
17174         * debug-mono-symfile.c: This code now just deals with the symbol
17175         file itself, the debugger code is now in mono-debug-debugger.c.
17176
17177 2003-04-23  Martin Baulig  <martin@ximian.com>
17178
17179         * mono-debug.c (mono_debug_source_location_from_il_offset):
17180         New method; like mono_debug_source_location_from_address(), but
17181         takes an IL offset instead of a machine address.
17182
17183 2003-04-23  Martin Baulig  <martin@ximian.com>
17184
17185         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17186         `line' field; this is now computed by the debugger.
17187
17188 2003-04-23  Martin Baulig  <martin@ximian.com>
17189
17190         * mono-debug.[ch]: New files.  This is the new debugging interface.
17191
17192         * mono-debug-debugger.[ch]: New files.  Moved all code which
17193         interacts with the Mono Debugger here.
17194
17195 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17196
17197         * domain.c (mono_init): initialize mono_defaults.monitor_class
17198
17199 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17200
17201         * reflection.c (method_encode_code): Add a spicy exception to help
17202         future compiler authors.
17203
17204 2003-04-21  Martin Baulig  <martin@ximian.com>
17205
17206         * icall.c
17207         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17208         Make this work with relative pathnames; g_filename_to_uri() needs
17209         an absolute filename.
17210
17211 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17212
17213         * icall.c: Track name changes in Object and ValueType.
17214
17215 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17216
17217         * metadata.c (mono_type_stack_size): size should be a multiple of
17218         sizeof (gpointer)
17219
17220 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17221
17222         * gc.c:
17223         (internal_domain_finalize): moved into mono_domain_finalize. No need
17224         to create another thread because the finalizers will be run in the
17225         finalizer thread.
17226         
17227         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17228         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17229         to be run (MS does this too).
17230
17231 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17232
17233         * object.c (mono_class_compute_gc_descriptor): Update comment.
17234
17235         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17236
17237         * image.h: Add synchronized wrapper cache.
17238
17239         * image.c (do_mono_image_open): Initialize cache.
17240
17241         * reflection.c (create_dynamic_mono_image): Initialize cache.
17242
17243 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17244
17245         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17246         ves_icall_System_Buffer_ByteLengthInternal.
17247
17248 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17249
17250         * reflection.c: setup klass->nested_in earlier. Allow
17251         a dash in the assembly name.
17252
17253 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17254
17255         * metadata.c (mono_type_to_unmanaged): dont access
17256         type->data.klass for MONO_TYPE_OBJECT
17257         (mono_type_to_unmanaged): consider System.Delegate class
17258
17259 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17260
17261         * class.c: just setup supertypes in the proper place instead of
17262         initializing the full element class for arrays.
17263
17264 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17265
17266         * class.c: ensure the element class of arrays is initialized.
17267         Setup the supertype info for array classes, too.
17268
17269 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17270
17271         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17272
17273 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17274
17275         * Makefile.am: re-added -m option when running cygpath. This way,
17276         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17277         separator.
17278         * mono-config.c: same codepath for locating mono config file for WIN32
17279         and the rest.
17280         * assembly.c: if mono_assembly_setrootdir is called, don't override
17281         the value set.
17282
17283 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17284
17285         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17286         MONO_ASSEMBLIES variable.
17287
17288 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17289
17290         * icall.c: added Assembly::GetNamespaces() icall.
17291
17292 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17293
17294         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17295
17296 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17297
17298         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17299         * object.c: fixed bug in the construction of vtable for proxies
17300
17301 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17302
17303         * object.c (mono_array_new): Mark mono_array_new as an icall.
17304
17305 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17306
17307         * class.c: fixed test for public method when overriding interfaces.
17308         Closes bug #40970.
17309
17310 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17311
17312         * appdomain.h, domain.c: added mono_domain_foreach() to
17313         be able to access the currently loaded appdomains.
17314         * object.c: make string interning work across sppdomains.
17315         Mark some functions for use as icalls.
17316
17317 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17318
17319         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17320
17321         * reflection.h reflection.c: Allocate long living data using 
17322         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17323
17324         * reflection.c: Double the allocation size in streams instead of
17325         increasing it, to prevent unneccesary copying on large assemblies.
17326         
17327         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17328         creation if the assembly does not have the Run flag set.
17329
17330 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17331
17332         * class.h: avoid the C++ keywords in header files (Jerome Laban
17333         spotted and fixed this).
17334
17335 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17336
17337         * object.c:
17338         (mono_unhandled_exception): fill in the arguments for the
17339         UnhandledException event. Only trigger that event for the default
17340         domain (as MS does).
17341
17342 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17343
17344         * object.c: Improve typed allocation stuff based on suggestions from
17345         Paolo. Also turn it on if the GC library supports it.
17346
17347 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17348
17349         * object.c object.h class.h: Added experimental typed allocation
17350         facility using the interfaces in gc_gcj.h.
17351
17352         * os/gc_wrapper.h: Added new include files.
17353         
17354 2003-04-03  Martin Baulig  <martin@ximian.com>
17355
17356         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17357         which is not yet enabled by default.
17358
17359         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17360         functions.
17361         (mono_gc_lock, mono_gc_unlock): New static functions.
17362
17363         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17364         functions; stop/start the world for the garbage collector.  This
17365         is using the windows API; we need to complete the SuspendThread()/
17366         ResumeThread() implementation in the io-layer to make this work on Unix.
17367         (mono_gc_push_all_stacks): New public function; tells the garbage
17368         collector about the stack pointers from all managed threads.
17369
17370 2003-04-03  Martin Baulig  <martin@ximian.com>
17371
17372         * object.h (MonoThread): Added `gpointer stack_ptr'.
17373
17374         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17375
17376 2003-04-03  Martin Baulig  <martin@ximian.com>
17377
17378         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17379
17380 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17381
17382         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17383         field.last.
17384
17385 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17386
17387         * loader.c (mono_lookup_internal_call): Report the corlib that is
17388         out of sync.
17389
17390 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17391
17392         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17393         System.DBNull (it's class not valuetype).
17394
17395 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17396
17397         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17398         if the array method was already assigned a token (fixes bug#40646).
17399
17400 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17401
17402         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17403         if no assembly is given.
17404
17405 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17406
17407         * metadata.h: Added the new tables.
17408
17409         * row-indexes.h: Added definitions for new tables.
17410
17411         * metadata.c: Add schemas for new tables, and add support for
17412         computing the sizes of them.
17413
17414         * class.c: Update for handling the new type cases.
17415
17416 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17417
17418         * metadata.h (MONO_TYPE_IS_VOID): new macro
17419
17420 2003-03-31  Martin Baulig  <martin@ximian.com>
17421
17422         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17423
17424         * threads.c (mono_thread_new_init): Call `thread_created' in the
17425         mono_thread_callbacks.
17426
17427 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17428
17429         * loader.h: added marshalbyrefobject_class to mono_defaults
17430         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17431         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17432           generation of output parameters.
17433           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17434         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17435           contextbound and the target object belongs to the context of the caller.
17436         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17437         * object.c: Implemented support for interfaces and abstract classes
17438           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17439           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17440
17441 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17442
17443         * class.h class.c (mono_class_is_subclass_of): New function.
17444         
17445         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17446         routines for most common case (calls from ArrayList::ToArray).
17447
17448         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17449         routine so programs which call Environment::Exit() can be profiled.
17450
17451         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17452         Added MONO_ARCH_SAVE_REGS.
17453
17454         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17455
17456 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17457
17458         * blob.h: Add a couple of new MonoType types definitions.
17459
17460         * tabledefs.h: Add a couple of new call convs.
17461
17462 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17463
17464         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17465         the layout of the class.
17466
17467         * reflection.c (alloc_table): double the size on overflow to avoid
17468         unnecessary copying.
17469
17470         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17471         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17472         null so it can be garbage collected.
17473         
17474 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17475
17476         * reflection.c (mono_reflection_get_type): Return the resolved type
17477         only if it is in the assembly we searched.
17478
17479         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17480
17481         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17482         method.
17483
17484 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17485
17486         * appdomain.c:
17487         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17488         the right one is 'file:///blah', but MS allows it.
17489         * assembly.c:
17490         (mono_assembly_open): allow 'file://blah'
17491
17492         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17493
17494 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17495
17496         * socket-io.c: fixes bug #40310.
17497
17498 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17499
17500         * reflection.c (mono_reflection_parse_type): handle deeply nested
17501         types correctly.
17502
17503         * reflection.c (mono_image_create_token): Use unique token values
17504         since they will be put into a hash table.
17505
17506         * class.c (mono_class_setup_vtable): If a method occurs in more than
17507         one place in the vtable, and it gets overriden, then change the
17508         other occurances too.
17509
17510         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17511         object as return type.
17512
17513 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17514
17515         * icall.c: Deleted "ToString" implementation for double and float
17516         because they are full implemented in managed code.
17517
17518 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17519
17520         * reflection.c, reflection.h: implemented and exported functions
17521         to retrieve info about custom attributes.
17522
17523 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17524
17525         * appdomain.c: moved Uri handling to assembly.c
17526         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17527         work when using a file Uri in *nix and windows.
17528
17529         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17530         GetReferencedAssemblies.
17531
17532 2003-03-18  Dick Porter  <dick@ximian.com>
17533
17534         * icall.c: Rename a couple of internal calls
17535
17536         * threads.c: Set the thread state to Stopped when a thread exits.
17537         Fixes bug 39377.
17538
17539 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17540
17541         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17542         New icall.
17543
17544         * object.c (mono_class_vtable): fix warning.
17545
17546 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17547
17548         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17549
17550         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17551         memory.
17552         (method_encode_clauses): Create exception info structures in the right
17553         order.
17554         (mono_reflection_setup_internal_class): Initialize supertypes field.
17555
17556         * class.c object.c: Handle interfaces which implement other interfaces 
17557         correctly.
17558
17559         * class.h class.c: Move the supertypes array initialization code into 
17560         a separate function so it can be used for dynamic types too. Also call
17561         it earlier, in mono_class_init(), since it can be used before the
17562         type is initialized.
17563
17564 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17565
17566         * Makefile.am:
17567         * assembly.c:
17568         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17569
17570         * appdomain.c:
17571         * appdomain.h:
17572         * marshal.c:
17573         * object.c: remove warnings.
17574
17575 2003-03-13  Martin Baulig  <martin@ximian.com>
17576
17577         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17578         (MonoDebugLexicalBlockEntry): New types.
17579
17580         * debug-mono-symfile.c
17581         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17582
17583 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17584
17585         * process.c: ret can be any non-zero value accroding to MS doc.
17586
17587 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17588
17589         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17590         fixing a warning for a miss-used prototype, would have cause
17591         random memory corruption.
17592
17593 2003-03-07  Martin Baulig  <martin@ximian.com>
17594
17595         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17596         getting really annoying ....
17597
17598 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17599
17600         * reflection.c (fixup_method): added support for array methods.
17601
17602 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17603
17604         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17605         (pointed out by Michael Adams).
17606
17607 2003-03-04  Dick Porter  <dick@ximian.com>
17608
17609         * icall.c: Temporarily reverted the Double and Single ToString()
17610         change, because it broke nunit.
17611
17612 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17613
17614         * object.h, threads.h: make include files compatible with C++
17615         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17616
17617 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17618
17619         * icall.c: Erased ToString helper functions for Double and Single.
17620         Now, that implementations ar all in managed code (Double and Single
17621         Formatters).
17622
17623 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17624
17625         * appdomain.c: Added method for initializing the default context of
17626         a domain. Added internal call for getting the default context.
17627         * appdomain.h: Added context variable in MonoDomain struct.
17628         * domain.c: mono_domain_set also sets the default context of the domain
17629         * icall.c: Mapped internal method InternalGetDefaultContext.
17630         * object.c: mono_object_get_virtual_method returns always a remoting
17631         wrapper if the object is a transparent proxy.
17632         mono_runtime_invoke_array: when creating an object by calling the
17633         constructor, if the created object is a proxy, then the constructor should
17634         be called using the a remoting wrapper.
17635
17636 2003-03-03  Dick Porter  <dick@ximian.com>
17637
17638         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17639         variable so it compiles on solaris.  Problem spotted by
17640         Christopher Taylor <ct@cs.clemson.edu>
17641
17642 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17643
17644         * appdomain.c:
17645         (get_info_from_assembly_name): don't leak value.
17646
17647         * icall.c:
17648         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17649         result.
17650
17651 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17652
17653         * assembly.c: export mono_image_load_references ().
17654         * class.c: handle function pointers. mono_class_from_name() now
17655         supports nested type names directly.
17656
17657 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17658
17659         * reflection.h reflection.c: Encode already created dynamic methods 
17660         and fields correctly as a DEF instead of a REF.
17661
17662         * reflection.c: Get rid of the force_ref argument to 
17663         mono_image_typedef_or_ref since it was wrong in the first place.
17664
17665         * string-icalls.c: add error checking to string constructors according
17666         to the MSDN docs.
17667
17668         * reflection.c: Emit types in the order their TypeBuilders were 
17669         created. Previously, a new table index was assigned to each type before
17670         the tables were emitted. This was wrong because the signature blob
17671         might already refer to a type by its original table index.
17672
17673 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17674
17675         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17676         change.
17677         
17678 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17679
17680         * Makefile.am: make assemblies dir have \ instead of / on windows.
17681
17682 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17683
17684         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17685         iterate over the NESTEDCLASS table using a linear search since the
17686         table is not guaranteed to be sorted by the secondary key.
17687
17688         * class.c (mono_class_create_from_typedef): fixed up call to
17689         mono_metadata_nesting_typedef.
17690         
17691 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17692
17693         * marshal.c (mono_string_to_byvalstr): clear the memory as
17694         suggested by Jerome Laban <jlaban@wanadoo.fr>
17695
17696 2003-02-26  Dick Porter  <dick@ximian.com>
17697
17698         * process.c: Cope with padding in .rsrc blocks
17699
17700 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17701
17702         * metadata.h: reverted the filter_len change, it breaks reflection
17703         
17704 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17705
17706         * metadata.h: added a new field to store the filter_len
17707         
17708
17709 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17710
17711         * reflection.c: handle custom attributes for types and members
17712         created with Reflection.Emit (bug#38422).
17713
17714 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17715
17716         * reflection.c: define RTSpecialName automatically for constructors for
17717         compatibility with MS.NET.
17718
17719         * reflection.c (mono_reflection_create_runtime_class): initialize
17720         nested_in field of dynamically created classes.
17721
17722 2003-02-22  Martin Baulig  <martin@ximian.com>
17723
17724         * debug-mono-symfile.h: Incremented version number.
17725
17726 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17727
17728         * object.h icall.c process.c: fix warnings.
17729
17730 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17731
17732         * appdomain.h appdomain.c:
17733         (mono_domain_try_type_resolve): split the 
17734         name_or_tb argument into a name and a tb argument.
17735         (mono_domain_has_type_resolve): new function to check whenever the
17736         application has registered a TypeResolve event handler.
17737         
17738         * icall.c reflection.h reflection.c: move the type resolve logic into
17739         mono_reflection_get_type () so it will be invoked when 
17740         Assembly::GetType () is called.
17741
17742         * reflection.c:
17743         (mono_reflection_get_type): renamed to get_type_internal.
17744         (mono_reflection_get_type): fixed type name generation so it works 
17745         for nested types too.
17746         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17747         costly type name generation if there is no resolve event handler.
17748
17749 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17750
17751         * class.c, image.c: load exported types from file references.
17752
17753 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17754
17755         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17756           used to cache the managed methods used to create proxies and make 
17757           remote invocation of methods.
17758         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17759           to be remotely created.
17760         * object.c: Modified the method mono_class_vtable(). It now initializes 
17761           the remote flag of the vtable. Modified mono_object_new_specific(), 
17762           so now it checks the remote flag.
17763         * icall.c: Added a couple of internal methods, one for enabling instance 
17764           creation interception for a type, and one for creating objects bypassing
17765           the remote check.
17766
17767 2003-02-18  Martin Baulig  <martin@ximian.com>
17768
17769         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17770         New interncall to get a method's metadata token.
17771
17772         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17773         New interncall for the debugger.
17774
17775 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17776
17777         * class.c (mono_class_setup_vtable): allocate supertype array
17778
17779 2003-02-18  Martin Baulig  <martin@ximian.com>
17780
17781         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17782
17783 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17784
17785         * reflection.c:
17786         (assembly_name_to_aname): jump over unknown properties (i've found
17787         something like: 'type, assembly, version=xxx, custom=null, public...',
17788         so now will ignore custom=null and still get the rest of the values).
17789
17790 2003-02-17  Dick Porter  <dick@ximian.com>
17791
17792         * threads.c: Have Thread.Start() wait for a semaphore to signal
17793         that the thread has set up all its local data.  This fixes bug
17794         34323, where Abort() raced the new thread's TLS data.
17795
17796         Also removes the handle_store() call from start_wrapper, because
17797         threads are now always created suspended and there is no longer a
17798         race between the parent and child threads to store the info.
17799
17800 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17801
17802         * image.c: explain the #- heap issue in a message, hopefully
17803         avoiding FAQs on mono-list.
17804
17805 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17806
17807         * icall.c:
17808         (GetEntryAssembly): if the domain has not invoked
17809         AppDomain.ExecuteAssembly yet, return the assembly of the default
17810         AppDomain.
17811
17812 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17813
17814         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17815
17816 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17817
17818         * metadata.c, reflection.c: simple speedup to type hash
17819         and equals code.
17820
17821 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17822
17823         * image.c, image.h, class.c, assembly.c: move module loading
17824         to MonoImage. When loading metadata, consider alignemnet from
17825         the start of metadata, not from the metadata address in memory.
17826
17827 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17828
17829         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17830         AssemblyBuilder objects. Factored out custom attribute creation into
17831         a separate function.
17832         (create_custom_attr): new function to create custom attributes.
17833
17834 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17835
17836         * Makefile.am: Got tired of typing the full pathname to pedump.
17837         Until there is another option, am installing this.
17838
17839 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17840
17841         * class.c (class_compute_field_layout): always set field->parent 
17842         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17843
17844 2003-02-11  Dick Porter  <dick@ximian.com>
17845
17846         * threads-types.h:
17847         * monitor.c: Rewrote Monitor, making lock much faster and
17848         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17849         creates them as needed.
17850
17851         * exception.c: Added SynchronizationLockException
17852
17853         * threads.c: Deleted old Monitor implementation.  The new one is
17854         in a new file.
17855
17856 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17857
17858         * class.c: handled TypedReference type code. Set the correct size for
17859         class data. Setup interface_offsets for interface classes, too.
17860
17861 2003-02-09  Martin Baulig  <martin@ximian.com>
17862
17863         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17864
17865 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17866
17867         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17868         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17869         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17870         * verify.c: check for code that runs after the end of the method.
17871
17872 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17873
17874         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17875         "System.Math::Round2".
17876         * sysmath.h: Added Floor, Round and Round2 definitions.
17877         * sysmath.c: Modified certain functions that were not 100% compliant
17878         with MS.NET (math precision) and added the implementation of Floor,
17879         Round and Round2.
17880
17881 2003-02-07  Martin Baulig  <martin@ximian.com>
17882
17883         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17884
17885 2003-02-07  Martin Baulig  <martin@ximian.com>
17886
17887         * debug-mono-symfile.c: Reflected latest symwriter changes.
17888         (mono_debug_create_mono_symbol_file): Removed.
17889         (mono_debug_open_mono_symbol_file): Take an argument which
17890         specifies whether to create a dynamic symbol file.
17891
17892 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17893
17894         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17895
17896 2003-02-05  Martin Baulig  <martin@ximian.com>
17897
17898         * reflection.c (mono_image_build_metadata): Make this public,
17899         protect it against being called multiple times, don't create
17900         resources and don't build the compressed metadata here.
17901         (mono_image_create_pefile): Do this here.
17902
17903         * icall.c
17904         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17905
17906 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17907
17908         * socket-io.c: fixed bug #36322.
17909
17910 2003-02-06  Piers Haken <piersh@friskit.com>
17911
17912         * appdomain.[ch]:
17913         * class.h:
17914         * debug-mono-symfile.c:
17915         * icall.c:
17916         * loader.c:
17917         * mono-config.c:
17918         * monosn.c:
17919         * reflection.c:
17920         * socket-io.c: warning cleanups
17921
17922 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17923
17924         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17925         function. works like remoting invoke, but does a check for the Proxy first.
17926
17927 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17928
17929         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17930
17931 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17932
17933         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17934         array of pointers.
17935         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17936         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17937
17938         * object.c (mono_store_remote_field_new): used by the new jit
17939         instead of mono_store_remote_field
17940         (mono_load_remote_field_new): used by the new jit
17941         instead of mono_load_remote_field
17942
17943 2003-02-05  Patrik Torstensson
17944
17945         * appdomain.c: changed unload to take the domain id instead
17946         of domain
17947         
17948         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17949
17950
17951 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17952
17953         * appdomain.c: don't look for assemblies in ApplicationBase if
17954         PrivateBinPathProbe is set.
17955
17956 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17957
17958         * object.c: make the first argument in main_args contain the absolute
17959         path to the assembly. Fixes bug #37511.
17960
17961 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17962
17963         * icall.c: get correct UTC offset for countries not using daylight
17964         time saving. Fixes bug #30030.
17965
17966 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17967
17968         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17969         and 1 are the family).
17970
17971 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17972
17973         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17974
17975         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17976
17977 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17978
17979         * reflection.c: added support for SignatureHelper tokens, which is
17980         needed by the Calli opcode.
17981
17982         * reflection.h: track changes to SignatureHelper class.
17983
17984         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17985
17986 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17987
17988         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17989
17990 2003-02-03  Patrik Torstensson
17991         * appdomain.[c|h], domain.c : 
17992          - Added support for getting a domain via domain id
17993          - Support for setting and getting domain from System.AppDomain 
17994            (used in cross appdomain channel)
17995          - Added support for get/set for a MonoAppContext on a thread 
17996            (Context class in System.Runtime.Remoting.Contexts),
17997          - Removed hack in Get/SetData and ExecuteAssembly.
17998         
17999         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18000         the managed world to get control when a proxy is created.
18001
18002         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18003         
18004 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18005
18006         * icall.c
18007         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18008         Populate the codebase field as well.
18009
18010 2003-02-02  Martin Baulig  <martin@ximian.com>
18011
18012         * debug-mono-symfile.c
18013         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18014         (mono_debug_symfile_add_method): Allow interncalls.
18015
18016 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18017
18018         * icall.c: throw parse exception if strtod fails or the string is empty.
18019
18020 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18021
18022         * marshal.c: handle object type separately from defined
18023         class types.
18024
18025 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18026
18027         * marshal.c: handle NATIVE_LPSTR for strings when it's
18028         explicitly specified.
18029
18030 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18031
18032         * reflection.c, reflection.h, icall.c: setup the reflection
18033         handle cache for ModuleBuilders and AssemblyBuilders.
18034
18035 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18036
18037         * reflection.c (reflection_methodbuilder_to_mono_method): set
18038         pinvoke flag
18039
18040 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18041
18042         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18043
18044 2003-01-29  Dick Porter  <dick@ximian.com>
18045
18046         * threads.c: No need for the fake_thread kludge now that Thread
18047         doesn't run a class constructor
18048         
18049 2003-01-29  Dick Porter  <dick@ximian.com>
18050
18051         * threads.c: Use g_direct_hash instead of the rather bogus
18052         g_int_hash
18053
18054 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18055
18056         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18057         (fix pinvoke12.exe)
18058         (mono_marshal_get_struct_to_ptr): generate valid IL code
18059         (mono_marshal_get_ptr_to_struct): generate valid IL code
18060         (*): correctly set sig->pinvoke, we need to memdup the signature
18061         to do that
18062
18063 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18064
18065         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18066         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18067
18068 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18069
18070         * profiler.c: provide more callers information.
18071
18072 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18073
18074         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18075
18076         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18077
18078         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18079
18080 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18081
18082         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18083         exception instead of going into an infinite loop on dates which it 
18084         can't yet handle.
18085
18086         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18087         out-of-range exception if needed.
18088
18089         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18090         an implementation for an interface method and to override an inherited
18091         method at the same time. 
18092         Imagine a scenario when a virtual method is used to override a
18093         virtual abstract method in a parent class, and this same method 
18094         provides an implementation for an method inherited from an interface. 
18095         In this case, the interface resolution code will set im->slot, which 
18096         means that the virtual method override pass will skip this method 
18097         which means a pointer to the abstract method inherited from the parent
18098         will remain in the vtable of this non-abstract class.
18099
18100         * class.c: (mono_class_setup_vtable): continue search for a real 
18101         method if only an abstract method is found.     
18102
18103 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18104
18105         * reflection.c: add size to encoding for ByValStr and ByValArray
18106         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18107
18108 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18109
18110         * class.c (mono_class_setup_vtable): pass the override info as an
18111         argument.
18112
18113         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18114         correctly.
18115         
18116         * reflection.c (ensure_runtime_vtable); add support for method 
18117         overrides.
18118         
18119 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18120
18121         * reflection.c (resolution_scope_from_image): Hack to work to work with
18122         dynamic assemblies.
18123
18124         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18125         added a 'force_ref' argument to force this function to allways return 
18126         a TypeRef. This is needed by mono_image_get_memberref_token ().
18127         
18128 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18129
18130         * reflection.c (mono_image_get_type_info): interfaces really don't have
18131         a parent.
18132
18133         * reflection.c (mono_image_basic_init): fill out missing fields of
18134         image structure.
18135
18136         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18137         dynamic assemblies. This is required so dynamic assemblies show up in
18138         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18139         Type::GetType() etc. This is consistent with MS behaviour.
18140
18141         * image.c image.h reflection.c: add newly created classes to the name 
18142         cache so mono_class_get () will find them.      
18143
18144 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18145
18146         First part of changes to get IKVM.NET running under mono.
18147         
18148         * appdomain.h, appdomain.c: added new function 
18149         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18150         This function will call AppDomain::DoTypeResolve to do the actual work.
18151
18152         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18153         moved existing code dealing with dynamic tokens to a new function 
18154         called mono_reflection_lookup_dynamic_token (). This function will 
18155         raise TypeResolve events when appropriate. Since reflection.c is not 
18156         part of libmetadata, a new hook function called 
18157         mono_lookup_dynamic_token() is added to class.c which will call this.
18158
18159         * assembly.h assembly.c: make the invoke_load_hook function public,
18160         so it can be called for dynamic assemblies.
18161
18162         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18163
18164         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18165         type isn't found.
18166
18167         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18168         MonoGHashTable, since it contains pointers to objects which the GC 
18169         needs to track.
18170
18171         * assembly.c (search_loaded): remove unused variable.
18172         
18173 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18174
18175         * object.c: fixed issue exposed by gcc-generated IL programs
18176         that use RVA data for pointers.
18177
18178 2003-01-25  Martin Baulig  <martin@ximian.com>
18179
18180         * threads.c (start_wrapper): Moved the initialization of
18181         `start_func' above the mono_new_thread_init() call to which we
18182         pass it as argument.
18183
18184 2003-01-24  Martin Baulig  <martin@ximian.com>
18185
18186         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18187         the MonoThread pointer.
18188
18189 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18190
18191         * icall.c: Rename `PowImpl' to Pow.
18192
18193 2003-01-23  Dick Porter  <dick@ximian.com>
18194
18195         * threads.c (start_wrapper): Create a Thread object if needed, so
18196         the Main() thread can do the class initialisation in a subthread
18197         that has been set up to allow managed code execution.
18198
18199         Pass the thread ID instead of the MonoThread pointer to the thread
18200         start and attach callbacks.  This change is required, because the
18201         jit thread start callback must be called _before_ the Thread
18202         object can be created.
18203         
18204         (mono_thread_init): Removed much object creation code that is no
18205         longer needed.  No managed code is called from here now.
18206
18207         * object.c (mono_runtime_exec_managed_code): Create a subthread
18208         for Main, and call back to the runtime to use it.
18209         Set the exit code when Main exits.
18210
18211         * gc.c: Make sure domain finalisation happens in a subthread.
18212         Re-enable threaded GC, fixing bug 31333 (again).
18213
18214         * environment.c: System.Environment internall calls (so far just
18215         ExitCode is here, the others are still in icall.c)
18216
18217         * appdomain.c (mono_runtime_cleanup): All threads running managed
18218         code should have finished before mono_runtime_cleanup() is
18219         reached, so no need to clean up threads.
18220
18221 2003-01-22  Martin Baulig  <martin@ximian.com>
18222
18223         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18224         `gpointer func' arguments.      
18225         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18226         but added `MonoThread *thread' argument.
18227         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18228
18229         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18230         and pass it to the mono_thread_start_cb callback.
18231         (mono_install_thread_callbacks): New public function to install a
18232         set of callbacks which are set by the debugger.
18233         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18234
18235 2003-01-22  Martin Baulig  <martin@ximian.com>
18236
18237         * Makefile.am: Install debug-mono-symfile.h.
18238
18239 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18240
18241         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18242
18243 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18244
18245         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18246         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18247         (mono_array_class_get): correctly set access levels of arrays
18248
18249 2003-01-20      Patrik Torstensson
18250         * image.h (MonoAssemblyName): changed major, minor, build, revision
18251         from signed to unsigned.
18252
18253 2003-01-20  sean kasun <skasun@azstarnet.com>
18254
18255         * reflection.c (load_cattr_value): Now this handles
18256         MONO_TYPE_SZARRAY.  Fixes bug #35629
18257
18258 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18259
18260         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18261         integer value
18262
18263 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18264
18265         * decimal.c: fixed bug #26056.
18266
18267 2003-01-17  Martin Baulig  <martin@ximian.com>
18268
18269         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18270
18271 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18272
18273         * exception.[ch]:
18274         (mono_get_exception_type_initialization): new function.
18275
18276         * object.c: throw a TypeInitializationException when an exception is
18277         thrown invoking the class constructor.
18278
18279 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18280
18281         * reflection.c: fixed attribute reading.
18282
18283 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18284
18285         * icall.c:
18286         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18287         provided, look for the type in the calling assembly and then in
18288         mscorlib; if the assembly name is provided, only try that one.
18289
18290 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18291
18292         * object.c: register the vtable before there is a chance it's
18293         queried again recursively.
18294
18295 2003-01-13  Duncan Mak  <duncan@ximian.com>
18296
18297         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18298         gc-internal.h. 
18299         
18300 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18301
18302         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18303
18304 2003-01-11  Martin Baulig  <martin@ximian.com>
18305
18306         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18307         this to 20 for the release.
18308
18309 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18310
18311         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18312
18313         * loader.c (mono_method_get_marshal_info): bug fix
18314
18315         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18316         structures with explicit layout
18317
18318 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18319
18320         * profiler.c: made the output more readable (and sorted). 
18321         Added caller information for the allocation profiler.
18322
18323 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18324
18325         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18326
18327 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18328
18329         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18330         to get value types.
18331         
18332 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18333
18334         * object.c, profiler.h, profiler.c, profiler-private.h:
18335         Added object allocation profiler.
18336
18337 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18338
18339         * reflection.h, reflection.c: handle global methods.
18340         Compress blob entries.
18341
18342 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18343
18344         * marshal.c: fix compilation.
18345
18346 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18347
18348         * loader.c (mono_method_get_marshal_info): impl.
18349
18350         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18351
18352 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18353
18354         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18355         for reference types.
18356
18357 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18358
18359         * loader.c: fixed off by one error in loaded parameter names.
18360
18361 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18362
18363         * marshal.c (mono_marshal_get_icall_wrapper): like
18364         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18365         instead of a MonoMethod.
18366
18367 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18368
18369         * decimal.c: fixed bug #36537.
18370
18371 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18372
18373         * marshal.c: throw a missing method exception if a
18374         P/Invoke method is not found.
18375
18376 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18377
18378         * icall.c: allow a null this for constructors.
18379
18380 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18381
18382         * icall.c: raise the proper exceptions if the arguments to the
18383         internal Invoke are incorrect.
18384
18385 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18386
18387         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18388
18389 2003-01-03  Martin Baulig  <martin@ximian.com>
18390
18391         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18392
18393 2002-12-31  Martin Baulig  <martin@ximian.com>
18394
18395         * debug-mono-symfile.c: Completely rewrote the type section.
18396         Instead of using individual malloc()ed fields, we use one big
18397         continuous memory area and offsets into this area.
18398         See the comments in the source code for details.
18399
18400 2002-12-30  Martin Baulig  <martin@ximian.com>
18401
18402         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18403
18404 2002-12-30  Martin Baulig  <martin@ximian.com>
18405
18406         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18407         line number table in this data blob instead of using an external
18408         pointer.
18409
18410 2002-12-28  Martin Baulig  <martin@ximian.com>
18411
18412         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18413
18414 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18415
18416         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18417         as a boxed return type.
18418
18419 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18420
18421         * appdomain.c
18422         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18423         g_build_filename to properly get separators on the filename created.
18424
18425         * object.h: Small change, introduce MonoMarshalByRefObject to
18426         track the layout of that structure in the C# universe as we make
18427         changes there.
18428
18429 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18430
18431         * object.c: removed assert to allow static fields on interfaces.
18432         * loader.c: a TypeSpec may be used for any type, not just arrays.
18433
18434 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18435
18436         * class.c, class.h: added mono_class_array_element_size ().
18437         Ignore static methods in interfaces.
18438
18439 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18440
18441         * threads.c: fixed the build under cygwin.
18442
18443 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18444
18445         * reflection.c: handle nullref constants. Allocate keys for
18446         reflection handles with the GC.
18447
18448 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18449
18450         * threads.c, threads.h: added mono_thread_get_abort_signal()
18451         to get a suitable signal for thread abort.
18452
18453 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18454
18455         * metadata.c: fix handling of ExportedType table.
18456
18457 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18458
18459         * icall.c: added WriteWindowsDebugString internal call.
18460
18461 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18462
18463         * reflection.h: added fields to match C# implementation.
18464
18465 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18466
18467         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18468
18469 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18470
18471         * gc.h, gc-internal.h: Rename header for GC internal calls to
18472         gc-internal.h from gc.h as to not clash with Boehm GC having its
18473         header installed as <gc.h> in outside include paths.
18474         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18475         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18476
18477 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18478
18479         * icall.c: assign minor, build and revision in FillName.
18480
18481 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18482
18483         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18484         Added support for running code generated by Reflection.Emit.
18485
18486 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18487
18488         * appdomain.c: check for NULL argument in LoadFrom.
18489
18490 2002-12-10  Dick Porter  <dick@ximian.com>
18491
18492         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18493
18494 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18495
18496         * appdomain.c: fix buglet when building exe file name.  Handle full
18497         assembly name (needed after latest changes to AssemblyName).
18498         * image.c:
18499         (mono_image_close): free some hashtables.
18500
18501 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18502
18503         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18504         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18505         on some systems (redhat 7.3) 
18506
18507 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18508
18509         * threads.c: delete the critical section of a sync block,
18510         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18511
18512 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18513
18514         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18515
18516 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18517
18518         * appdomain.[ch]: handle the assembly preload event to try loading the
18519         assemblies using the paths we have in the current domain.
18520
18521         * assembly.[ch]: created an assembly preload hook that is called to try
18522         loading the assembly by other means that the ones provided here.
18523
18524         * domain.c: initialize the domain search path.
18525
18526         From now on, assemblies (TODO: except corlib and System) are loaded
18527         according to these rules when using mono_assembly_load ():
18528
18529                 1. It tries to load the assembly from the ApplicationBase
18530                 of the current domain appending .dll and .exe (TODO: have to
18531                 try loading from name/name.dll and name/name.exe).
18532
18533                 2. It tries the search path specified in PrivateBinPath for the
18534                 current domain (if any).
18535
18536                 3. Previous behavior.
18537
18538 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18539
18540         * icall.c: implemented GetInterfaceMap() related icall.
18541         * domain.c, loader.h: load MethodInfo in mono_defaults.
18542
18543 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18544
18545         * gc.c: disable the finalizer thread for now, untill all the issues
18546         with it are resolved.
18547
18548 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18549
18550         * string-icalls.c: handle embedded nulls in string ctor when the
18551         length is specified.
18552
18553 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18554
18555         * class.c: look for explicit interface implementation in parent
18556         classes, too.
18557
18558 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18559
18560         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18561
18562 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18563
18564         * gc.c: protect handles with a critical section.
18565
18566 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18567
18568         * icall.c:
18569         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18570         parameters. If no assembly specified, try getting the type from all
18571         the assemblies in the current domain, else, load the assembly and get
18572         the type from it.
18573
18574 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18575
18576         * marshal.c: applied patch from Aleksey Demakov that fixes
18577         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18578
18579 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18580
18581         * icall.c: fixed get_location.
18582
18583 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18584
18585         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18586         declarations to make it work with older gcc. 
18587
18588         * loader.c (mono_get_method): set signature->pinvoke for native calls
18589
18590 2002-11-20  Dick Porter  <dick@ximian.com>
18591
18592         * threads.c (mono_thread_init): Set the main thread's handle
18593
18594 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18595
18596         * gc.c: allow compilation without GC support. Changed to match the
18597         mono coding style.
18598
18599 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18600
18601         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18602
18603 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18604
18605         * reflection.c: set a public key token on the core assemblies.
18606
18607 2002-11-18  Dick Porter  <dick@ximian.com>
18608
18609         * threads.c: Split out some thread initialisation so that other
18610         files can set the start callback function.
18611
18612         * gc.c: Run finalisers in a separate thread, to avoid stack
18613         overflow.  Fixes bug 31333.
18614
18615         * appdomain.c: Set up GC finalisation thread.
18616
18617         * reflection.c: 
18618         * object.c: 
18619         * domain.c: Use gc.h macros for GC_malloc
18620         
18621 2002-11-15  Dick Porter  <dick@ximian.com>
18622
18623         * threadpool.c: 
18624         * threads.c:
18625         * appdomain.c: Removed mono_runtime_init_with_attach(),
18626         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18627         merging the extra parameter with the existing function.  Removed
18628         unneeded code in mono_thread_attach().
18629
18630 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18631
18632         * image.c (mono_image_loaded_by_guid): a method to get loaded
18633         images by guid. 
18634         (load_metadata_ptrs): we store the guid as string.
18635
18636 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18637
18638         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18639
18640         * metadata.c (mono_guid_to_string): imported method form Zoltan
18641         Varga (slightly modified)
18642
18643         * assembly.c (mono_assembly_open): load precompiled code
18644
18645         * loader.h (MonoMethod): we store the method token for use in the
18646         aot compiler. 
18647
18648 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18649
18650         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18651         the hook function called when an assembly is loaded.
18652         
18653         * domain.c: Modified file.
18654         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18655
18656         Fixes bug #33196.
18657
18658 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18659
18660         * reflection.c: Map PEFileKind to the value expected by the WinNT
18661         image loader. 
18662
18663 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18664
18665         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18666         Read until the buffer is filled completely.
18667
18668 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18669
18670         * icall.c: implemented MonoType.InternalGetEvent ().
18671
18672 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18673
18674         * appdomain.c: implemented InitAppDomainSetup. Delayed
18675         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18676         the entry_assembly.
18677
18678         * assembly.c: base_dir is now an absolute path ending with
18679         G_DIR_SEPARATOR.
18680
18681         * icall.c: modified get_location according to the above changes.
18682
18683         * object.c: init AppDomain.SetupInformation for the default domain after
18684         we have the entry assembly.
18685
18686         * domain.c: when unloading a domain, setup = NULL.
18687
18688 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18689
18690         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18691
18692 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18693
18694         * object.h, object.c: introduced mono_object_get_virtual_method ()
18695         to lookup the method invoked on an object when a callvirt is done on
18696         a method.
18697         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18698
18699 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18700
18701         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18702         current domain when loaded an assembly and failed to load it.
18703
18704         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18705
18706 2002-10-31  Dick Porter  <dick@ximian.com>
18707
18708         * icall.c: 
18709         * file-io.h: 
18710         * file-io.c: Return the error status in a parameter, as the
18711         GetLastError() value has long since been blown away if we try and
18712         look it up in a subsequent internal call invocation.  Delete the
18713         GetLastError() internal call, because it's useless.
18714
18715 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18716
18717         * class.[ch]: added cast_class to fix bug 29517
18718
18719 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18720
18721         * marshal.c: create valid IL code in the filter clause:
18722         the new JIT is less forgiving:-)
18723
18724 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18725
18726         * icall.c: removed get_property internal call.
18727
18728 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18729
18730         * appdomain.h domain.c: Added an ID to appdomains.
18731         
18732         * threads.c threads.h icall.c: Implement icall
18733         Thread:GetDomainID(), and remove unused icall 
18734         CurrentThreadDomain_internal.
18735
18736 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18737
18738         * icall.c: Don't recurse through the base types in GetConstructor.
18739         Fixes bug #32063. 
18740
18741 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18742
18743         * mempool.h, mempool.c: added mono_mempool_empty() and
18744         mono_mempool_stats().
18745
18746 2002-10-23  Dick Porter  <dick@ximian.com>
18747
18748         * file-io.c: 
18749         * file-io.h: 
18750         * icall.c: Added MonoIO.GetFileType internal call
18751
18752 2002-10-17  Dick Porter  <dick@ximian.com>
18753
18754         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18755         delegate semaphore before waiting for all threads to finish,
18756         because new threads can also call async delegates.  Fixes bug
18757         32004.
18758
18759         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18760         of 3 seconds, in case another async job is queued.  (This part is
18761         needed because the bug fix reintroduced the 3s exit lag.)  This
18762         makes the mono_runtime_shutdown flag superfluous.
18763
18764 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18765
18766         * reflection.c: include ehader size in method section headers.
18767         Really check for suplicated modules entries.
18768
18769 2002-10-17  Martin Baulig  <martin@gnome.org>
18770
18771         * debug-mono-symfile.c: Added back support for locals.
18772
18773 2002-10-14  Martin Baulig  <martin@gnome.org>
18774
18775         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18776         MONO_TYPE_VOID.
18777
18778 2002-10-14  Martin Baulig  <martin@gnome.org>
18779
18780         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18781         mono_class_get() instead of looking in the class cache. 
18782
18783 2002-10-13  Martin Baulig  <martin@gnome.org>
18784
18785         * debug-mono-symfile.c: Set version number to 28, include the
18786         signature in method names.
18787
18788 2002-10-13  Martin Baulig  <martin@gnome.org>
18789
18790         * debug-mono-symfile.h: Set version number to 27.
18791
18792 2002-10-11  Martin Baulig  <martin@gnome.org>
18793
18794         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18795
18796 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18797
18798         * metadata.c, metadata.h: added helper function to allocate signatures.
18799
18800 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18801
18802         * icall.c: added internal call to get the location of machine.config.
18803
18804 2002-10-08  Martin Baulig  <martin@gnome.org>
18805
18806         * debug-mono-symfile.c: Ignore classes with a pending init for the
18807         moment.
18808
18809 2002-10-03  Dick Porter  <dick@ximian.com>
18810
18811         * threads.c: Freebsd pthread_t is a pointer
18812
18813 2002-10-03  Dick Porter  <dick@ximian.com>
18814
18815         * socket-io.c: Implemented GetHostName_internal
18816
18817 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18818
18819         * mono-config.c:
18820         (mono_config_parse_file): don't leak the text.
18821
18822 2002-10-02  Martin Baulig  <martin@gnome.org>
18823
18824         * debug-mono-symfile.c: Added support for methods.
18825
18826 2002-10-01  Martin Baulig  <martin@gnome.org>
18827
18828         * debug-mono-symfile.c: Don't emit methods and line numbers for
18829         the dynamic symbol file, just write the type table.  We can easily
18830         have an external helper program which creates a symbol file for an
18831         IL file.        
18832
18833 2002-10-01  Dick Porter  <dick@ximian.com>
18834
18835         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18836         Only add the handle to the cleanup array when we're about to
18837         launch the thread.  Bug 31425 deadlocked when the test was run on
18838         mono under w32.
18839
18840 2002-10-01  Martin Baulig  <martin@gnome.org>
18841
18842         * debug-mono-symfile.c: Added support for properties.
18843
18844 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18845
18846         * reflection.c: unaligned store fix from Mark Crichton
18847         <crichton@gimp.org>.
18848
18849 2002-09-27  Martin Baulig  <martin@gnome.org>
18850
18851         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18852         New interncall.
18853
18854 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18855
18856         * assembly.h, assembly.c: use a sane API to hook into the assembly
18857         loading process instead of a useless special-purpouse hack
18858         (ngen needs a hook, too, for example).
18859
18860 2002-09-27  Dick Porter  <dick@ximian.com>
18861
18862         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18863         io-layer can set up some process handle info.  Not needed on w32,
18864         but doesn't hurt either.
18865
18866         * process.c: Pass the program name in the second parameter to
18867         CreateProcess, so the path is searched.  Include the working
18868         directory. Implemented process name, process enumeration, and some
18869         process detail internal calls.
18870         
18871         * icall.c: Added internal calls for process lookup, and some
18872         process details
18873
18874 2002-09-26  Martin Baulig  <martin@gnome.org>
18875
18876         * assembly.c (mono_install_open_assembly_hook): New global
18877         function to install a function to be invoked each time a new
18878         assembly is loaded.
18879         (mono_assembly_open): Run this callback function if set.
18880
18881         * debug-mono-symfile.c: Put back line numbers for the dynamic
18882         symbol file and also record the .il file as source file.  This
18883         allows us to install the temporary symbol file as `file.dbg' just
18884         like a compiler-generated one.
18885
18886 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18887
18888         * Corrected typo in gc.c (BOHEM vs BOEHM).
18889
18890 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18891
18892         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18893         GetProperties. Also avoid calling g_slist_length in GetProperties and
18894         GetMethods.
18895
18896 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18897
18898         * reflection.c: avoid unaligned stores (bug spotted by
18899         Mark Crichton  <crichton@gimp.org>).
18900
18901 2002-09-25  Martin Baulig  <martin@gnome.org>
18902
18903         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18904         instead of guint64 for addresses and added prologue/epilogue info.
18905
18906 2002-09-25  Martin Baulig  <martin@gnome.org>
18907
18908         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18909         store line number info.  For the dynamic symbol file, we only need
18910         to provide the JIT generated dynamic line number info for the dynamic
18911         symbol file.
18912
18913 2002-09-25  Martin Baulig  <martin@gnome.org>
18914
18915         * debug-mono-symfile.h: Incremented version number.
18916
18917 2002-09-24  Martin Baulig  <martin@gnome.org>
18918
18919         * class.c (mono_debugger_class_init_func): New global function
18920         pointer variable.
18921         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18922         call it.
18923
18924         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18925         function.  This is called via the mono_debugger_class_init_func
18926         hook to add all types to the dynamic type table.
18927         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18928         from its metadata token.
18929
18930         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18931         New interncall for the debugger.
18932
18933 2002-09-24  Nick Drochak <ndrochak@gol.com>
18934
18935         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18936         before using it in case it is null.
18937         
18938 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18939
18940         * metadata.c: allow custom modifiers in local var signatures
18941         (bug spotted by Zoltan Varga).
18942
18943 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18944
18945         * class.c: deal with the <Module> class that may have a NULL vtable.
18946         Eliminate warnings.
18947
18948 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18949
18950         * image.c, image.h: more strong name helpers.
18951         * monosn.c: more work: convert pem keys to cryptoapi format.
18952
18953 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18954
18955         * string-icalls.c: speedup IndexOf.
18956
18957 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18958
18959         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18960
18961 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18962
18963         * icall.c: cleanup: use mono_object_domain ().
18964
18965 2002-09-23  Martin Baulig  <martin@gnome.org>
18966
18967         * debug-mono-symfile.c: Improved type support.
18968
18969 2002-09-22  Martin Baulig  <martin@gnome.org>
18970
18971         * debug-mono-symfile.c: Added support for reference types and strings.
18972
18973 2002-09-22  Martin Baulig  <martin@gnome.org>
18974
18975         * debug-mono-symfile.c: Started to work on the type table.
18976
18977 2002-09-21  Martin Baulig  <martin@gnome.org>
18978
18979         * debug-mono-symfile.c: Largely reworked the symbol table format.
18980         The symbol table is now incrementally updated each time a new
18981         method is added.  We're now also using our own magic and version
18982         so that you don't need to recompile all your classes if the
18983         dynamic table changes.
18984         (mono_debug_update_mono_symbol_file): Removed.
18985         (mono_debug_symfile_add_method): New function to add a method.
18986
18987 2002-09-21  Martin Baulig  <martin@gnome.org>
18988
18989         * icall.c
18990         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18991         New interncall.
18992
18993         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18994         New interncall to get a method from its metadata token.
18995
18996 2002-09-21  Martin Baulig  <martin@gnome.org>
18997
18998         * debug-mono-symfile.c: Create type table.
18999
19000 2002-09-20  Martin Baulig  <martin@gnome.org>
19001
19002         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19003
19004 2002-09-20  Martin Baulig  <martin@gnome.org>
19005
19006         * debug-mono-symfile.c: Provide information about params and locals.
19007
19008 2002-09-20  Martin Baulig  <martin@gnome.org>
19009
19010         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19011         New interncall.
19012
19013         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19014         interncall to get a method from its metadata token.
19015
19016 2002-09-20  Martin Baulig  <martin@gnome.org>
19017
19018         * debug-mono-symfile.c: Added a few checks for method->header
19019         being non-NULL.  This should never happen, but for the moment
19020         let's use a g_warning() rather than a g_assert().
19021
19022 2002-09-19  Mark Crichton  <crichton@gimp.org>
19023
19024         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19025         even if support for it isn't present.  Added an #ifdef to fix this.
19026
19027         * socket-io.c: Added checks back for Solaris support.
19028
19029 2002-09-19  Martin Baulig  <martin@gnome.org>
19030
19031         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19032         changes in the symbol file format.
19033
19034 2002-09-18  Martin Baulig  <martin@gnome.org>
19035
19036         * debug-mono-symfile.c: Set version number to 21.
19037
19038 2002-09-18  Dick Porter  <dick@ximian.com>
19039
19040         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19041         on netbsd.  Fixes bug 30051.
19042
19043 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19044
19045         * reflection.c:
19046         (set_version_from_string): little fix.
19047
19048 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19049
19050         * monosn.c, Makefile.am: added strong name utility.
19051         * reflection.h, reflection.c: implemented delayed signing,
19052         locale, version and hash id assembly attributes.
19053
19054 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19055
19056         * loader.c, metadata.c: load param attributes in signatures.
19057
19058 2002-09-16  Martin Baulig  <martin@gnome.org>
19059
19060         * debug-mono-symfile.c: Added string table with all method names.
19061
19062 2002-09-14  Martin Baulig  <martin@gnome.org>
19063
19064         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19065         fast method lookup.
19066
19067 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19068
19069         * reflection.c: record the public key token of referenced assemblies.
19070
19071 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19072
19073         * image.c, image.h: added functions to get the strong name and the
19074         public key of an assembly.
19075         * pedump.c: use them.
19076
19077 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19078
19079         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19080
19081 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19082
19083         * marshal.c (mono_marshal_get_managed_wrapper): Added
19084         MONO_TYPE_BOOLEAN 
19085
19086 2002-09-11  Martin Baulig  <martin@gnome.org>
19087
19088         * gc.c: Call GC_unregister_disappearing_link() on all links when
19089         finalizing them, this is necessary to aviod a crash in boehm's
19090         finalize handler.
19091
19092 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19093
19094         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19095         nick@chemlab.org.
19096
19097 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19098
19099         * icall.c: implemented MonoType::Module.
19100         * reflection.c, reflection.h: mono_module_get_object () from
19101         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19102
19103 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19104
19105         * icall.c: ignore overridden methods in GetMethods ().
19106         Fix for FieldInfo::SetValue().
19107         * object.c: handle float/double in runtime invoke.
19108
19109 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19110
19111         * object.c: allow a constructor to be called again on an object.
19112
19113 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19114
19115         * class.h, class.c: move field layout code to it's own function and
19116         export it. Get an interface id earlier. Move fields in MonoClass
19117         so they are more cache friendly and align the bitfields.
19118         * loader.c: temporary handle get_param_names() for a runtime method.
19119         * reflection.c, reflection.h: more code to handle runtime creation of
19120         types.
19121
19122 2002-09-09  Martin Baulig  <martin@gnome.org>
19123
19124         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19125         signature with the pinvoke field being set for the actual call.
19126
19127 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19128
19129         * icall.c: removed some unused icalls. Start of map of glib charsets
19130         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19131
19132 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19133
19134         * debug-helpers.c: break infinite loop (found and fixed by
19135         Holger Arnold <harnold@gmx.de>).
19136
19137 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19138
19139         * icall.c: target may be null in create_delegate.
19140
19141 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19142
19143         * marshal.c: handle a boolean return type.
19144
19145 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19146
19147         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19148
19149 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19150
19151         * gc.c: fix weakreferences.
19152
19153 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19154
19155         * icall.c: added icall to get default codepage.
19156
19157 2002-09-03  Dick Porter  <dick@ximian.com>
19158
19159         * threads.h: 
19160         * threads.c: Use MonoThread instead of MonoObject where
19161         apropriate.
19162
19163         Store running thread objects in a hash table, so that we have all
19164         the info to hand when waiting for them to finish
19165         (means we don't need OpenThread() any more, so mingw builds should
19166         be fully functional again.)
19167
19168         * verify.c:
19169         * object.h: Added thread ID to MonoThread
19170
19171 2002-09-03  Martin Baulig  <martin@gnome.org>
19172
19173         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19174
19175 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19176
19177         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19178
19179 2002-09-03  Martin Baulig  <martin@gnome.org>
19180
19181         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19182         argument to store the end address of the disassembled instruction.
19183
19184         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19185         here from debug-symfile.h.
19186         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19187         JIT into this struct.
19188         (MonoSymbolFile): Added `char *image_file' field.
19189         (MonoDebugGetMethodFunc): Removed.
19190         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19191         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19192         (mono_debug_find_method): New method.
19193
19194         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19195         create a full symbol file.
19196         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19197         and static symbol files.
19198         (mono_debug_find_method): The symbol file keeps an internal method hash,
19199         call this to get a MonoDebugMethodInfo from a MonoMethod.
19200
19201         * debug-symfile.[ch]: Removed.
19202
19203 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19204
19205         * image.c (do_mono_image_open): Remove linker version check.
19206
19207 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19208
19209         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19210         wrappers for instance methods.
19211         
19212 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19213
19214         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19215
19216 2002-08-28  Dick Porter  <dick@ximian.com>
19217
19218         * Makefile.am: Export HOST_CC for w32 builds
19219
19220 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19221
19222         * file-io.c process.c: MonoString are null terminated, no
19223         need for mono_string_to_utf16() anymore.
19224
19225 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19226
19227         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19228
19229 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19230
19231         * icall.c, reflection.h: speedup System.MonoType.
19232
19233 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19234
19235         * reflection.c: allow null as the value of a string argument in
19236         custom attributes constructors.
19237
19238 2002-08-27  Martin Baulig  <martin@gnome.org>
19239
19240         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19241         `trampoline_address' field.
19242
19243 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19244
19245         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19246         check (fixes bug #29486) 
19247
19248 2002-08-27  Martin Baulig  <martin@gnome.org>
19249
19250         * debug-mono-symfile.c: Changed the file format in a way that allows us
19251         open it read-only and to use a specially malloced area for all the
19252         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19253         debugging IL code and there is no MCS generated symbol file for it.
19254
19255 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19256
19257         * object.c: added a define for a good string and array
19258         creation speedup (not enabled by default because we need to deal with
19259         the synch stuff).
19260
19261 2002-08-26  Martin Baulig  <martin@gnome.org>
19262
19263         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19264         function to create a dynamic symbol file.  This is used by the
19265         debugger to create a symbol file for IL code on-the-fly.
19266
19267 2002-08-26  Martin Baulig  <martin@gnome.org>
19268
19269         * loader.c (mono_lookup_pinvoke_call): Include the error message
19270         from g_module_error() in the error message.
19271
19272 2002-08-24  Martin Baulig  <martin@gnome.org>
19273
19274         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19275         function to update the symbol file.  The symbol file is mmap()ed
19276         writable, but private.  This allows us to install the symbol file
19277         together with the assembly.
19278
19279 2002-08-24  Martin Baulig  <martin@gnome.org>
19280
19281         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19282         but they can read the new symbol file format which mcs is now creating.
19283
19284         * debug-symfile.c (mono_debug_find_source_location): Moved to
19285         debug-mono-symfile.c; this is now operating on the new symbol file.
19286
19287 2002-08-23  Martin Baulig  <martin@gnome.org>
19288
19289         * debug-helpers.c (mono_method_desc_from_method): New function to get
19290         a MonoMethodDesc from a MonoMethod.
19291
19292 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19293
19294         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19295         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19296
19297 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19298
19299         * string-icalls.[ch]: make helper methods static.
19300
19301 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19302
19303         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19304         types to it and to SetValueInternal.
19305
19306         * object.c: Moved handle_enum label to its proper place. This was the
19307         f... bug! ;-)
19308
19309         This time i compiled mcs and gtk-sharp and they both work.
19310
19311 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19312
19313         * icall.c: reverted partially my previous patch until 
19314         object.c:set_value handles enums correcly.
19315
19316 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19317
19318         * icall.c:
19319         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19320         (ves_icall_System_Environment_get_MachineName): removed warning when
19321         compiling under cygwin.
19322
19323 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19324
19325         * object.c: fixed field_get_value() for reference types.
19326
19327 2002-08-22  Dick Porter  <dick@ximian.com>
19328
19329         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19330         Don't free a buffer while it's still needed.  Patch from Jonathan
19331         Liger <Jonathan.liger@wanadoo.fr>
19332
19333 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19334
19335         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19336         internal call.
19337
19338 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19339
19340         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19341         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19342
19343         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19344         we call unmanaged code which throws exceptions.
19345
19346 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19347
19348         * appdomain.h: added per-domain entry_assembly.
19349         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19350         arguments.
19351         * icall.c: Assembly::GetEntryAssembly icall.
19352         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19353         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19354
19355 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19356
19357         * appdomain.h, gc.c: added mono_domain_finalize ().
19358
19359 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19360
19361         * object.c:
19362         (mono_print_unhandled_exception): changed g_warning by g_printerr
19363         because g_log has a 1024 characters limit (yeah, i got a big stack
19364         trace). Don't print exception name, that should be in ToString 
19365         returned string.
19366
19367 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19368
19369         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19370         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19371
19372 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19373
19374         * object.c:
19375         (mono_print_unhandled_exception): after previous commit, i realized
19376         that MS calls ToString on the exception. I changed this function to
19377         do that. This way we get stack_trace for free.
19378
19379 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19380
19381         * object.c:
19382         (mono_print_unhandled_exception): invoke Message property instead of
19383         getting 'message' field from Exception. Don't allocate memory for
19384         'trace' and 'message' if not needed.
19385
19386 2002-08-18  Dick Porter  <dick@ximian.com>
19387
19388         * unicode.c: Fix asserts to match Encoder.cs checks
19389
19390 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19391
19392         * marshal.c: fix unaligned store issue and a few wrong
19393         opcode argument types.
19394
19395 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19396
19397         * icall.c: added GetUninitializedObjectInternal internal call.
19398
19399 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19400
19401         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19402         to the right domain.
19403
19404 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19405
19406         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19407
19408         * class.c (class_compute_field_layout): set blittable to false for Strings
19409
19410         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19411
19412 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19413
19414         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19415         first chunk of code to create types at runtime. Code to
19416         handle ReflectedType/DeclaringType. Make reflection handles
19417         domain specific.
19418
19419 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19420
19421         * class.c: set correct name in arrays.
19422
19423 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19424
19425         * appdomain.c (mono_domain_transfer_object): make it work with
19426         valuetypes. bug fixes.
19427
19428 2002-08-12  Dick Porter  <dick@ximian.com>
19429
19430         * object.h: Rename some parameters to avoid c++ keywords (Patch
19431         from Joseph Wenninger <kde@jowenn.at>)
19432
19433 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19434
19435         * icall.c: added icall to implement Assembly.GetFile*.
19436
19437 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19438
19439         * reflection.h, reflection.c: code to embed managed resources.
19440
19441 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19442
19443         * class.c: move all the type size stuff into
19444         class_compute_field_layout().
19445
19446 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19447
19448         * class.c: ensure enums have always the correct instance size.
19449         * unicode.c: remove wrong assert.
19450
19451 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19452
19453         * assembly.c: fix mem corruption issue.
19454         * image.h, image.c: added mono_image_get_resource () to access
19455         managed resources.
19456         * icall.c: implemented Assembly.EntryPoint property and some
19457         Managed Resources related internalcalls.
19458
19459
19460 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19461
19462         * image.c, image.h: impemented mono_image_get_entry_point ().
19463         * appdomain.c: use mono_image_get_entry_point.
19464
19465 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19466
19467         * reflection.c: support the object type argument when loading
19468         custom attributes.
19469
19470 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19471
19472         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19473         String as return type.
19474
19475 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19476
19477         * reflection.c: fix encoding of named args for custom attrs to match
19478         the ms implementation. Read them back when instantiating custom
19479         attributes.
19480
19481 2002-08-02  Radek Doulik  <rodo@ximian.com>
19482
19483         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19484         by Dietmar as quick fix
19485         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19486         16 as stack size, used on more places as quick fix before Dietmar
19487         will fix it properly
19488
19489 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19490
19491         * object.h, object.c: added accessors for fields and properties.
19492
19493 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19494
19495         * class.c, class.h: made mono_class_get_field_from_name ()
19496         loop on parent types.
19497         Added mono_class_get_property_from_name ().
19498
19499 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19500
19501         * class.c, class.h: move the code to setup the type vtable in its own
19502         function so that it can be reused also for types created at runtime.
19503         Eliminate the "class" identifier from the header file.
19504         * reflection.c: setup the vtable for enums so that we can create
19505         objects for use in SetConstant ().
19506
19507 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19508
19509         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19510         instead of the delegate itself as this pointer (bug #28383)
19511
19512 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19513
19514         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19515         conversions.
19516
19517 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19518
19519         * loader.c: don't set the pinvoke bit on icalls.
19520
19521 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19522
19523         * debug-helpers.c (mono_method_full_name): only print a number to
19524         indicate wrapper type (so that the output is more readable in traces).
19525
19526 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19527
19528         * class.c (mono_class_init): include method override patch from Paolo
19529
19530 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19531
19532         * icall.c: fixed GetTypeCode().
19533
19534 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19535
19536         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19537         use real delegate invoke function to make it work with multicast
19538         delegates (fix bug# 28291).
19539
19540 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19541
19542         * object.c: load constant strings.
19543
19544 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19545
19546         * reflection.c: no magic numbers.
19547         * tabledefs.h: security action enum.
19548
19549 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19550
19551         * assembly.c: fix possible memory corruption.
19552
19553 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19554
19555         * reflection.h, reflection.c: added support for linking resources.
19556         * verify.c: check we have an updated corlib.
19557
19558 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19559
19560         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19561         string arrays.
19562         (mono_marshal_string_array): null terminate unmanaged string arrays.
19563         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19564
19565 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19566
19567         * icall.c: Type.GetType () can now return also types from the
19568         calling assembly.
19569
19570 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19571
19572         * loader.h, loader.c: stack walking support.
19573         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19574         GetCallingAssembly.
19575
19576 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19577
19578         * marshal.c: added optimisations for blittable types 
19579
19580         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19581         (mono_class_setup_mono_type): set blittable attribute for single
19582         and double.
19583
19584         * marshal.c (mono_string_utf8_to_builder): impl.
19585         (mono_string_builder_to_utf8): impl.
19586         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19587
19588 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19589
19590         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19591         (mono_marshal_get_managed_wrapper): impl. byref types
19592
19593 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19594
19595         * icall.c:
19596         (search_method): don't display debug message. 
19597
19598 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19599
19600         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19601
19602 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19603
19604         * appdomain.c: set the missing filename when throwing exception.
19605
19606 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19607
19608         * metadata.c (mono_type_size): code cleanup
19609         (mono_type_stack_size): removed some test code
19610
19611 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19612
19613         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19614         mono_get_exception_file_not_found now.
19615
19616         * exception.c (mono_exception_from_name_two_strings): New version
19617         that will call a constructor with two string arguments. 
19618         (mono_get_exception_file_not_found): New helper routine, used to
19619         report file-not-found errors.
19620
19621 2002-07-20  Dick Porter  <dick@ximian.com>
19622
19623         * process.h:
19624         * process.c: Pass file handles to CreateProcess
19625         
19626         * icall.c:
19627         * file-io.h:
19628         * file-io.c: Implemented CreatePipe
19629
19630 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19631
19632         * metadata.c (mono_get_param_info): set alignment for value types
19633
19634 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19635
19636         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19637         Constify mono_domain_assembly_open().
19638         * loader.c: handle null namespace in icalls.
19639
19640 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19641
19642         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19643         (emit_str_to_ptr_conv): marshal object as structs
19644
19645         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19646
19647         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19648
19649 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19650
19651         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19652         (mono_marshal_get_native_wrapper): we an now return value types
19653
19654 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19655
19656         * verify.c: more checks implemented.
19657
19658 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19659
19660         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19661         (fix bug #27695)
19662         (mono_marshal_get_native_wrapper): allow byref arguments
19663         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19664         impl. PtrToStringXXX methods
19665         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19666         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19667         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19668         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19669         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19670
19671 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19672
19673         * reflection.c: fix buglet in parsing an assembly name.
19674
19675 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19676
19677         * marshal.c (emit_ptr_to_str_conv): first impl.
19678
19679 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19680
19681         * object.c, class.h: cache the vtable in the class as suggested by
19682         vargaz@freemail.hu (Zoltan Varga).
19683
19684 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19685
19686         * class.h, loader.c: added mono_field_from_token().
19687         * verify.c: first cut of type checking code.
19688
19689 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19690
19691         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19692
19693 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19694
19695         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19696         (fix bug #27782)
19697         (mono_marshal_get_remoting_invoke): impl.
19698         (mono_delegate_begin_invoke): impl.
19699         (mono_mb_emit_save_args): impl.
19700         (mono_delegate_end_invoke): impl.
19701         (mono_marshal_get_delegate_begin_invoke):
19702         (mono_marshal_get_delegate_end_invoke):
19703         (mono_marshal_get_delegate_invoke): generate a special name for
19704         those methods (including the signature) and associate them whith
19705         the delegate class. 
19706
19707 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19708
19709         * reflection.[ch]: 
19710         (mono_reflection_type_from_name): now it has a MonoImage parameter
19711         which is used as the default image to search the type in. If the image
19712         is NULL or getting the type from it fails, it defaults to corlib.
19713
19714         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19715         new parameter.
19716
19717 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19718
19719         * reflection.c: update the parameter table index.
19720
19721 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19722
19723         * domain.c: don't include the mark byte in the string hash.
19724
19725 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19726
19727         * icall.cs: icall for Type.GetTypeCode ().
19728         * verify: a couple of fixes and disabled local initialization checks.
19729
19730 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19731
19732         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19733
19734         * debug-helpers.c (mono_method_full_name): print the type of the
19735         runtime wrapper
19736
19737         * metadata.c (mono_signature_hash): a hash function for signatures
19738         (mono_signature_hash): better hash algorithm
19739
19740         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19741
19742         * debug-helpers.c (mono_method_full_name): this can now generate
19743         method names with signatures
19744
19745         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19746         method dont have this pointers.
19747
19748 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19749
19750         * reflection.c: fixup typebuilder tokens.
19751         * image.c: fix buglet.
19752         * marshal.h: remove whitespace.
19753         * metadata.h, metadata.c: reinstate code that was removed.
19754         * verify.c: handle catch directives and fix another couple of bugs.
19755
19756 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19757
19758         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19759         (mono_marshal_get_native_wrapper): make it comp. with the old code
19760         (mono_marshal_get_native_wrapper): support boolean
19761         (mono_marshal_get_managed_wrapper): support more types
19762
19763 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19764
19765         * class.c (class_compute_field_layout): compute class->blittable attribute.
19766
19767 2002-07-09  Dick Porter  <dick@ximian.com>
19768
19769         * threads.c: Make the thread cleaning up cope with threads that
19770         call ExitThread()
19771
19772 2002-07-08  Radek Doulik  <rodo@ximian.com>
19773
19774         * reflection.c (method_encode_code): use non-translated values to
19775         compute finally_start, this fixes exception handling on ppc, yay!
19776
19777         * decimal.h (struct signscale): fix endianess
19778
19779 2002-07-07  Radek Doulik  <rodo@ximian.com>
19780
19781         * reflection.c: swap box_val and not val
19782
19783 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19784
19785         * reflection.c, reflection.h: handle full assembly info in type name.
19786         Handle Type arguments when loading custom attributes.
19787         * icall.c: updated to use new mono_reflection_type_from_name () method.
19788
19789 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19790
19791         * loader.c:
19792         (method_from_memberref): also print assembly name when method not found.
19793
19794 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19795
19796         * icall.c:
19797         (ves_icall_TypeGetProperties): fixed bug #27473. 
19798
19799 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19800
19801         * reflection.c: display image name and token when cannot find the
19802         .ctor for an attribute.
19803
19804 2002-07-05  Martin Baulig  <martin@gnome.org>
19805
19806         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19807
19808 2002-07-04  Dick Porter  <dick@ximian.com>
19809
19810         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19811         compile on mingw.  This will cause mingw builds to not wait for
19812         subthreads to terminate after the main thread does.  I've lodged a
19813         bug with the mingw developers for them to wrap OpenThread().
19814
19815 2002-07-03  Dick Porter  <dick@ximian.com>
19816
19817         * threads.c: Store thread IDs instead of handles, because
19818         GetCurrentThread() returns a pseudohandle and therefore stores
19819         useless values.  mono_thread_cleanup() continues checking the
19820         array of threads until it is empty, to cope with subthreads
19821         spawning new threads after the main thread has finished.
19822
19823         * profiler.h:
19824         * profiler.c:
19825         * profiler-private.h: Pass the thread ID to thread profiler
19826         functions, instead of a handle
19827
19828 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19829
19830         * verify.c: fixes to make it more usable.
19831         * pedump.c: added --verify code to verify IL code in an assembly.
19832
19833 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19834
19835         * reflection.c: turn errors into warnings to allow compiling corlib.
19836
19837 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19838
19839         * reflection.c: add special cases to compile corlib.
19840
19841 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19842
19843         * reflection.c: handle properties with only a set method.
19844
19845 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19846
19847         * opcodes.h: add enum with opcodes in opval order.
19848
19849 2002-07-01  Dick Porter  <dick@ximian.com>
19850         
19851         * object.h:
19852         * object.c (mono_runtime_run_main): Removed unneeded argument
19853
19854 2002-06-28  Martin Baulig  <martin@gnome.org>
19855
19856         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19857
19858 2002-06-27  Dick Porter  <dick@ximian.com>
19859
19860         * threads.c: Store the handle in both the parent thread and in the
19861         subthread, to minimise the time between starting a new thread and
19862         storing its ID.
19863
19864 2002-06-26  Dick Porter  <dick@ximian.com>
19865
19866         * appdomain.c (mono_runtime_cleanup): Close the socket library
19867         after all the threads have finished, not before
19868
19869 2002-06-26  Martin Baulig  <martin@gnome.org>
19870
19871         * debug-symfile.c (mono_debug_find_source_location): Added
19872         `guint32 *line_number' argument.  If it's not NULL, store the line number
19873         there and return the file name without the line number.
19874
19875 2002-06-25  Dick Porter  <dick@ximian.com>
19876
19877         * icall.c:
19878         * process.h:
19879         * process.c: Process forking and other support functions
19880
19881 2002-06-25  Dick Porter  <dick@ximian.com>
19882
19883         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19884         things dont happen when the image is closed.
19885         (mono_image_lookup_resource): Walk the resource section looking
19886         for a particular entry
19887
19888         * cil-coff.h: PE resource section decoding
19889
19890 2002-06-25  Dick Porter  <dick@ximian.com>
19891         
19892         * assembly.h:
19893         * assembly.c: 
19894         (mono_assembly_foreach): Accessor functions to walk the list of
19895         loaded assemblies
19896         (mono_assembly_set_main):
19897         (mono_assembly_get_main): Process methods need to know which
19898         assembly is the "main" one
19899
19900         * object.c (mono_runtime_run_main): Record the main assembly
19901
19902         * debug-helpers.c: Fix typo
19903
19904 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19905
19906         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19907         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19908
19909 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19910
19911         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19912
19913 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19914
19915         * image.c (do_mono_image_open): Initialize reference count,
19916         otherwise we leak the MonoImage.
19917
19918 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19919
19920         * reflection.c: small tweak to handle self-hosting.
19921
19922 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19923
19924         * reflection.c: fix type name parse code.
19925
19926 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19927
19928         * reflection.c: break out of the loop.
19929         * image.c: special case corlib.
19930
19931 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19932
19933         * reflection.c: add all the custom attrs at the end to ensure the
19934         ctors have been properly initialized when the attributes are defined
19935         in the current assembly.
19936
19937 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19938
19939         * reflection.c: handle correctly multiple-nested types.
19940
19941 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19942
19943         * row-indexes.h: fix typos.
19944         * reflection.c: adjust for typos and fix method_def_or_ref
19945         encoding in MethodImpl table.
19946
19947 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19948
19949         * reflection.c: fix entry point patching (thanks Serge!).
19950
19951 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19952
19953         * verify.c: add check for System.Exception
19954
19955 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19956
19957         * image.c, class.c: minifix for code just c&p'ed.
19958         * reflection.c: warning fix.
19959         * object.h, loader.h, domain.c: load also StringBuilder.
19960
19961 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19962
19963         * marshal.h, marshal.c: some support code to handle complex marshaling.
19964
19965 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19966
19967         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19968         Better signatures with vtable error dump.
19969
19970 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19971
19972         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19973
19974 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19975
19976         * icall.c (ves_icall_Type_GetField): impl.
19977
19978 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19979
19980         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19981         to retrieve a marshal description blob for a field or param.
19982
19983 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19984
19985         * reflection.h, reflection.c: change order of nested type emission
19986         to avoid table corruption. The NestedTypes table is sorted.
19987         * icall.c: change order of GetConstructor results to workaround mcs bug.
19988
19989 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19990
19991         * reflection.h, reflection.c: handle field and param marshal
19992         information.
19993
19994 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19995
19996         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19997
19998 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19999
20000         * reflection.c: fix call convention.
20001
20002 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20003
20004         * reflection.h, reflection.c: mono_image_get_memberref_token()
20005         takes a type instead of a class, now. Added
20006         mono_image_get_array_token() to create tokens for the special
20007         multi-dim array methods.
20008
20009 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20010
20011         * assembly.c: handle modules (no assembly table). Split
20012         loading references in its own function.
20013         * class.c: handle moduleref resolution scope.
20014         * image.c, image.h: cache module name in image.
20015
20016 2002-06-07  Martin Baulig  <martin@gnome.org>
20017
20018         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20019         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20020
20021 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20022
20023         * icall.c: more signature fixes that used uint instead of int.
20024
20025 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20026
20027         * reflection.c: fixed signature of field refs.
20028
20029 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20030
20031         * class.c, reflection.c: handle typerefs of nested types
20032         (both on read and when writing files).
20033
20034 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20035
20036         * icall.c: fix method signatures that tried to workaround the previous
20037         typo, d'oh!
20038
20039 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20040
20041         * debug-helpers.c: fix typo.
20042
20043 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20044
20045         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20046         rewrote the PE/COFF writing code (our programs are understood by the
20047         ms runtime, now).
20048
20049 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20050
20051         * gc.c, gc.h, icall.c: weakreference support.
20052
20053 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20054
20055         * Makefile.am, mono-config.c: use $(sysconfdir).
20056
20057 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20058
20059         * icall.c: changed default precision of Double.ToString() to 15.
20060         Fixed memory leak. Unified with Single.ToString.
20061
20062 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20063
20064         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20065
20066 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20067
20068         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20069         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20070         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20071         and myself.
20072
20073 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20074
20075         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20076
20077 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20078
20079         * reflection.c, socket-io.c: more compilation fixes.
20080
20081 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20082
20083         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20084         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20085         unicode.c: warning and compiler compatibility fixes.
20086
20087 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20088
20089         * class.h, metadata.c: fixed warnings/compilation errors.
20090
20091 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20092
20093         * Makefile.am, mono-config.c, mono-config.h: configuration file
20094         support routines.
20095         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20096         config file. Export methods to insert and lookup mappings.
20097
20098 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20099
20100         * reflection.c: handle types and boxed objects in custom attr
20101         constructors.
20102
20103 2002-05-30  Martin Baulig  <martin@gnome.org>
20104
20105         * debug-symfile.c
20106         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20107
20108 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20109
20110         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20111         to lookup the implmap row for a P/Invoke method.
20112         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20113         P/Invoke method from the runtime on an as needed basis.
20114
20115 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20116
20117         * metadata.c (mono_metadata_parse_signature): impl.
20118
20119 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20120
20121         * class.c: handle .pack directive.
20122
20123 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20124
20125         * object.c: initialize static fields with RVA data.
20126
20127 2002-05-25  Martin Baulig  <martin@gnome.org>
20128
20129         * debug-symfile.c
20130         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20131
20132 2002-05-24  Martin Baulig  <martin@gnome.org>
20133
20134         * debug-symfile.c
20135         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20136         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20137         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20138
20139 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20140
20141         * object.c: special case string ctros in invoke.
20142         * gc.c: silly whitespace changes.
20143
20144 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20145
20146         * threadpool.[ch]: impl. a threadpool that can
20147         be used by mint and mono.
20148
20149 2002-05-22  Martin Baulig  <martin@gnome.org>
20150
20151         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20152         The first argument is now a `MonoReflectionModuleBuilder *', the return
20153         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20154         `methods' field to get the method builder.  The `token' argument is the
20155         unfixed token.
20156
20157         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20158         invalid characters instead of g_assert_not_reached()ing.  This seems
20159         to be the behaviour of mscorlib.
20160
20161 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20162
20163         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20164         Hestilow to fix bug #25104
20165
20166 2002-05-21  Martin Baulig  <martin@gnome.org>
20167
20168         * debug-symfile.c (mono_debug_find_source_location): New function.
20169         Looks up an IL offset in the line number table and returns the source
20170         location as a string.
20171
20172 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20173
20174         * icall.c:
20175         (mono_double_ToStringImpl): changed %f by %g until we have something
20176         better.
20177
20178 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20179
20180         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20181         parameters first in C#.
20182
20183 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20184
20185         * icall.c, reflection.h: added icall to get info about an event.
20186
20187 2002-05-20  Radek Doulik  <rodo@ximian.com>
20188
20189         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20190         endian
20191         (mono_value_box): don't use memcpy for small sizes on
20192         architectures with unaligned access
20193
20194 2002-05-20  Martin Baulig  <martin@gnome.org>
20195
20196         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20197         if `tb->parent == NULL'.
20198         (mono_reflection_create_internal_class): New function.  This is
20199         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20200         for enum types.
20201
20202         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20203         New interncall.
20204
20205 2002-05-19  Martin Baulig  <martin@gnome.org>
20206
20207         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20208         argument to get the length, don't default to the array length.
20209
20210 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20211
20212         * assembly.c (mono_assembly_setrootdir): New function used to
20213         override the MONO_ASSEMBLIES directory.
20214
20215 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20216
20217         * icall.c: ValueType_GetHashCode() initialize local var.
20218
20219 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20220
20221         * reflection.c: sort custom attributes table.
20222
20223 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20224
20225         * reflection.c: support named args in custom attributes (write support).
20226
20227 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20228
20229         * reflection.c: fix finally position calculation.
20230
20231 2002-05-15  Radek Doulik  <rodo@ximian.com>
20232
20233         * reflection.c: fixed endianess at many places
20234
20235         * icall.c (ves_icall_InitializeArray): comment out debug msg
20236
20237 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20238
20239         * object.c (mono_unhandled_exception): new function to handle
20240         unhandled exceptions.
20241         (mono_unhandled_exception): call the UnhandledException event.
20242         (mono_runtime_delegate_invoke): impl.
20243
20244 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20245
20246         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20247         returns the RVA, not the direct pointer to the data. Handle the case
20248         when the class size is fixed.
20249
20250 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20251
20252         * reflection.c: fix some endianess issues.
20253
20254 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20255
20256         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20257
20258         * threads.c (mono_thread_init): added a callback which is invoked
20259         at thread start.
20260
20261 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20262         
20263         * icall.c: make GetHashCode return non-negative values.
20264
20265 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20266
20267         * object.c, icall.c, gc.c: revert to address-based hashcode.
20268
20269 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20270
20271         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20272
20273 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20274
20275         * icall.c, class.c: special case <Module>.
20276
20277 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20278
20279         * icall.c: fix bug in GetNow().
20280
20281 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20282
20283         * object.c (mono_runtime_class_init): make sure that we call all
20284         static class constructors.
20285
20286 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20287
20288         * reflection.c: sort methodsemantics table.
20289
20290 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20291
20292         * reflection.h, reflection.c: honour init locals setting.
20293
20294 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20295
20296         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20297
20298 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20299
20300         * reflection.c: support ContructorBuilders in attribute blob creation.
20301
20302 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20303
20304         * reflection.c: some changes to build a binary that can be run
20305         directly in windows.
20306
20307 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20308
20309         * loader.c: print a big message when an icall can't be found.
20310
20311 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20312
20313         * string-icalls.c: fix bug 24248.
20314
20315 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20316
20317         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20318         icall.c, reflection.h: separate assembly loading by pathname and by
20319         assembly name. Use the MONO_PATH env var to search for assemblies.
20320
20321 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20322
20323         * assembly.c, image.h: add some support for assemblies
20324         with multiple modules.
20325         * class.c, class.h: export mono_class_from_typeref().
20326         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20327         instead.
20328
20329 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20330
20331         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20332         documentation says (the ECMA one is correct).
20333
20334 2002-05-02  Dick Porter  <dick@ximian.com>
20335
20336         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20337         Don't name the synchronisation mutex.
20338
20339 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20340
20341         * rand.c
20342         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20343         Make the prototypes match.
20344         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20345         Same.
20346
20347         * icall.c
20348         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20349         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20350         all systems have tm.tm_zone, so use strftime() with %Z to print
20351         the timezone abreviation into a temp string.
20352
20353         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20354         rather than mono_array_addr() on a MonoString on Big Endian
20355         machines.
20356
20357 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20358
20359         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20360         fix bug 24041
20361
20362 2002-04-30  Dick Porter  <dick@ximian.com>
20363
20364         * socket-io.c: Cope with SOCKET being an integer rather than a
20365         pointer now.
20366
20367         * threads.c: Added Thread_free_internal, to deal with thread
20368         handle cleanup.  Moved calls to handle_store() and handle_remove()
20369         to start_wrapper(), so each can only be called once.  Allocate
20370         synchronisation blocks with GC_malloc(), and use GC finalisation
20371         to close the handles.
20372
20373         * icall.c: added System.Threading.Thread::Thread_free_internal
20374
20375 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20376
20377         * icall.c: support Environment.Exit, CommandLineArgs().
20378
20379 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20380
20381         * object.c, object.h: added mono_runtime_run_main () and
20382         mono_runtime_get_main_args () for use in System.Environment.
20383
20384 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20385
20386         * gc.c: fix thinko, enable actual finalization since the jit is now
20387         fixed.
20388
20389 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20390
20391         * gc.c, object.c: take into account that an object may be offset wrt the address
20392         returned by GC_malloc().
20393
20394 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20395
20396         * image.c: handle files without entries in the assembly table (modules).
20397
20398 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20399
20400         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20401         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20402         allowed to be null when it's System.Object class setup.
20403
20404 2002-04-27  Martin Baulig  <martin@gnome.org>
20405
20406         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20407         if `tb->parent == NULL' rather than crashing.
20408
20409 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20410
20411         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20412         calling acos() where asin() should have been called.
20413
20414 2002-04-26  Martin Baulig  <martin@gnome.org>
20415
20416         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20417         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20418         there's a subdirectory called `System', but we don't want to read that
20419         subdirectory as an assembly.
20420
20421 2002-04-25  Martin Baulig  <martin@gnome.org>
20422
20423         * debug-symfile.c: Reflect latest MonoString changes.
20424
20425 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20426
20427         * rand.c, rand.h: instance method icalls need to have an explicit
20428         this pointer as first argument in the C implementation.
20429
20430 2002-04-25  Nick Drochak <ndrochak@gol.com>
20431
20432         * icall.c: Fix typo in map for GetNonZeroBytes
20433
20434 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20435
20436         * string-icalls.c : String does now passes unit tests without any 
20437         errors, the following changes has been made:
20438         
20439         Implemented replace methods.
20440         Renaming of methods to (try) follow the standard.
20441         Fixed compare ordinal
20442         Made all memory allocated directly to function instead of via icall function.
20443         Small performance fix in is_in_array function
20444                         
20445  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20446
20447         c (mono_string_Internal_ctor_charp_int_int):
20448         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20449         sindex < 0, throw ArgumentOutOfRangeException instead of
20450         ArgumentNullException.
20451
20452         Added new check for length == 0, however
20453         I need to make it return String.Empty from the C code.
20454         
20455         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20456         that calculate the length for us here.
20457         
20458         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20459         mono_string_new_utf16 with mono_string_new, since value is utf8.
20460
20461 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20462
20463         * object.c: register the object for finalization if needed.
20464         Allocate one more char in the string for the terminating 0 char.
20465
20466 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20467
20468         * class.c, class.h, image.c: check if a type implemenst a destructor.
20469         Use the proper key for array class lookups.
20470         * icall.c: register the icalls in the System.GC class.
20471         * gc.c, gc.h: GC-related functions and icalls.
20472
20473 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20474
20475         * icall.c:
20476         * socket-io.c:
20477         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20478         changed a couple of free () by g_free ().
20479
20480         * decimal.c: one-liner in the comments for decimal2string ().
20481
20482 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20483
20484         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20485
20486 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20487
20488         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20489         * object.c (mono_runtime_invoke_array) : handle null in params
20490
20491 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20492
20493         * string-icalls.c: fixed bug in split (one off bug)
20494
20495 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20496
20497         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20498         * icalls.c: added String::Equals as internal method
20499
20500 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20501
20502         * threads.c: fixed bug in the double interlocked functions
20503
20504 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20505
20506         * threads.c: implemented all of the new interlocked icalls.
20507         * string-icalls.c: fix a bug in insert.
20508         * icalls.c: added the icalls for interlocked, removed old string functions.
20509         
20510 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20511
20512         * loader.c: fix off-by-one error when reading argument names.
20513
20514 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20515
20516         * profiler.c: win32 counter implementation (untested).
20517         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20518         (the latter needs testing and more complete impl. from win32 folks).
20519
20520 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20521
20522         * object.c: mono_array_new_full workaround mono_array_class_get
20523         problem.
20524
20525 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20526
20527         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20528         * object.h (mono_string_chars): Changed casting type.
20529
20530 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20531
20532         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20533                            method signatures to use gunichar2 instead of gint16.
20534
20535 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20536
20537         * object.h, object.c: domain-specific versions of mono_object_new and
20538         mono_array_new.
20539
20540 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20541
20542         * object.c: changed String layout
20543
20544         * string-icalls.c (mono_string_Internal_ctor_chara): added
20545         internal string constructors.
20546
20547 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20548
20549         * threads.c: pass 'this' to the thread start routine.
20550
20551 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20552
20553         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20554         InternalCompareStr don't call twice mono_string_cmp_char for the last
20555         character. Improved performance in mono_string_cmp_char.
20556
20557 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20558
20559         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20560         code into its own library: libmonoruntime.
20561
20562 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20563
20564         * object.h, object.c: changed array format so that szarrays do not
20565         require a bounds structure.
20566         * icall.c, appdomain.c: support for new szarray format.
20567
20568 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20569
20570         * metadata.c: compare also the retuns type when comparing signatures:
20571         we didn't do this as an optimization since really overloaded methods
20572         must differ also in the arguments, but this doesn't work with
20573         low-level IL code (or when using explicit conversion operators: see
20574         bug#23498 for an example).
20575
20576 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20577
20578         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20579
20580 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20581
20582         * icall.c: make MonoType::GetElementType its own icall.
20583
20584 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20585
20586         * icall.c: remove MonoMethod_get_Name().
20587         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20588         object.
20589
20590 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20591
20592         * string-icalls.c: optimized a few methods.
20593
20594 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20595
20596         * icall.c: added all new string internal calls
20597         * string-icalls.c: added, new string internal call implementation.
20598         * object.c: added mono_string_new_size for allocating a string a size
20599
20600 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20601
20602         * object.c (mono_object_isinst): use the same code as in the
20603         optimized x86 version.
20604
20605 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20606
20607         * profiler.c: TSC-based timer code (faster and more accurate).
20608         Not hooked up in configure, yet (set USE_X86TSC to 1).
20609
20610 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20611
20612         * profiler.c, profiler.h: track time spent compiling methods.
20613         * threads.c: track thread creation/destruction.
20614
20615 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20616
20617         * profiler.c, profiler.h, profiler-private.h: profiling interface
20618         and sample implementation. Moved here so that it can be used also by
20619         the jit.
20620
20621 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20622
20623         * reflection.c, reflection.h: keep types and other handles separate in
20624         the hash tables for referred tokens. Add guid for modules.
20625
20626 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20627
20628         * assembly.c: fix bugs found with valgrind.
20629         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20630
20631 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20632
20633         * threads: added icall support for getting current domain for
20634                    the thread.
20635  
20636 2002-04-13  Martin Baulig  <martin@gnome.org>
20637
20638         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20639         (MonoDebugVarInfo): Added `index' field for register based addresses.
20640         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20641         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20642         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20643         `MonoDebugVarInfo *this_var'.
20644
20645         * debug-symfile.c (relocate_variable): New static function to write
20646         a location description for a local variable or method parameter.
20647
20648 2002-04-12  Martin Baulig  <martin@gnome.org>
20649
20650         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20651         stack offset and begin/end scope address of a local variable.
20652         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20653         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20654         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20655
20656         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20657         Added new relocation types for start/end scope of a local variable.
20658
20659 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20660
20661         * object.h: add mono_object_domain() macro.
20662         * reflection.c: handle typespecs.
20663         * icall.c: MonoMethod::get_Name() implementation.
20664
20665 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20666
20667         * icall.c: String::GetHashCode() icall implementation.
20668
20669 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20670
20671         * icall.c: String::IndexOfAny icall.
20672         * object.c, object.h: make array->max_length more useful.
20673         Intrduced mono_object_class() and mono_string_length() macros.
20674
20675 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20676
20677         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20678         instead of g_unichar_isdigit.
20679
20680 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20681
20682         * icall.c: Implement a simple Double.ToString().
20683
20684 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20685
20686         * appdomain.h: only io-layer.h is supposed to be included.
20687         * icall.c: explicitly import environ. Fix warning.
20688
20689 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20690
20691         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20692                 return true even if it's not Daylight Savings time.
20693                 Only return false for the case where the function isn't
20694                 implemented for a plaform (read Windows).
20695
20696 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20697
20698         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20699         data with a mutex.
20700
20701 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20702
20703         * mempool.c (mono_mempool_alloc): only use g_malloc when
20704         absolutely necessary.
20705
20706 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20707
20708         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20709
20710         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20711         (mono_class_proxy_vtable): use domain mempool
20712
20713 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20714
20715         * appdomain.h, appdomain.c: split initialization that requires the
20716         execution engine support into mono_runtime_init().
20717
20718 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20719
20720         * class.c (mono_class_init): don't include vtable inside MonoClass
20721         to save some memory, gather some statistics.
20722         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20723
20724 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20725
20726         * icall.c: internalcall implementation for ValueType.Equals().
20727
20728 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20729
20730         * object.c (mono_message_init): moved 
20731         (mono_runtime_exec_main): new arch. independent impl.
20732         (mono_runtime_invoke_array): new method - like
20733         mono_runtime_invoke, but you can pass an array of objects.
20734         (mono_remoting_invoke): new arch. independent impl.
20735         (mono_message_invoke): new arch. independent impl.
20736         (mono_runtime_class_init): new arch. independent impl.
20737         (mono_runtime_object_init): new arch. independent impl.
20738
20739 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20740
20741         * metadata.c, object.c, reflection.c: documented the exported
20742         functions.
20743
20744 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20745
20746         * icall.c: simpler code to pass the assembly builder data to corlib.
20747         Implement GetNestedTypes() internalcall.
20748
20749 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20750
20751         * class.c: warn if a type can't be loaded.
20752
20753 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20754
20755         * image.h: typedef MonoImageOpenStatus
20756         * types.h: removed unused file
20757         
20758 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20759
20760         * icall.c: Enum_ToObject accepts enum value arguments.
20761
20762 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20763
20764         * class.c: move initialization of properties, events and nested
20765         classes, so that they happen for interfaces, too.
20766
20767 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20768
20769         * icall.c: cleanup some ugly casts in Array_SetValue*.
20770
20771 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20772
20773         * icall.c: the values array fro enums is of the correct type, now.
20774         Implement (correctly) getFullName instead of assQualifiedName for
20775         MonoType.
20776         * reflection.h, reflection.c: added mono_type_get_name ().
20777
20778 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20779
20780         * assembly.c, image.h: for each MonoImage, record from wich assembly
20781         it was loaded.
20782         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20783         Make Type.Assembly work.
20784
20785 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20786
20787         * debug-symfile.h: use char* instead of gpointer to avoid
20788         unnecessary casts.
20789
20790         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20791
20792         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20793         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20794
20795 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20796
20797         * icall.c (mono_message_init): impl. (code cleanup)
20798         (ves_icall_InternalExecute): impl. FieldGetter
20799
20800         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20801         defined we call all (non-static)methods through the vtable. 
20802
20803 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20804
20805         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20806         finalizer even though the memory is still referenced (and the chunk of
20807         memory is not freed).
20808
20809 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20810
20811         * assembly.c: fix brokeness.
20812
20813 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20814
20815         * class.c: kill some warnings. Check explicit interface method
20816         implementation also without considering the namespace.
20817         Load also literal strings in static class data.
20818
20819 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20820
20821         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20822         (default_assembly_name_resolver): Make the resolver take the
20823         "base" directory where the assembly was originally defined, so we
20824         can load DLLs that are in the same directory as the assembly that
20825         is being referenced.
20826
20827 2002-03-28  Dick Porter  <dick@ximian.com>
20828
20829         * file-io.h: 
20830         * file-io.c:
20831         * socket-io.c: 
20832         * unicode.h: 
20833         * unicode.c: Warning cleanups
20834
20835 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20836
20837         * object.h, reflection.h: use the correct type instead of MonoObject.
20838
20839 2002-03-28  Martin Baulig  <martin@gnome.org>
20840
20841         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20842         (mono_debug_update_symbol_file): Initialize classes if necessary.
20843
20844 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20845
20846         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20847         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20848
20849 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20850
20851         * assembly.h: fix function prototype.
20852         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20853         * mono-endian.h: use const cast.
20854
20855 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20856
20857         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20858
20859 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20860
20861         * loader.c: don't assert when a typeref can't be loaded, give
20862         a chance to the runtime to trow an exception instead.
20863         * loader.h: fix warning.
20864
20865 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20866
20867         * class.c (mono_class_proxy_vtable): added proxy support
20868
20869 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20870
20871         * icall.c: removed last of PAL calls, added System.Environment
20872         * file-io.h, file-io.c: MonoIO implementation
20873         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20874
20875 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20876
20877         * appdomain.c: do not use the byte marker in ldstr table lookup.
20878         * debug-helpers.c: allow two ':' to separate class and method name.
20879         * object.c: allocate arrays bounds with the GC, too.
20880         * verify: add a few more checks.
20881
20882 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20883
20884         * reflection.c: output also literal strings. Allocate parameter data
20885         with GC_malloc() (thanks, Martin, for catching this!).
20886
20887 2002-03-26  Martin Baulig  <martin@gnome.org>
20888
20889         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20890         include the `this' offset in the `param_offsets'.
20891
20892 2002-03-25  Martin Baulig  <martin@gnome.org>
20893
20894         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20895         mono_debug_get_class() function to get the classes. Added new
20896         relocation types for arrays and strings.
20897         (mono_debug_get_class): New static function to search in all
20898         referenced assemblies for a metadata token.
20899
20900         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20901
20902 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20903
20904         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20905         hold gc-allocated objects. Make the string heap a stream like the
20906         others. Removed duplicated code when writing stream info.
20907         Added asserts to catch possible buffer overflows. Set the sorted map
20908         for tables that need sorting. Added some documentation.
20909
20910 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20911
20912         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20913         for interned strings and vtables.
20914
20915 2002-03-24  Martin Baulig  <martin@gnome.org>
20916
20917         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20918         it in the array since it was created with g_slist_prepend().
20919
20920 2002-03-24  Martin Baulig  <martin@gnome.org>
20921
20922         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20923         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20924         (mono_debug_method_from_token): Renamed to
20925         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20926         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20927
20928         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20929         relocation types.
20930
20931         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20932
20933 2002-03-24  Martin Baulig  <martin@gnome.org>
20934
20935         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20936         (mono_debug_method_from_token): New func.
20937
20938         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20939         New interncall, calls mono_debug_local_type_from_signature().
20940         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20941         calls mono_debug_method_from_token().
20942
20943 2002-03-23  Martin Baulig  <martin@gnome.org>
20944
20945         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20946         specifies the number of bytes to be converted, not the array size.
20947         Return the number of chars, not the number of bytes.
20948         (ves_icall_iconv_get_chars): The `byteCount' argument
20949         specifies the number of bytes to be converted, not the array size.
20950
20951 2002-03-23  Martin Baulig  <martin@gnome.org>
20952
20953         * reflection.h (MonoReflectionSigHelper): New type.
20954
20955         * reflection.c (mono_reflection_sighelper_get_signature_local),
20956         (mono_reflection_sighelper_get_signature_local): New functions.
20957
20958         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20959         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20960         interncalls.
20961
20962 2002-03-23  Martin Baulig  <martin@gnome.org>
20963
20964         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20965         is_writeable is set.
20966         (mono_raw_buffer_update): New function to write the modified map
20967         back to disk.
20968
20969         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20970
20971         * debug-symfile.c (mono_debug_update_symbol_file): Call
20972         mono_raw_buffer_update() when done writing.
20973
20974 2002-03-23  Martin Baulig  <martin@gnome.org>
20975
20976         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20977
20978         * debug-symfile.c: Added support for arguments and local variables.
20979
20980 2002-03-23  Dick Porter  <dick@ximian.com>
20981
20982         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20983         protected by ifdefs, hence breaking the w32 build.
20984
20985 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20986
20987         * object.c: implement is_interned() the right way.
20988
20989 2002-03-21  Martin Baulig  <martin@gnome.org>
20990
20991         * debug-symfile.[ch]: New files to handle debugging information
20992         files. There's also support to dynamically update these symbol
20993         files to include machine dependent information.
20994
20995 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20996
20997         * threads.c (mono_thread_create): new function to create thread
20998         from C
20999
21000 2002-03-20  Martin Baulig  <martin@gnome.org>
21001
21002         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21003         method is a constructor.
21004         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21005         points to ves_icall_InternalInvoke().
21006
21007 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21008
21009         * file-io.c: Flush shouldn't throw exceptions.
21010
21011 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21012
21013         * file-io.c: FileStream flush support; FileSetLength now
21014         restores file pointer.
21015
21016 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21017
21018         * class.c: set image for pointer classes.
21019
21020 2002/03/19  Nick Drochak <ndrochak@gol.com>
21021
21022         * sysmath.c: Forgot one.
21023
21024 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21025
21026         * sysmath.c: Avoid redefining existing names.
21027
21028 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21029
21030         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21031         handled by runtime as icall rather than dllimport from libm.so
21032         * file-io.c, file-io.h: fixed handle argument type.
21033
21034 2002-03-18  Dick Porter  <dick@ximian.com>
21035
21036         * reflection.c (mono_image_get_type_info): rename interface to
21037         iface, because of "#define interface struct" on windows.
21038
21039 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21040
21041         * class.c, class.h: rename and export mono_ptr_class_get().
21042         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21043         * reflection.c, reflection.h, icall.c: better/saner type name
21044         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21045         method signatures.
21046
21047 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21048
21049         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21050
21051         * icall.c (ves_icall_InternalInvoke): impl.
21052
21053 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21054
21055         * reflection.c: output the interface map table, too.
21056
21057 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21058
21059         * class.c (class_compute_field_layout): separate computation of 
21060         static field layout
21061
21062 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21063
21064         * icall.c: added System.Buffer support.
21065         * file-io.c: moved file icalls from PAL to FileStream.
21066
21067 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21068
21069         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21070
21071 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21072
21073         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21074
21075 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21076
21077         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21078
21079 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21080
21081         * debug-helpers.{c,h}: moved here from monograph some useful functions
21082         to locate a method by name/signature in a class or image. Included
21083         also a small and flexible IL disassembler.
21084
21085 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21086
21087         * reflection.c: fixup tokens in methods with small header size, too.
21088
21089 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21090
21091         * object.c (mono_string_to_utf8): remove assert(!error), instead
21092         print a warning. 
21093
21094 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21095
21096         * icall.c: update to the new mono_Array_class_get interface.
21097
21098 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21099
21100         * appdomain.c, object.c: Boehm-GC enable.
21101         * icall.c: make get_data_chunk() support split data requests.
21102         Ensure a class is initialized in more cases. Return only the first
21103         property found in GetProperties() or the compiler gets confused. 
21104         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21105         * reflection.h, reflection.c: add fixup mechanism for field and method
21106         tokens. Initialize assembly->typeref in a single place. Output
21107         properties after events. Support custom attributes for events, too.
21108         Typo fix for paramter custom attrs.
21109
21110 2002-03-07  Martin Baulig  <martin@gnome.org>
21111
21112         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21113
21114 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21115
21116         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21117
21118 2002-03-06  Martin Baulig  <martin@gnome.org>
21119
21120         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21121         non-zero lower bounds. See testcases #F10-#F13.
21122
21123 2002-03-05  Martin Baulig  <martin@gnome.org>
21124
21125         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21126
21127         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21128         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21129         here.
21130         (ves_icall_System_Array_SetValue): Likewise.
21131         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21132         as argument and does the actual work. This function is used when copying a
21133         multi-dimensional array.
21134         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21135         now do all the widening conversions of value types.
21136         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21137
21138 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21139
21140         * class.c: remove some magic numbers and use the smbolic names,
21141         instead. Added init_events() to load event info at class init time.
21142         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21143         and mono_metadata_methods_from_event().
21144         * reflection.h, reflection.c: added support for writing out the evnets
21145         related information.
21146
21147 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21148
21149         * reflection.h, icall.c: use a different method (GetInterfaces)
21150         to gather interface info and add isbyref, isprimitive and
21151         ispointer to the ves_icall_get_type_info() return value.
21152
21153 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21154
21155         * class.h: stared adding support for events.
21156         * icall.c: split find_members implementation. Added debug icall to get
21157         the address of an object.
21158         * reflection.c: handle TypeBuilders in mono_type_get_object().
21159
21160 2002-03-01  Martin Baulig  <martin@gnome.org>
21161
21162         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21163         ArgumentOutOfRangeException(), not an ArgumentException().
21164         (ves_icall_System_Array_GetLowerBound): Likewise.
21165         (ves_icall_System_Array_GetValue): Improved argument checking.
21166         (ves_icall_System_Array_SetValue): Improved argument checking.
21167
21168 2002-03-01  Martin Baulig  <martin@gnome.org>
21169
21170         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21171         called with invalid arguments rather than just dying with g_assert().
21172         (ves_icall_System_Array_SetValue): Likewise.
21173         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21174         raise a NotImplementedException instead.
21175         (ves_icall_System_Array_GetLength): Added argument checking.
21176         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21177
21178 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21179
21180         * object.h (mono_assert): new macros mono_assert and
21181         mono_assert_not_reached
21182
21183 2002-02-28  Martin Baulig  <martin@gnome.org>
21184
21185         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21186         and "System::String::IsInterned" to "System::String::_IsInterned".
21187
21188 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21189
21190         * icall.c: remove hacks for typebuilder. Added icall to create a
21191         modified type from a tybebuilder.
21192         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21193         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21194         to create a backing MonoClass for a TypeBuilder.
21195
21196 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21197
21198         * class.c, class.h: more refactoring of class init.
21199         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21200
21201 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21202
21203         * marshal.c, marshal.h: start of marshaling interface.
21204
21205 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21206
21207         * icall.c: fix order in assembly qualified name icall.
21208
21209 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21210
21211         * class.c: do not free str, since we store it in the hash table.
21212         * reflection.h: add label field to MonoILExceptionInfo.
21213         * reflection.c: handle references to more than one assembly. Handle
21214         case when there isn't a module created in the assembly.
21215
21216 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21217
21218         * class.c: Fix typo. Start refactoring of class init code.
21219
21220 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21221
21222         * appdomain.c: exit with 1 on error.
21223         * class.c: we already have the name in MonoClassField.
21224         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21225         MonoStreamHeader instead of an offset of image->raw_metadata.
21226
21227 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21228
21229         * appdomain.c (mono_init): Be even more descriptive about the error.
21230
21231 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21232
21233         * appdomain.c: give the user an informative message when corlib can't
21234         be loaded.
21235
21236 2002-02-26  Martin Baulig  <martin@gnome.org>
21237
21238         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21239         New icall to get the time zone data.
21240
21241 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21242
21243         * reflection.c: set virtual and raw size of section correctly.
21244         * threads.c: transfer domain information to newly created threads.
21245
21246 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21247
21248         * class.c: when instancing a class in a domain, load the default
21249         vaules for static fields from the constant table. Fix System.Enum to
21250         not be an enum.
21251         * icall.c: implement Object::GetType() internalcall. Implemented
21252         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21253         Fixed checking of binding flags in find_members().
21254         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21255         * reflection.c: handle enumerations when writing to the constant
21256         table. Use a different object cache for types.
21257
21258
21259 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21260
21261         * object.c (mono_object_isinst): fix for arrays
21262
21263         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21264
21265 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21266
21267         * object.c: don't use mprotect ()  and fix intern pool hash table
21268         lookup for big endian systems.
21269
21270 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21271
21272         * icall.c: change type_is_subtype_of () signature.
21273
21274 2002-02-21  Mark Crichton  <crichton@gimp.org>
21275
21276         * rand.c, rand.h: Added random number generator for
21277         System.Security.Cryptography classes.
21278
21279         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21280
21281         * icall.c: Added System.Security.Cryptography calls.
21282
21283 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21284
21285         * class.c, icall.c, metadata.c: better support for pointer types.
21286         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21287         * reflection.c: Add support for getting custom attrs for properties
21288         and simplify some code.
21289
21290 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21291
21292         * icall.c: change getToken () and add custom attribute GetBlob()helper
21293         method.
21294         * reflection.h: add custom attrs array to the reflection builder structures.
21295         * reflection.c: encode and emit custom attributes for all the relevant
21296         reflection objects. Cache fieldref and methodref tokens. Change
21297         mono_image_create_token() interface to take a MonoDynamicAssembly.
21298         More complete custom attributes decoder. Load custom attributes for
21299         Assembly, Field, Method and Constructor objects, too. Make the
21300         returned array an Attribute[] one, not object[]. Added
21301         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21302         custom attribute constructor.
21303
21304 2002-02-20  Dick Porter  <dick@ximian.com>
21305
21306         * icall.c:
21307         * rawbuffer.c:
21308         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21309         problem code out for now).
21310
21311 2002-02-19  Radek Doulik  <rodo@ximian.com>
21312
21313         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21314
21315 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21316
21317         * icall.c: register the GetCustomAttributes method.
21318         * object.c, object.h: add mono_string_new_len ().
21319         * reflection.h, reflection.c: added mono_runtime_invoke(),
21320         mono_install_runtime_invoke(). Added
21321         mono_reflection_get_custom_attrs () to load custom attributes and
21322         create the attribute objects.
21323
21324 2002-02-19  Dick Porter  <dick@ximian.com>
21325         * threads-dummy-types.c:
21326         * threads-dummy-types.h:
21327         * threads-dummy.c:
21328         * threads-dummy.h:
21329         * threads-pthread-types.c:
21330         * threads-pthread-types.h:
21331         * threads-pthread.c:
21332         * threads-pthread.h:  Deleted obsolete files
21333
21334 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21335
21336         * class.c (mono_class_vtable): runtime init the class when we
21337         allocate static class data.
21338
21339         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21340
21341         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21342         and String - but we will need generic marshalling support in the
21343         future. 
21344         (mono_init): set the domain name in a ms compatible way
21345
21346         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21347         String[].
21348
21349 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21350
21351         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21352         for sizes
21353
21354         * appdomain.c (mono_domain_unload): impl.
21355
21356 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21357
21358         * appdomain.c, object.c: fix intern pool implementation.
21359         * class.c: fix alignment code.
21360
21361 2002-02-16  Radek Doulik  <rodo@ximian.com>
21362
21363         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21364         and s2 > s1, just copy lower bytes to be compatible with little
21365         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21366         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21367
21368         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21369         force big_endian to be 1 for big endian machines 
21370         (ves_icall_iconv_new_decoder): ditto
21371
21372 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21373
21374         * socket-io.c (convert_sockopt_level_and_name): If the system
21375         doesn't define SOL_IP or SOL_TCP, get them by hand using
21376         getprotobyname() and caching the values (because this could be a
21377         slow operation).
21378         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21379         Use the appropriate struct when the system does support it. Ie,
21380         not all systems have struct ip_mreqn so use struct ip_mreq when
21381         appropriate.
21382
21383 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21384
21385         * reflection.c: handle finally clauses.
21386
21387 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21388
21389         * socket-io.c: use g_snprintf() instead of snprintf.
21390
21391 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21392
21393         * reflection.c (mono_param_get_objects): Cast second argument to
21394         mono_method_get_param_names to a const char** to silence the
21395         compiler warning.
21396
21397         * appdomain.c (mono_domain_assembly_open): Put parens around the
21398         truth statement in the for-loop.
21399
21400         * unicode.c (iconv_convert): Got rid of a compiler warning about
21401         int i being unused when the system has a new iconv.
21402         (iconv_get_length): Same.
21403
21404         * image.c (load_class_names): Cast the second argument to
21405         g_hash_table_insert() to char* to hush compiler warnings about the
21406         arg being a const.
21407         (mono_image_open): Same here.
21408
21409         * socket-io.c: Don't conditionally include sys/filio.h or
21410         sys/sockio.h here anymore since we now get them from
21411         io-layer/io-layer.h
21412         (inet_pton): If the system doesn't support inet_aton, implement
21413         using inet_addr and also #define INADDR_NONE if it isn't defined
21414         by the system.
21415
21416 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21417
21418         * metadata.c, metadata.h: added function to get packing and size info
21419         of a typedef.
21420         * reflection.h, reflection.c: handle field RVA data. Save info about
21421         the table layout if needed. Assign typedef indexes to all the types
21422         before dumping the info about them to avoid forward reference problems.
21423
21424 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21425
21426         * socket-io.c (convert_sockopt_level_and_name): ifdef
21427         SO_ACCEPTCONN because it is not defined on my system (old debian)
21428
21429 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21430
21431         * opcode.c: use stddef.h to get NULL.
21432
21433 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21434
21435         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21436         for FIONBIO, FIONREAD and SIOCATMARK.
21437         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21438         define INADDR_NONE and besides, inet_addr() is deprecated and
21439         should not be used. Use inet_pton() instead - it also has the
21440         added bonus that it can easily handle IPv6 addresses as well.
21441         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21442
21443 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21444
21445         * decimal.c: remove _MSC_VER conditional.
21446
21447 2002-02-13  Dick Porter  <dick@ximian.com>
21448
21449         * socket-io.c: 
21450         * icall.c: Internal calls for Blocking, Select, Shutdown,
21451         GetSocketOption and SetSocketOption
21452
21453 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21454
21455         * assembly.cs: better resolver: use it instead of some kludgy
21456         code.
21457
21458 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21459
21460         * reflection.c: the best way to speed-up the compiler is to avoid
21461         infinite loops.
21462
21463 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21464
21465         * class.c (mono_class_vtable): changed the object layout
21466         (obj->vtable->class). 
21467         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21468
21469 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21470
21471         * assembly.c: look for assemblies in the assembly dir, too.
21472
21473 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21474
21475         * class.c: fix thinko in mono_class_from_type().
21476
21477 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21478
21479         * exception.h, exception.c: added TypeLoadException.
21480         * object.h, object.c: added mono_array_clone ().
21481         * icall.c: handle throwOnError in AssemblyGetType().
21482         Added Array.Clone().
21483         * opcode.h, opcode.c: use a single value for the opcode val.
21484         Compile fix for non-gcc compilers.
21485
21486 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21487
21488         * opcodes.c, opcodes.h: export interesting info about opcodes.
21489
21490 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21491
21492         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21493         icalls. 
21494
21495         * class.c (class_compute_field_layout): set element_class for enums
21496         (mono_class_create_from_typedef): set element_class for normal classes
21497
21498         * icall.c (ves_icall_System_Enum_get_value): impl.
21499
21500         * class.c (mono_class_create_from_typedef): do not set valuetype
21501         flag for System.ValueType and System.Enum
21502
21503 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21504
21505         * unicode.c (iconv_convert): fix big endian problem.
21506
21507 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21508
21509         * class.c: add asserts if we are ever going to scribble over memory.
21510         * socket-io.c: not all systems have AF_IRDA defined.
21511
21512 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21513
21514         * class.c (class_compute_field_layout): do not consider static
21515         fields to compute alignment
21516
21517 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21518
21519         * appdomain.c (mono_appdomain_get): impl.
21520         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21521
21522 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21523
21524         * icall.c: ignore "file://" prefix when loading an assembly.
21525
21526 2002-01-23  Dick Porter  <dick@ximian.com>
21527
21528         * socket-io.c:
21529         * icall.c:
21530         * Makefile.am: Added socket support
21531
21532 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21533
21534         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21535         code back.  This should return the assemblies that are loaded by
21536         the runtime on behalf of an application domain. 
21537
21538         The current implementation is still broken, it just returns every
21539         assembly loaded, but until we get real applications domain this
21540         will do.
21541
21542 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21543
21544         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21545         AppDomain object.
21546
21547 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21548
21549         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21550         the mono_class_from_name lookup.
21551         (ves_icall_get_parameter_info): ditto.
21552         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21553         method.
21554         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21555
21556 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21557
21558         * class.c: load also nested classes on class init.
21559         System.ValueType instance methods gets passed boxed
21560         values, unless methods in derived classed that get a pointer to the
21561         data.
21562         * icall.c: use better name parsing code in GetType().
21563         * image.c, image.h: add mono_image_loaded ().
21564         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21565         * reflection.c, reflection.h: added mono_reflection_parse_type().
21566
21567 2002-01-22  Veronica De Santis <veron78@interfree.it>
21568
21569         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21570         * threads.c : Added the implementation of internal calls for events
21571         * threads.h : Added prototypes of internal calls for events
21572         
21573 2002-01-21  Radek Doulik  <rodo@ximian.com>
21574
21575         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21576
21577 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21578
21579         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21580         (mono_class_value_size): use min_align
21581
21582 2002-01-20  Dick Porter  <dick@ximian.com>
21583
21584         * threads.h:
21585         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21586         so it compiles on w32.
21587
21588 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21589
21590         * metadata.c (mono_type_stack_size): impl.
21591
21592         * class.c (mono_class_get_field): impl. memberref token
21593
21594 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21595
21596         * icall.h : Added the internal calls mapping for CreateMutex_internal
21597                     and ReleaseMutex_internal.
21598         * threads.h : Added the prototype of mutexes internal calls.
21599         * threads.c : Added the implementations of mutexes internal calls.
21600
21601 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21602
21603         * metaparse.h: removed unused file.
21604         * reflection.c, reflection.h: added stream_data_align () function 
21605         to align data in streams and keep stream aligned. Add support for
21606         exception support in method headers.
21607
21608 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21609
21610         * unicode.c: make iconv_convert () return the number of bytess written
21611         in the output buffer.
21612
21613 2002-01-15  Dick Porter  <dick@ximian.com>
21614         * threads.c: Make the runtime's idea of infinite timeouts coincide
21615         with the class library's
21616
21617         Fix a particularly egregious bug in mono_thread_cleanup(). That
21618         code was so utterly bogus it must have been written on a Monday.
21619
21620 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21621
21622         * reflection.h: add subtypes field to TypeBuilder.
21623         * reflection.c: encode constants for literal fields.
21624         Handle subtypes. Fix user string token (and add a zero byte)
21625         at the end.
21626         
21627 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21628
21629         * class.c (mono_class_init): bug fix: assign slot numbers for
21630         abstract methods.
21631
21632 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21633
21634         * reflection.c: don't try to output a code RVA for abstract methods.
21635         Small fixes for method header format. Output parameter info to the
21636         ParamDef table. Save method overriding info to MethodImpl table.
21637         Fix property support. Allow typedef.extends to be a type in the
21638         building assembly.
21639         * verify.c: fix off-by-one error.
21640
21641 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21642
21643         * class.c: fix mono_class_from_mono_type () for szarray types.
21644         Remove unused cache check in mono_class_from_type_spec().
21645         * icall.c: *type_from_name () functions handle simple arrays and byref.
21646         * reflection.c: handle byref and szarray types. Handle methods without
21647         body (gets P/Invoke compilation working). Handle types and fields in
21648         get_token ().
21649         * reflection.h: add rank to MonoTypeInfo.
21650
21651 2002-01-10  Dick Porter  <dick@ximian.com>
21652
21653         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21654         internal calls
21655
21656 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21657
21658         * icall.c: initialize class in type_from_handle ().
21659         Loop also in parent classes for get_method ().
21660         * reflection.c: properly encode class and valuetype types.
21661         Start on encoding TypeBuilder types. Handle fieldrefs.
21662         Use correct length when registering a user string.
21663         Handle ConstructorBuilder and MonoMethod in get_token ().
21664         Make mono_type_get_object () aware of cached types.
21665         * object.c: back out change to mono_string_new ().
21666
21667 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21668         * object.c: mono_string_new should return a NULL when the string 
21669         passed in is NULL -- not try to deference it.
21670         
21671 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21672
21673         * icall.c: hack to make IsSubType work for TypeBuilders.
21674         * reflection.c: emit constructors before methods.
21675         Retrieve param names in mono_param_get_objects().
21676
21677 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21678
21679         * Makefile.am: fix list of headers and sources so automake 1.5
21680         doesn't complain. Removed \# at end of list.
21681
21682 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21683
21684         * reflection.c: get token for a method ref. Set return type of
21685         constructor to void.
21686         * loader.c: debug message.
21687         * class.c: typo fix.
21688
21689 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21690
21691         * icall.c: fix array init with rank > 1. FindMembers
21692         loops in parent class as well.
21693         * image.c: do not insert nested types in name cache.
21694         * reflection.c: warning fix.
21695         * reflection.h: add override method (for interface impl).
21696
21697 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21698
21699         * metadata.c: fix customattr decoding.
21700
21701 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21702
21703         * rawbuffer.cs: Added native Win32 implementation, avoids using
21704         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21705
21706 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21707
21708         * class.c: make the low-level routines handle the cache.
21709
21710 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21711
21712         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21713
21714 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21715
21716         * class.c: fix mono_array_element_size() for objects.
21717         * class.h, class.c: add properties to MonoClass and load them
21718         at init time.
21719         * icall.c: check with isinst() when assigning a value to an array
21720         instead of requiring the classes to match exactly.
21721         Implemented icall for System.Type::GetType().
21722         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21723         enums. Handle bindingflags when looking for methods and fields.
21724         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21725         and mono_metadata_methods_from_property().
21726         * reflection.h, reflection.c: added structures for propreties,
21727         parameters and enums. Implemented mono_property_get_object() and
21728         mono_param_get_objects().
21729
21730 2001-12-18  Dick Porter  <dick@ximian.com>
21731
21732         * file-io.c: Use mono_string_to_utf16() instead of
21733         mono_string_chars()
21734
21735         * object.c: Added mono_string_to_utf16(), which copies the non
21736         NULL-terminated MonoString into a new double-null-terminated
21737         buffer.
21738
21739 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21740
21741         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21742
21743 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21744
21745         * file-io.c: raise exceptions if handle is invalid.
21746
21747 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21748
21749         * assembly.c: yet another check for mscorlib.
21750         * class.c, class.h: load nesting info for classes.
21751         * icall.c: many new functions to support the Reflection classes.
21752         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21753         * reflection.h, reflection.c: mono_image_create_token(),
21754         mono_assembly_get_object(), mono_type_get_object(),
21755         mono_method_get_object(), mono_field_get_object(): methods to return
21756         objects that parallel the C representation of assemblies, types,
21757         methods, fields.
21758
21759 2001-12-11  Dick Porter  <dick@ximian.com>
21760
21761         * icall.c:
21762         * file-io.c: Internal calls for file IO.
21763
21764 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21765
21766         * tabledefs.h: missing FileAttributes.
21767         * verify.h, verify.c: use is_valid_string () to simplify and check for
21768         valid strings more correctly. Fix warnings and speeling.
21769         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21770         Check code: branches, maxstack, method calls.
21771
21772 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21773
21774         * object.c (mono_object_allocate): removed static, so that the jit
21775         can allocate value types.
21776
21777         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21778
21779 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21780
21781         * class.c: init enum types right away and register the
21782         token->MonoClass map in mono_class_create_from_typedef ().
21783         * verify.h, verify.c: first cut of the verifier.
21784         * pedump.c: add --verify switch to verify metadata tables.
21785         * tabledefs.h: add some missing enums.
21786
21787 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21788
21789         * class.c (mono_install_runtime_class_init): impl.
21790         (mono_class_init): renamed mono_class_metadata_init to
21791         mono_class_init, also removed the metadata_inited flag
21792
21793         * object.c (mono_object_isinst): use faster algorithm
21794
21795 2001-11-30  Radek Doulik  <rodo@ximian.com>
21796
21797         * mono-endian.h: reverted last change
21798         added function prototypes
21799
21800         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21801         add mono-endian.c back
21802
21803         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21804         for unaligned access, I've mistaked it with endianess. I am
21805         sorry.
21806         (mono_read16): fix reverted endianess
21807         (mono_read64): ditto
21808         (mono_read32): ditto
21809
21810 2001-11-30  Dick Porter  <dick@ximian.com>
21811
21812         * exception.c: Implement mono_exception_from_name()
21813
21814 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21815
21816         * metadata.h, metadata.c: remove params_size and locals_size and their
21817         calculation from the metadata code: they are only usefult to the
21818         interp.
21819
21820 2001-11-29  Radek Doulik  <rodo@ximian.com>
21821
21822         * object.c (mono_ldstr): swap bytes here, it's probably not the
21823         best place, but works for me now, I'll redo it once I know mono
21824         better, also note that I add PROT_WRITE and don't reset back, also
21825         note that it's only affects big endians, so x86 should be OK
21826
21827         * mono-endian.h (read16): use just glib macros for both endians
21828
21829         * mono-endian.c: removed as glib macros are used in in
21830         mono-endian.h so we don't need to care about endianess for read
21831         macros as glib does that for us already
21832
21833 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21834
21835         * class.h, class.h: take minimum alignment into consideration so
21836         that the fields of a class remain aligned also when in an array.
21837
21838 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21839
21840         * loader.h, loader.c: add mono_method_get_param_names().
21841         * class.c: 0-init class fields.
21842
21843 2001-11-26  Dick Porter  <dick@ximian.com>
21844
21845         * icall.c:
21846         * threads-types.h:
21847         * threads.c: New file that handles System.Threading on all platforms
21848
21849         * object.c: 
21850         * object.h: Remove the synchronisation struct from MonoObject,
21851         replace it with a pointer that gets initialised on demand
21852
21853         * Makefile.am: Replace all the system-specific threading code with
21854         a single file that uses the new wrapper library
21855
21856 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21857
21858         * class.c, class.h: add mono_install_trampoline() so that the runtime
21859         can register a function to create a trampoline: removes the ugly
21860         requirement that a runtime needed to export arch_create_jit_trampoline.
21861         * object.h, object.c: added mono_install_handler() so that the runtime
21862         can install an handler for exceptions generated in C code (with
21863         mono_raise_exception()). Added C struct for System.Delegate.
21864         * pedump.c: removed arch_create_jit_trampoline.
21865         * reflection.c: some cleanups to allow registering user strings and
21866         later getting a token for methodrefs and fieldrefs before the assembly
21867         is built.
21868         * row-indexes.h: updates and fixes from the new ECMA specs.
21869
21870 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21871
21872         * class.h, class.c: add enum_basetype field to MonoClass.
21873         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21874         to get index in the constant table reated to a field, param or
21875         property.
21876         * reflection.h, reflection.c: handle constructors. Set public-key and
21877         version number of the built assembly to 0.
21878         * row-indexes.h: update from new ECMA spec.
21879
21880 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21881
21882         * class.h, class.c: add a max_interface_id to MonoClass.
21883         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21884         since it's used to do that. Added mono_type_type_from_obj().
21885         Make GetType() return NULL instead of segfaulting if the type was not
21886         found. Handle simple arrays in assQualifiedName.
21887         * object.h: add a struct to represent an Exception.
21888         * reflection.c: output call convention in method signature.
21889         Add code to support P/Invoke methods and fixed offsets for fields.
21890
21891 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21892
21893         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21894         the value.
21895         * icall.c: use mono_array_addr instead of array->vector: fixes the
21896         reflection image writing.
21897         * reflection.c: init call convention byte to 0 in method signature.
21898         Encode the property signature. Don't output property-related methods
21899         twice. Really process the properties for a type (don't cast a field to
21900         a property, my mom always told me that).
21901         Fix 64 bit issues in pointer alignment in a different and more
21902         readable way.
21903
21904 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21905
21906         * loader.h: Removed type class from MonoDefaults, added monotype
21907
21908         * loader.c: Loaded MonoType, removed loading of Type
21909
21910         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21911         and fills in System.Type._impl with a RuntimeTypeHandle rather
21912         than the actual MonoClass *
21913
21914         (ves_icall_type_from_handle): change from type_class to
21915         monotype_class
21916
21917         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21918         implemented
21919
21920         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21921         implemented
21922
21923         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21924
21925         (ves_icall_System_Reflection_Assembly_GetType): implemented
21926
21927         (ves_icall_System_MonoType_assQualifiedName): implemented
21928
21929         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21930
21931 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21932
21933         * assembly.c (mono_assembly_open): Implement a cache for the
21934         assemblies. 
21935
21936         (mono_assembly_close): only destroy the assembly when the last
21937         reference is gone.
21938         
21939 2001-11-09  Dick Porter  <dick@ximian.com>
21940
21941         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21942
21943 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21944
21945         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21946
21947 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21948
21949         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21950         from Martin Weindel.
21951         * object.h: add mono_string_chars ().
21952
21953 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21954
21955         * reflection.c (build_compressed_metadata): Eliminates warnings
21956         and uses 64-bit clean code.
21957
21958         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21959         (mono_type_equal): Change signature to eliminate warnings.
21960
21961 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21962
21963         * icall.c, loader.c: remove the internalcall array constructors.
21964         Changes to match the new MonoArray structure.
21965         * object.h, object.c: an array object doesn't allocate an extra
21966         vector. Add mono_array_new_full () to create jagged arrays easily.
21967
21968 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21969
21970         * metadata.h, metadata.c: add mono_metadata_field_info () to
21971         retreive all the info about a field from vairous tables.
21972         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21973         * class.h, class.c: augment MonoClassField with more info.
21974         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21975         policy and load a field's RVA if needed.
21976
21977 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21978
21979         * class.c (mono_class_metadata_init): create a trampoline for all
21980         virtual functions instead of actually compiling them.
21981
21982 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21983
21984         * class.h, class.c: include name in MonoClassField.
21985         * class.c: fix fundamental type of System.Object and System.String.
21986         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21987         tokens in ldtoken.
21988         * icall.c: remove internalcalls for the Reflection stuff that is now
21989         done in C# code.
21990         * loader.c: mono_field_from_memberref () implementation.
21991         * mono-endian.c: thinko (s/struct/union/g).
21992         * object.c, object.h: make the mono_string_* prototypes actually use
21993         MonoString instead of MonoObject.
21994         * reflection.c, reflection.h: updates for changes in the reflection
21995         code in corlib: we use C structures that map to the actual C# classes.
21996         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21997         fat method header if needed and use the info from the ILGenerator for
21998         methods. Handle fields in types. Misc fixes.
21999
22000 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22001
22002         * class.c (mono_class_metadata_init): bug fix: always allocate
22003         space for static class data
22004
22005 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22006
22007         * class.c (mono_compute_relative_numbering): use relative
22008         numbering to support fast runtime type checks.
22009
22010 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22011
22012         * class.c (mono_class_create_from_typeref): added debugging output
22013         to print class name when MonoDummy is returned instead of real class
22014
22015 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22016
22017         * class.c (mono_class_metadata_init): interface offset table now
22018         contains pointers into the vtable - this is more efficient for the jit
22019
22020 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22021
22022         * class.c (mono_class_metadata_init): use a temporary vtable (the
22023         old algorithm only worked for the interpreter, but not for the jit)
22024
22025 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22026
22027         * loader.c (method_from_memberref): use mono_class_get to get the
22028         class of an array instead of using System.Array directly.
22029         (mono_get_method): also add MEMBERREF methods to the method cache
22030         which usefull for arrays.
22031
22032 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22033
22034         * pedump.c (arch_compile_method): added to compute vtable entry
22035
22036         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22037         number of interfaces.
22038         
22039         * class.h: merged MonoArrayClass into MonoClass
22040
22041         * class.c (mono_class_create_from_typedef): compute the vtable size and
22042         allocate space to include the vtable inside MonoClass
22043         (mono_class_metadata_init): initialize the vtable
22044
22045 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22046
22047         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22048         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22049         * image.c: endian fixes by Laurent Rioux.
22050         * object.h, object.c: rename MonoStringObject to MonoString and
22051         MonoArrayObject to MonoArray. Change some function names to conform to
22052         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22053         guint16* as first argument, so don't use char*.
22054         Provide macros to do the interesting things on arrays in a portable way.
22055         * threads-pthread.c: updates for the API changes and #include <sched.h>
22056         (required for sched_yield()).
22057         * icall.c: updates for the API changes above.
22058         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22059         platforms that need them.
22060
22061 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22062
22063         * class.c: set the correct type for all the fundamental
22064         type when loading the class.
22065
22066 2001-10-05  Dick Porter  <dick@ximian.com>
22067
22068         * threads-pthread.c (pthread_mutex_timedlock): Simple
22069         compatibility version for C libraries that lack this call.
22070
22071 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22072
22073         * class.c: MonoTypes stored in MonoClass are stored as
22074         fundamental MonoTypes when the class represents a
22075         fundamental type (System.Int32, ...).
22076         The TypeHandle return by ldtoken is a MonoType*.
22077         * icall.c: ves_icall_get_data_chunk () write out all the
22078         PE/COFF stuff. Implement ves_icall_define_method (),
22079         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22080         * image.c: properly skip unknown streams.
22081         * loader.h, loader.c: add type_class to mono_defaults.
22082         * metadata.c, metadata.h: export compute_size () as
22083         mono_metadata_compute_size () with a better interface.
22084         Typo and C&P fixes.
22085         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22086         * reflection.c, reflection.h: many cleanups, fixes, output method
22087         signatures and headers, typedef and typeref info, compress the metadata
22088         tables, output all the heap streams, cli header etc.
22089         * row-indexes.h: typo fixes.
22090
22091 2001-10-04  Dick Porter  <dick@ximian.com>
22092
22093         * object.h: Add a synchronisation mutex struct to MonoObject
22094
22095         * object.c (mono_new_object): Initialise the object
22096         synchronisation mutexes
22097
22098         * icall.c: System.Threading.Monitor internal calls
22099         
22100         * threads-pthread.h:
22101         * threads-pthread.c: System.Threading.Monitor internal calls
22102
22103         * threads-types.h: New file, includes the system-specific thread
22104         structures
22105         
22106         * threads-pthread-types.h:
22107         * threads-pthread-types.c: New files, handle pthread-specific
22108         synchronisation types
22109
22110         * threads-dummy-types.h: 
22111         * threads-dummy-types.c: New files of dummy support for
22112         thread-specific types
22113
22114         * metadata.c:
22115         * image.c:
22116         * pedump.c: include mono-endian.h not endian.h
22117         
22118         * Makefile.am: More threads files.
22119         Name mono-endian.h not endian.h
22120
22121 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22122
22123         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22124         stuff and implement a few more bits.
22125         * icall.c: a field needs to be dereferenced twice. Do not use the same
22126         name for two variables in the same scope.
22127         * image.c, image.h: cleanups.
22128
22129 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22130
22131         * class.c (mono_class_metadata_init): bug fix: compute the right size
22132
22133 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22134
22135         * icall.c: implemented some of the Reflection internalcalls.
22136         * image.c, image.h: start writing out the PE/COFF image.
22137         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22138         that does the reverse than decode_blob_size ().
22139         * object.c: use mono_metadata_encode_value (). Move here
22140         temporary implementation of mono_string_to_utf8 ().
22141         * rawbuffer.c: make malloc_map static.
22142
22143 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22144
22145         * metadata.c: fix type comparison for arrays.
22146         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22147         Added a couple of new classes to monodefaults.
22148         * icall.c: added a couple of Reflection-related internalcalls.
22149         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22150         Added a byval_arg MonoType to MonoClass.
22151
22152 2001-09-28  Dick Porter  <dick@ximian.com>
22153
22154         * icall.c:
22155         * threads-pthread.h: 
22156         * threads-pthread.c: Implemented internal calls for
22157         LocalDataStoreSlot operations.  Applied mutexes around all shared
22158         data.  Reworked the thread creation and Start() operations to
22159         avoid a race condition.
22160         
22161         * threads-dummy.h:
22162         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22163
22164 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22165
22166         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22167
22168 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22169
22170         * class.c, loader.c: warn and return NULL instead of erroring out.
22171         * icall.c: added System.AppDomain::getCurDomain().
22172         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22173
22174 2001-09-25  Dick Porter  <dick@ximian.com>
22175
22176         * threads-pthread.h:
22177         * threads-pthread.c: Implemented timed thread joining and added
22178         System.Threading.Thread::Join_internal internal call
22179
22180         * icall.c: Added System.Threading.Thread::Join_internal internal call
22181
22182         * threads-dummy.h:
22183         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22184
22185 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22186
22187         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22188         mono_string_intern () to implement the semantics of the ldstr opcode
22189         and the interning of System.Strings.
22190         * icall.c: provide hooks to make String::IsIntern and String::Intern
22191         internalcalls.
22192
22193 2001-09-23  Dick Porter  <dick@ximian.com>
22194
22195         * threads-dummy.c: 
22196         * threads-dummy.h: New files of dummy threading routines
22197
22198         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22199         support code based on system specifics
22200
22201         Rename PTHREAD_LIBS to THREAD_LIBS
22202         
22203 2001-09-23  Dick Porter  <dick@ximian.com>
22204
22205         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22206         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22207         internal calls.
22208         (mono_thread_init): Set up a Thread object instance to return when
22209         the main thread calls Thread.CurrentThread
22210         (mono_thread_cleanup): Wait for all subthreads to exit
22211
22212         * icall.c: New internal calls for System.Threading.Thread::Sleep
22213         (including Schedule) and CurrentThread
22214
22215         * threads.h: New file, to insulate thread-specific stuff from the
22216         rest of the code
22217
22218 2001-09-21  Dick Porter  <dick@ximian.com>
22219
22220         * threads-pthread.h: 
22221         * threads-pthread.c: New file, for handling pthreads-style
22222         threading support.  Start() now starts a new thread and executes
22223         the ThreadStart delegate instance.
22224
22225         * icall.c: Added the internalcall for
22226         System.Threading.Thread::Start_internal
22227
22228         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22229
22230 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22231
22232         * loader.c: work around the different signatures for delegates
22233         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22234
22235 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22236
22237         * class.h, class.c: add mono_class_get_field_from_name ().
22238         * *: Fix C comments and other ANSI C issues.
22239
22240 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22241
22242         * endian.h, assembly.c: fix some endianness issues.
22243
22244 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22245
22246         * loader.h, load.c: add delegate_class to mono_defaults.
22247         Handle runtime provided methods in mono_get_method ().
22248
22249 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22250
22251         * loader.c (mono_get_method): use pinvoke for internal call
22252
22253         * icall.c: use pinvoke for internal call
22254
22255         * loader.c (method_from_memberref): set the method name
22256
22257 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22258
22259         * metadata.c: help the compiler generate better code for
22260         mono_class_from_mono_type ().
22261
22262 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22263
22264         * class.c (mono_class_metadata_init): delayed computing of the
22265         class size to mono_class_metadata_init ()
22266
22267 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22268
22269         * class.c, class.h: add an interfaces member to MonoClass.
22270         * image.c, image.h: add assembly_name field to MonoImage
22271         from the assembly table.
22272         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22273
22274 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22275
22276         * class.c: Handle Array in mono_class_from_mono_type ().
22277         * metadata.c, pedump.c: some endian fixes.
22278
22279 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22280
22281         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22282         * metadata.c: fix small problem introduced with the latest commit.
22283
22284 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22285
22286         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22287         We don't need a MonoMetadata pointer anymore to compare signatures in
22288         mono_metadata_signature_equal (), update callers.
22289         Reduced memory usage an number of allocations for MonoMethodHeader and
22290         MonoMethodSignature.
22291
22292 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22293
22294         * metadata.c: added compare for szarray.
22295
22296 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22297
22298         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22299         and add a couple more types to it and mono_defaults. Give an hint on
22300         classes that need implementing in our corlib and are referenced
22301         in mscorlib.
22302
22303 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22304
22305         * class.h, class.c: keep track if a class is also an Enum.
22306         * loader.c: Implement a couple more types for use in libffi
22307         marshalling. Gives better diagnostics when failing to dlopen
22308         a library. Set method->klass for P/Invoke methods, too.
22309
22310 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22311
22312         * class.c, class.h: add a MonoType this_arg to MonoClass that
22313         represents a pointer to an object of the class' type that
22314         can be used by the interpreter and later the type cache.
22315         Add best guess alignment info for valuetype objects.
22316
22317 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22318
22319         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22320         into MonoType: one less level of indirection and allocation and
22321         simplifies quite a bit of code. Added cache for MonoTypes that are
22322         used frequently, so that we don't need to allocate them all the time.
22323
22324 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22325
22326         * class.c (mono_class_create_from_typedef): System.Enum is also a
22327         value type, although it does not derive from System.ValueType
22328         (maybe a bug in the ms compiler?)
22329
22330         * metadata.c (mono_type_size): return the right size for value types
22331
22332         * loader.c (mono_get_method): only initialize method header if not abstract
22333
22334         * class.c (mono_class_from_mono_type): use mono_default values. 
22335
22336 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22337
22338         * *: use MonoClass pointers instead of <type_tokens>
22339         
22340         * class.h: new flag: metadata_inited.
22341
22342         * class.c (mono_class_metadata_init): impl.
22343         (mono_class_instance_size): impl.
22344         (mono_class_data_size): impl.
22345
22346 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22347
22348         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22349         MonoClass now has the name and name_space fields. 
22350         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22351         mono_get_method () takes and optional MonoClass as argument.
22352         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22353         instead that takes advantage of a map from class names to typedef
22354         tokens in MonoImage.
22355
22356 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22357
22358         * metadata.c: zero is not a valid alignment boundary.
22359         Merge MONO_TYPE_VOID in default decoding code.
22360
22361 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22362
22363         * image.h: merged MonoMetadata into MonoImage
22364
22365         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22366         identify the type of elements.
22367
22368 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22369
22370         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22371         * cil-coff.h: split MonoMSDOSHeader and add size info.
22372         * image.c: add some consistency checks.
22373         * metadata.c: fix row size computation: one programmer
22374         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22375         add explanation for the locator routine.
22376         Fix decoding of size in method header.
22377         
22378 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22379
22380         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22381         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22382         function from gnome-libs.  This uses the right path separator
22383         based on the OS, and also works around a bug in some systems where
22384         a double slash is not allowed. 
22385         (default_assembly_name_resolver): Use g_concat_dir_and_file
22386         (mono_assembly_open): ditto.
22387
22388 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22389
22390         * metadata.c (mono_metadata_signature_equal): impl.
22391
22392         * *: void is now a realy MonoType (instead of using NULL)
22393         
22394         * metadata.c (do_mono_metadata_parse_type): use
22395         mono_metadata_parse_type to parse void value.
22396
22397 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22398
22399         * metadata.c, metadata.h: in the signature and method header store
22400         only the space required for holding the loca vars and incoming arguments.
22401
22402 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22403
22404         * metadata.c (do_mono_metadata_parse_type): treat void like any
22405         other type (instead of assigning NULL);
22406
22407 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22408
22409         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22410
22411 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22412
22413         * image.c (do_mono_image_open): added a cache for arrays.
22414
22415 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22416
22417         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22418         decode a single column from a row in a metadata table and changes
22419         to take advantage of it in the typedef locator (gives a nice speed up).
22420         Store offset info for function params.
22421
22422 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22423
22424         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22425
22426 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22427
22428         * assembly.c: how could mono_assembly_close () had ever worked?
22429         * metadata.c, metadata.h: provide offset info for local vars.
22430         Implement mono_type_size () to take care of alignment as well
22431         as size (it was mono_field_type_size in cli/class.c before).
22432
22433 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22434
22435         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22436
22437         * assembly.h (CORLIB_NAME): set to corlib.dll
22438
22439         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22440
22441 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22442
22443         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22444         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22445         tokentype.h: massive namespace cleanup.
22446
22447 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22448
22449         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22450
22451 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22452
22453         * metadata.c (mono_metadata_free_type): added check for type !=
22454         NULL (void) before calling mono_metadata_free_type()
22455
22456 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22457
22458         * metadata.h, row_indexes.h: added header with enumerations to use
22459         to index in the columns from tables in metadata and to decode coded
22460         tokens: we should start using this instead of embedding magic numbers
22461         all over the code.
22462
22463 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22464
22465         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22466         Move metadata_t info from cli_image_info_t to MonoImage, where
22467         it's easily accessible. Changed all the uses accordingly.
22468         Added the method and class caches to MonoImage.
22469         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22470         and mono_metadata_decode_value () signature to be more consistent
22471         with the other parse functions (and simplify code). Taken advantage
22472         of zero-length array allocation with GCC. Removed reduntant (and
22473         wrong) MonoFieldType struct and use MonoParam instead. Changed
22474         mono_metadata_parse_field_type () to use common code for parsing.
22475         Added mono_metadata_typedef_from_field () and
22476         mono_metadata_typedef_from_method () to lookup a typedef index from a
22477         field or method token.
22478         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22479
22480 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22481
22482         * metadata.c (mono_metadata_parse_field_type): Implement. 
22483         (do_mono_metadata_parse_type): Split engine from
22484         mono_metadata_parse_type, so that we can create smaller structures
22485         for things that just have one pointer to the MonoType (look at
22486         the MonoFieldType)
22487
22488 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22489
22490         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22491         as Jan Gray found out, it is incorrect. 
22492
22493 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22494
22495         * assembly.c: Implement asssembly loading.  This loads an image
22496         and loads all the referenced assemblies.  Come to think of it, we
22497         could always do lazy loading of the assemblies. 
22498
22499         * image.c (mono_image_open): Keep loaded images in a hashtable.
22500
22501         * image.h (MonoImage): Add reference count.
22502
22503 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22504
22505         * assembly.c (mono_assembly_open): Keep track of the file name in
22506         case the assembly has no ASSEMBLY table.
22507
22508         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22509         from get.c here.
22510
22511 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22512
22513         * metadata.c, metadata.h: decode local vars in method header
22514         parse function. Change callers accordingly.
22515
22516 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22517
22518         * metadata.h, cil-coff.h: protect against multiple inclusion.
22519         Added some new structures to hold information decoded from metadata:
22520         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22521         and relevant decoding/free functions.
22522         * metadata.c: implement decoding functions. Add warning for out of bounds
22523         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22524         all the info about a method signature and invocation. Remove check on
22525         uninitialized local var in parse_mh() and fix memory leak.
22526
22527 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22528
22529         * metadata.h: More macros.
22530
22531         * tokentype.h: New file.
22532
22533 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22534
22535         * assembly.c: added a consistency check and initialize
22536         some structures with g_new0().
22537         * metadata.c: fixed a couple more bugs in table size computation
22538         and add other checks for out-of bound access to metadata.
22539
22540 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22541
22542         * metatada.c: fix bugs computing table sizes. Spew a
22543         warning when index in string heap is out of bounds.
22544
22545 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22546
22547         * metadata.h: Add a couple of macros to manipulate tokens. 
22548
22549 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22550
22551         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22552         cli_section_tables).
22553
22554 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22555
22556         * metadata.c (mono_metadata_user_string): New function, provides
22557         access to the UserString heap. 
22558
22559 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22560
22561         * metadata.c: Add inline documentation.
22562
22563 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22564
22565         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22566         files. 
22567
22568 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22569
22570         * typeattr.h: New file, TypeAttribute flags. 
22571
22572 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22573
22574         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22575         mono_assembly_ensure_section): Section loading code.
22576         (load_section_tables): Load the sections.
22577
22578         * mono/metadata/metadata.c (mono_metadata_locate_token,
22579         mono_metadata_locate): Functions to locate the information
22580         definition given a token or a table and an index.
22581         (mono_metadata_compute_table_bases): New.
22582         (compute_size): New function to compute the sizes of the various
22583         tables.
22584
22585         * mono/metadata/metadata.h: Finish listing the different index
22586         types. 
22587
22588         * mono/metadata/pedump.c: Improve to dump new information.
22589
22590 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22591
22592         * mono/metadata/metadata.c: Entered all the tables matching
22593         Beta2. 
22594
22595         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22596
22597
22598