2007-09-13 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2
3         * wrapper-types.h: Add an ALLOC wrapper type.
4
5         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
6         reference managed allocator methods.
7
8 2007-09-12  Marek Safar  <marek.safar@gmail.com>
9
10         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
11         of Type array and not MonoType, a fix suggested by Hari.
12         
13 2007-09-12  Jonathan Chambers <joncham@gmail.com>
14
15         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
16         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
17         
18         Code is contributed under MIT/X11 license.
19
20 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
21
22         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
23
24 2007-09-12  Marek Habersack  <mhabersack@novell.com>
25
26         * image.c (do_mono_image_open): if assembly file fails to open and
27         MONO_IOMAP is in effect, try to find the path in a
28         case-insensitive way.
29
30         * appdomain.c (mono_runtime_init): do not install postload hooks -
31         tests show that MS.NET doesn't use anything of that sort to
32         trigger the AppDomain.AssemblyResolve event.
33         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
34         made non-static.
35         (mono_runtime_init): init portability helpers here.
36
37         * assembly.c (mono_assembly_load_with_partial_name): if other   
38         attempts fail, trigger the AppDomain.AssemblyResolve event handler
39         to resolve the assembly.
40
41         * domain-internals.h: added mono_try_assembly_resolve and marked
42         it as internal.
43
44 2007-09-11  Jb Evain  <jbevain@novell.com>
45
46         * object-internals.h (MonoReflectionDynamicMethod): add
47         a `MonoReflectionType *owner` field. The owner is used
48         * reflection.c:
49         (mono_reflection_create_dynamic_method): use the owner of the dynamic
50         method as the class declaring the dynamic method.
51         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
52         dynamic method to the declaring type of the methodbuilder.
53
54 2007-09-11  Mark Probst  <mark.probst@gmail.com>
55
56         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
57         rules for calling methods via reflection.
58
59 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
60
61         * reflection.c (resolve_object): Add support for MonoGenericClass. 
62         Inflate MonoType's.
63
64 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
65
66         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
67         provide a managed method that does fast allocations without needing
68         a managed->unmanaged transition. Boehm GC implementation currently
69         enabled for ptrfree objects on sane architectures.
70
71 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
72
73         * marshal.c, marshal.h: exported a couple of useful functions and
74         added mono_mb_get_label () to easily handle backward branches.
75
76 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
77
78         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
79
80 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
81
82         * loader.c (find_method): Fixed the regression introduced while
83         fixing bug #81466.
84
85 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
86
87         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
88         well.
89         
90         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
91         icall.c reflection.c: Pass a MonoGenericContext argument to 
92         mono_lookup_dynamic_token ().
93
94         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
95         #82744.
96         
97 2007-09-09  Robert Jordan  <robertj@gmx.net>
98
99         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
100         for generic methods.
101
102         * object.c (mono_object_get_virtual_method): Handle generic methods.
103         Fixes bug #78882.
104
105         Code is contributed under MIT/X11 license.
106
107 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
108
109         * image.c: fix locking in mono_image_load_file_for_image ().
110
111 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
112
113         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
114         used only as a cache: added an icall to fill it.
115
116 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
117
118         * reflection.h: exposed mono_reflection_free_type_info
119         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
120         since mono_reflection_bind_generic_parameters makes a copy of it.
121         * reflection.c (free_type_info): subinfos should be freed.
122         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
123         made non static.
124         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
125         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
126         this fixes #82695 and #81726.
127    
128
129 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
130
131         * process.h, process.c:  added support for user profile/info in
132           ProcessStartInfo. For now only Windows works.
133
134 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
135
136         * metadata.c: consider the generic arguments when comparing
137         signatures (bug #82614).
138
139 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
140
141         * cil-coff.h, image.c: updated assembly loader to cope with the
142         PE32+ 64 bit file format.
143
144 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
145
146         * assembly.c, class.c, domain.c, loader.c: remove useless
147         inclusion of cil-coff.h.
148
149 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
150
151         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
152         if interface is marked with CoClassAttribute. 
153    
154         Code is contributed under MIT/X11 license.
155
156 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
157
158         * sgen-gc.c: ensure no object from the to space is copied again or finalized
159         if it's seen twice in major collections.
160
161 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
162
163         * sgen-gc.c: big objects are not copied to the gray area, but they
164         need to be considered for scanning, too, if they are brought alive
165         by an object ready for finalizations or a survived one.
166
167 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
168
169         * sgen-gc.c: properly account the number of disappearing links when
170         they are nullified.
171
172 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
173
174         * sgen-gc.c: share the code to scan the registered roots between the
175         different types of collections.
176
177 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
178
179         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
180
181 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
182
183         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
184         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
185
186 2007-08-28  Mark Probst  <mark.probst@gmail.com>
187
188         * security-manager.c (mono_security_manager_get_methods):
189         LinkDemandSecurityException now has 2 arguments instead of 3.
190
191 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
192
193         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
194         platforms which need it.
195
196 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
197
198         * sgen-gc.c: unregister thread data structures with a pthread_key_t
199         dtor.
200
201 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
202
203         * threads.c: free the thread static data on thread exit.
204
205 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
206
207         * class.c: walk the hierarchy to find the generic definition for
208         a class (fixes runtime part of bug #82498).
209
210 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
211
212         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
213         ...
214
215         * image.c (mono_image_close): Here. Hopefully fixes #82510.
216
217 2007-08-24  Mark Probst  <mark.probst@gmail.com>
218
219         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
220
221 2007-08-24  Robert Jordan  <robertj@gmx.net>
222
223         * appdomain.c: don't perform the ':'->';' substitution on Win32.
224
225 2007-08-24  Jb Evain  <jbevain@novell.com>
226
227         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
228         for byref types.
229
230 2007-08-24  Mark Probst  <mark.probst@gmail.com>
231
232         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
233         #82286.
234
235 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
236
237         * assembly.c: Fix a warning.
238         
239 2007-08-23  Marek Habersack  <mhabersack@novell.com>
240
241         * appdomain.c: parse the <runtime> section looking for the probing
242         element with the 'privatePath' attribute, which sets additional
243         directories in which the runtime should look for assemblies.
244
245 2007-08-23  Robert Jordan  <robertj@gmx.net>
246
247         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
248         Fixes #82499.
249
250 2007-08-23  Martin Baulig  <martin@ximian.com>
251
252         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
253         _mono_debug_init_corlib() and remove it from the header file.
254
255 2007-08-23  Martin Baulig  <martin@ximian.com>
256
257         * mono-debug-debugger.c
258         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
259         don't notify the debugger about it.
260
261         * mono-debug-debugger.h
262         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
263
264 2007-08-23  Robert Jordan  <robertj@gmx.net>
265
266         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
267         Code is contributed under MIT/X11 license.
268
269 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
270
271         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
272
273 2007-08-22  Martin Baulig  <martin@ximian.com>
274
275         * mono-debug.c: Store debugging info on a per-domain basis and
276         free it on domain unload.  Add support for unloading symbol files.
277
278         * mono-debug.h
279         (MonoDebugList): New typedef.
280         (MonoSymbolTable):
281         - add `data_tables and `type_table'.
282         - replace 'symbol_files' and `num_symbol_files' with a
283           `MonoDebugList *'.
284         (mono_debug_data_table): Removed.
285         (mono_debug_list_add): New public function.
286         (mono_debug_list_remove): New public function.
287         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
288         (mono_debug_init_2_memory): Renamed into
289         mono_debug_open_image_from_memory().
290         (mono_debug_close_image): New public function.
291         (mono_debug_domain_create): Likewise.
292         (mono_debug_domain_unload): Likewise.
293         (MONO_DEBUGGER_VERSION): Bump to 60.
294
295         * mono-debug-debugger.h
296         (MonoDebuggerEvent):
297         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
298         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
299         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
300         - rename `THREAD_CREATED' and `THREAD_EXITED' into
301           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
302         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
303           meaning.
304         (mono_debugger_add_symbol_file): Removed.
305         (mono_debugger_add_type): Removed.
306         (mono_debugger_lookup_type): Removed.
307         (mono_debugger_lookup_assembly): Removed.
308
309         * domain.c
310         (mono_domain_create): Call mono_debug_domain_create().
311         (mono_init_internal): Call mono_debug_init_corlib().
312
313         * assembly.c
314         (mono_assembly_close): Call mono_debug_close_image().
315
316 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
317
318         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
319         mmap call.
320
321 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
322
323         * sgen-gc.c: ensure section->pin_queue_end is initialized
324         correctly when non pinning objects in the section have been found.
325
326 2007-08-22  Marek Habersack  <mhabersack@novell.com>
327
328         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
329         containing a list of directories separated by ':'. MSDN docs say
330         the directories should be separated with ';'. Part of a bugfix for
331         bug #81446
332
333 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
334
335         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
336         it should MonoType and not MonoClass.
337
338 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
339
340         * culture-info-table.h : regenerated.
341
342 2007-08-20  William Holmes  <billholmes54@gmail.com>
343
344         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
345          to call ReplaceFile Kernel32 on windows or in io-layer.
346         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
347         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
348          as an internal call.
349
350         Code is contributed under MIT/X11 license.
351
352 2007-08-20  Jb Evain  <jbevain@novell.com>
353
354         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
355         and MONO_EXCEPTION_FIELD_ACCESS.
356
357         * debug-helpers.[c|h]: new mono_field_full_name function.
358
359 2007-08-20  Mark Probst  <mark.probst@gmail.com>
360
361         * class.c: Removed class_security_level() and moved it to
362         security-core-clr.c.
363
364         * security-core-clr.c, security-core-clr.h: class_security_level()
365         is now public and renamed to mono_security_core_clr_class_level().
366         It also looks for security attributes in the classes a class is
367         nested in.
368
369 2007-08-20  Mark Probst  <mark.probst@gmail.com>
370
371         * security-core-clr.c, security-core-clr.h: CoreCLR security
372         utility functions.
373
374         * Makefile.am: Added security-core-clr.[ch].
375
376         * security-manager.c, security-manager.h: Functions and enum for
377         setting and getting the security mode.
378
379         * class.c: CoreCLR security checks.
380
381 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
382
383         * icall-def.h, process.c, process.h: implemented icall to get
384         user/system processor times.
385
386 2007-08-17  Mark Probst  <mark.probst@gmail.com>
387
388         * domain.c, threads.c, class-internals.h, domain-internals.h: New
389         reader-lock-free jit_info_table.
390
391 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
392
393         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
394
395         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
396
397         * object-internals.h (MonoException): Add missing _data member.
398
399 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
400
401         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
402         checking that only methods with matching qname or fqname are picked
403         from implemented interfaces.
404
405 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
406
407         * verify.c (do_newarr):added, do type verification of
408         newarr ops, push the right value on the eval stack.
409         * verify.c (mono_method_verify): use do_newarr
410
411
412 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
413
414         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
415         factored the common code into get_boxable_mono_type, which
416         is now using mono_type_get_full, this fixed byref related tests.
417
418 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
419
420         * class.c: added mono_type_get_full, this function has the same
421         behavior of mono_class_get_full but the returned MonoType has
422         all metadata of the associated token in case of a typespec token.
423         * class.c: added mono_type_retrieve_from_typespec, used by 
424         mono_type_get_full to retrieve the token type.
425         * class.c (mono_class_create_from_typespec): changed to use
426         mono_type_retrieve_from_typespec.
427         * class.c (mono_ldtoken): changed to use mono_type_get_full
428         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
429         * class-internals.h: exported mono_type_get_full for internal use.
430
431 2007-08-16  Jb Evain  <jbevain@novell.com>
432
433         * domain.c (supported_runtimes): add entry for
434         the 'moonlight' runtime version.
435
436 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
437
438         * verify.c (mono_method_verify): small typo sliped in.  
439
440 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
441
442         * verify.c (do_unbox_value): added, do type verification of
443         unboxing ops
444         * verify.c (mono_method_verify): use do_unbox_value
445
446
447 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
448
449         * verify.c (dump_stack_value): fixed typo, was printing string
450         instead of object on stack.
451         * verify.c (do_box_value): moved the byref check up as it leads
452         to invalid code and should be done earlier.
453         * verify.c: improved error messages for and ldobj
454
455 2007-08-15  William Holmes  <billholmes54@gmail.com>
456
457         * marshal.c (emit_marshal_custom): Omit the call to 
458           marshal_native_to_managed when calling native to managed 
459           and the argument is specified as an out argument.
460
461         Code is contributed under MIT/X11 license.
462
463 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
464
465         * verify.c: fixed the type checks for generics, function pointers and vectors.
466         Added type verification for ldobj and ldtoken. The verifier
467         would segfault if header or signature of a method contained references
468         to non-existant types.
469
470 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
471
472         * marshal.c (cominterop_get_ccw): Patch from
473         Bill Holmes to no walk up interface hierarchy. 
474         All parent methods should be present in the interface for COM.
475    
476         Code is contributed under MIT/X11 license.
477
478 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
479
480         * marshal.c (emit_marshal_com_interface): Patch from
481         Bill Holmes to handle COM Interfaces as return values
482         for native->managed calls.
483    
484         Code is contributed under MIT/X11 license.
485
486 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
487
488         * marshal.c (cominterop_get_idispatch_for_object): Implement
489         for runtime callable wrappers.
490    
491         Code is contributed under MIT/X11 license.
492
493 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
494
495         * pedump.c (main): changed from mono_init to mono_init_from_assembly
496         so 2.0 types are accessible
497
498
499 2007-08-13  Miguel de Icaza  <miguel@novell.com>
500
501         * domain.c (mono_init_internal): Call mono_assembly_load_friends
502         once we load mscorlib.   Due to the order in which we initialize,
503         the mono_assembly_load_full routine that loads mscorlib did not
504         load friends.   We now load it once we load the
505         mono_defaults.internals_visible_class class. 
506
507         * assembly.c: Expose the mono_load_friend_assemblies method.
508
509 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
510
511         * verify.c: improved the handling of boxing, better
512         type checking for unary ops and conversion. Fix bug
513         regarding managed pointer compatibility checking
514
515 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
516
517         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
518
519         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
520
521 2007-08-09  Raja R Harinath  <rharinath@novell.com>
522
523         * reflection.c (dup_type): Remove.
524         * class.c (dup_type): Remove.
525         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
526         instead of the dodgy 'dup_type'.
527         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
528         handle the case where 'dup_type' needed the second argument.
529
530 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
531
532         * domain.c: Fix a warning.
533
534 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
535
536         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
537         checking that methods with the same fqname are not overridden
538         with a method from an ancestor.
539
540 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
541
542         * threads.c (free_thread_static_data_helper): Avoid a crash if
543         thread->static_data is not yet set.
544
545 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
546
547         * marshal.c: Use correct image when emitting
548         native wrapper for COM calls.
549    
550         Code is contributed under MIT/X11 license.
551
552 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
553
554         * icall-def.h, security.c, security.h :
555           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
556
557 2007-08-07  Martin Baulig  <martin@ximian.com>
558
559         * mono-debug-debugger.h
560         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
561
562         * domain.c (mono_domain_free): Call
563         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
564
565 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
566
567         * verify.c (check_underflow, check_overflow): error message now returns IL offset
568         * verify.c (in_same_block): code should test if either offset is inside the clauses
569         * verify.c (mono_method_verify): push the exception into the eval stack of exception
570         and filter blocks
571
572 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
573
574         * image.c (mono_image_close): Fix a leak.
575
576         * object.c (mono_runtime_invoke_array): Avoid using alloca.
577
578         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
579
580 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
581
582         * domain.c, threads.c, threads-types.h: fix memory retention issue
583         with thread static variables not being cleared on domain unload.
584         Reuse thread static slots after domain unload.
585
586 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
587
588         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
589         nullable type.
590
591         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
592         now done in mono_runtime_invoke_array.
593
594         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
595         receiver is a nullable type.
596
597         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
598         generic parameter.
599
600 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
601
602         * marshal.c: Implement COM Objects as return type for 
603         managed->unmanaged calls. Added Release calls for COM Object
604         out/return values in managed->unmanaged calls.
605
606         Code is contributed under MIT/X11 license.
607
608 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
609
610         * threads.h, threads-type.h: move the hazard pointer declarations
611         to the private header.
612
613 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
614
615         * file-io.c, appdomain.c: memory leak fixes.
616
617 2007-08-02  Dick Porter  <dick@ximian.com>
618
619         * socket-io.c
620         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
621         SO_REUSEADDR setting into io-layer/sockets.c.
622
623 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
624
625         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
626         from Object when called on a generic parameter. Fixes #82211.
627
628 2007-08-01  Dick Porter  <dick@ximian.com>
629
630         * file-io.c (convert_share): Test FileShare values bit-by-bit.
631         Fixes bug 79250 yet again.
632
633 2007-07-30  Martin Baulig  <martin@ximian.com>
634
635         Merged the `debugger-dublin' branch.
636
637         * mono-debug.h
638         (MonoDebugDataTable): New typedef.
639         (MonoDebugMethodAddressList): New typedef.
640         (MonoDebugWrapperData): Removed.
641         (MonoDebugSymbolTable): Removed `current_data_table',
642         `current_data_table_size', `current_data_table_offset'.
643         (MonoDebugDataItemType): Moved into mono-debug.c.
644         (MonoDebugMethodJitInfo): Remove `address'.
645         (mono_debug_data_table): New global variable.
646         (mono_debug_lookup_method_addresses): New public function.
647         (mono_debug_find_method): Take a `MonoMethod *', not a
648         `MonoDebugMethodInfo *'.
649
650         * mono-debug.c: Drop support for the old symbol tables.
651
652 2007-06-28  Martin Baulig  <martin@ximian.com>
653
654         * mono-debug.c (mono_debug_debugger_version): New public variable.
655
656 2007-07-31  William Holmes  <billholmes54@gmail.com>
657
658         * metadata.c Changed mono_type_create_from_typespec to not insert
659           the type into the hash map until after
660           do_mono_metadata_parse_type has completed.
661         Fixes Bug #82194
662         Code is contributed under MIT/X11 license.
663
664 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
665
666         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
667         generic parameter. Fixes #82211.
668
669 2007-07-27  Jb Evain  <jbevain@novell.com>
670
671         * pedump.c (dump_metadata, dump_metadata_header): dump
672         versions contained in the metadata header.
673
674 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
675
676         * threads.c: register small_id_table with the GC.
677
678 2007-07-27  Mark Probst  <mark.probst@gmail.com>
679
680         * threads.c, threads.h, class-internals.h, object-internals.h:
681         Hazard pointers, to be used by lock-free parallel algorithms.
682
683 2007-07-26  Dick Porter  <dick@ximian.com>
684
685         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
686         routine on non-windows platforms, as I've not managed to think of
687         a non-kludgy way of doing this.  Finishes off bug 78739.
688
689 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
690
691         * object.c: properly setup interface_bitmap in proxy vtables.
692
693 2007-07-25  Marek Habersack  <mhabersack@novell.com>
694
695         * appdomain.c (get_shadow_assembly_location): do not use TickCount
696         to create unique shadow copy target directories, use the domain's
697         serial number instead. Each domain gets a unique target directory
698         that way.
699
700         * domain.c (mono_domain_create): added code to increment domain
701         shadow copy serial number and cache the value in the current
702         domain structure.
703
704         * domain-internals.h (struct _MonoDomain): added a new field -
705         shadow_serial to hold the serial number used in generation of
706         shadow-copy directories. This is to make sure that the directory
707         name is unique for each and every domain created. We avoid a race
708         condition with overriding assemblies already in use by other app
709         domains.
710
711 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
712
713         * class.c (mono_bounded_array_class_get): fixed memory leak when 
714         binding generic parameters.
715
716 2007-07-24  Raja R Harinath  <rharinath@novell.com>
717
718         * metadata.c (do_mono_metadata_parse_generic_class): Use
719         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
720         error.
721
722 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
723
724         * loader.c, class-internals.h, reflection.c: removed the per-method
725         generics hashtable: we use the global one through the call of
726         mono_class_inflate_generic_method ().
727
728 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
729
730         * class.c, metadata.c, class-internals.h: introduce yet another
731         generics global cache for inflated methods (fixes 98% of the perf
732         issue in bug #81806).
733
734 2007-07-23  Raja R Harinath  <rharinath@novell.com>
735
736         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
737         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
738         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
739         return a MonoGenericInst containing (a copy) of those types.
740         (mono_metadata_inflate_generic_inst): Update to changes.
741         (mono_metadata_parse_generic_inst): Likewise.
742         (mono_get_shared_generic_inst): Likewise.
743         * reflection.c (mono_class_bind_generic_parameters): Likewise.
744         (mono_reflection_bind_generic_method_parameters): Likewise.
745         * metadata-internals.h: Likewise.
746         * icall.c (free_generic_context): Kill.
747         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
748
749         * reflection.c (reflection_methodbuilder_to_mono_method): Use
750         mono_metadata_type_dup.
751         * marshal.c (mono_mb_create_method): Likewise.
752
753         * metadata.c (mono_metadata_type_dup): Rename from
754         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
755         MonoImage.  Handle a few more cases, esp. when no mempool is given.
756         * marshal.c, metadata-internals.h: Update to changes.
757
758 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
759
760         * class.c: fixed a small leak for array classes and removed warning.
761
762 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
763
764         * loader.c (mono_method_get_param_token): Make this work on generic methods.
765         Return 0x8000000 for return parameters. Fixes #82161.
766
767 2007-07-21  Marek Habersack  <grendello@gmail.com>
768
769         * appdomain.c (get_shadow_assembly_location): append the current
770         ticks value to the path. Avoids overwriting the same assemblies by
771         several threads at the same time.
772
773 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
774         and Raja R Harinath  <rharinath@novell.com>
775
776         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
777         Simplify slightly.
778         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
779         property for testing if a method is a generic method definition.
780
781 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
782
783         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
784
785 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
786
787         * verify.c: used function from private branch, reverted to the one in class.h 
788
789 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
790
791         * verify.c: a typo slipped in and the code wont compile
792
793 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
794
795         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
796         disabled box instruction as it is doing the wrong thing
797         improved stack dump messages, now it is easier to debug type related issues
798
799
800 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
801
802         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
803
804 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
805
806         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
807         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
808         grouped with class and valuetype. This change will simply 
809         the code as it should be handled just like unmanaged pointers.
810
811 2007-07-19  Mark Probst  <mark.probst@gmail.com>
812
813         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
814
815 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
816
817         * verify.c: several stack merge issues fixed, reference comparisons now
818         check the type size. strict type check now works correctly.
819         added more uses of IS_MANAGED_POINTER macro.
820         fixed issues pointed by running the test suite against .net.
821         
822
823 2007-07-19  Mark Probst  <mark.probst@gmail.com>
824
825         * class.c, loader.c, class-internals.h: Removed the
826         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
827         defines.
828
829         * icall.c: Better error checking in some internal reflection
830         methods.
831
832 2007-07-18  William Holmes  <billholmes54@gmail.com>
833
834         * filewatcher.c : removed unused variable 'filename' in 
835           ves_icall_System_IO_FSW_SupportsFSW
836
837 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
838
839         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
840         obsolete, removed.
841
842 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
843
844         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
845         
846         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
847
848 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
849
850         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
851         Implement generics support.
852         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
853
854         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
855         type_args and method_args arguments.
856         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
857         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
858         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
859
860 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
861
862         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
863           It adds a rootimage parameter to mono_reflection_get_type_internal,
864           adds new function mono_reflection_get_type_with_rootimage and use
865           the rootimage to resolve the types instead of the current image
866
867 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
868
869         * culture-info-table.h: Forgot to update after r78304.
870
871 2007-07-13  Raja R Harinath  <rharinath@novell.com>
872
873         * class.c (mono_class_is_open_constructed_type)
874         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
875
876 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
877
878         * class.c (mono_bounded_array_class_get):  method fails if used with
879         an incomplete TypeBuilder enum (no basetype field), fixed it by 
880         avoiding calculating the size for such array as it cannot be instantiated.
881         Fix bug #82015
882
883 2007-07-12  Raja R Harinath  <rharinath@novell.com>
884
885         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
886         field.
887         * metadata.c, reflection.c: Update to changes.
888
889 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
890
891         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
892         mono_class_is_valid_enum, they are used to valide a enum when loading.
893         * reflection.c: used new functions to throw TypeLoadException when and
894         invalid enum is build with TypeBuilder. Fixes #82018
895   
896 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
897
898         * object.c: forgot commit of mono_class_setup_methods () to access
899         iface->methods.
900         * object-internals.h: added a few more handy fields to
901         MonoIMTCheckItem.
902
903 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
904
905         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
906         iface->methods.
907
908 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
909
910         * class-internals.h, object-internals.h, object.c: IMT-based
911         interface invocation core from Massimiliano Mantione
912         (massi@ximian.com) with a reworked arch-specific interface,
913         bsearch implementation and a few bugfixes and memory savings by me.
914
915 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
916
917         * class.c (mono_class_create_from_typedef): mono would segfault if 
918         an enum did not have a __value field. It now throws a TypeLoadException
919         for such cases. Fix bug #82022
920
921 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
922
923         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
924
925 2007-07-09  Mark Probst  <mark.probst@gmail.com>
926
927         * class.c (mono_class_init): If a class is already inited but has
928         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
929
930 2007-07-09  Mark Probst  <mark.probst@gmail.com>
931
932         * class.c: Properly handle the case of an unimplemented interface
933         method.  Fixes: 81673.
934
935 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
936
937         * class-internals.h, object.c: cleanup patch from massi: use
938         MonoVTable->interface_bitmap since the vtable interfaces offset array
939         is going away.
940
941 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
942
943         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
944         GetMDStreamVersion icall instead.
945
946 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
947
948         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
949         not use mono_dl_build_path() with a full library name: makes
950         fallbacks to libgaim and libfam work.
951
952 2007-07-06  William Holmes  <billholmes54@gmail.com>
953
954         * assembly.c: Added a continue statement in probe_for_partial_name when
955          parse_assembly_directory_name fails.  Fixes : 82002
956
957 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
958
959         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
960         and added a verification  for TYPEDBYREF.
961         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
962         make native int interchangeable with int32 and some small cleanup and formating.
963         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
964         handle byref of byref.
965         * verify.c (push_local): handle byref of byref.
966         * verify.c (do_binop): invalid mix of values is unverifiable
967         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
968         added visibility checks
969         * verify.c (field related method): added visibility checks
970         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
971
972 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
973
974         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
975         string.
976
977 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
978
979         * profiler.c (mono_profiler_load): Fix an off-by-one error.
980
981         * marshal.c (emit_marshal_string): When returning a string from managed code,
982         allways make a copy even for unicode strings. Fixes #81990.
983
984 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
985
986         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
987         of byref generic inst types (bug #81997).
988
989 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
990
991         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
992         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
993
994 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
995
996         * marshal.c (emit_marshal_string): Add support for unicode strings in
997         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
998
999 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1000
1001         * verify.c: field load/store are now verified, missing only access checks now
1002
1003 2007-06-28  Martin Baulig  <martin@ximian.com>
1004
1005         * mono-debug.c (mono_debug_debugger_version): New public variable.
1006
1007 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1008
1009         * locales.c: When constructing DateTimeFormat or NumberFormat for
1010         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1011         MonoCultureInfo contructed from the current locale is always
1012         read-only and has UseUserOverride set to true. All MonoCultureInfo
1013         instances returned for GetCultures have both IsReadOnly and
1014         UseUserOverride set to true. Fixes part of bug #81930.
1015
1016 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1017
1018        * icall-def.h: Update System.__ComObject icalls
1019        * marshal.c: Avoid managed transition (and object creation)
1020        when looking up COM interface in RCW.
1021        * marshal.h: Ditto.
1022        
1023        Code is contributed under MIT/X11 license.
1024
1025 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1026
1027         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1028         to avoid crashes during assembly unloading.
1029
1030 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1031
1032         Fix MethodInfo.IsGenericMethodDefinition
1033         * reflection.c (mono_reflection_bind_generic_method_parameters):
1034         Rearrange code to ensure we always uses a generic method definition.
1035         * class.c (mono_class_inflate_generic_method_full): Set
1036         'generic_container' field only for generic method definitions.
1037         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1038         Use presense of 'generic_container' field as indication of being a
1039         generic method definition.
1040
1041 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1042
1043         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1044
1045         * object-internals.h: Reflect changes in the layout of the managed Delegate
1046         class.
1047         
1048         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1049         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1050         runtime memory used by the dynamic method. Fixes #77146.
1051
1052 2007-06-21  Dick Porter  <dick@ximian.com>
1053
1054         * file-io.h: 
1055         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1056         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1057         81767.
1058
1059 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1060
1061         * reflection.c (method_encode_methodspec): Add a tripwire.
1062         * class.c (inflate_generic_type): The fully open generic type is
1063         not the same as the generic type definition.
1064
1065 2007-06-21  Martin Baulig  <martin@ximian.com>
1066
1067         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1068
1069         * mono-debug-debugger.h
1070         (MonoDebuggerBreakpointInfo): Removed.
1071         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1072         (mono_debugger_remove_breakpoint): Likewise.
1073         (mono_debugger_breakpoint_callback): Likewise.
1074         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1075
1076 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1077
1078         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1079         generic type is not the same as the generic type definition.
1080         * class.c (mono_generic_class_get_class): Likewise.
1081
1082 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1083
1084         * icall.c: The second argument to 
1085         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1086         is a MonoType not a MonoClass.
1087
1088 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1089
1090         * verify.c: support for function pointers in the verifier
1091
1092 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1093
1094         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1095
1096 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1097
1098         * assembly.c: removed Mono.Data.SqliteClient from the list of
1099         forward-compatible assemblies as it breaks the ABI (bug #81899).
1100
1101 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1102
1103         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1104         lookup/update with the loader lock.
1105         * reflection.c (mono_class_bind_generic_parameters): No need to
1106         protect mono_metadata_lookup_* with the loader lock.
1107         * class.c (inflate_generic_type): Likewise.
1108         
1109         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1110         on a generic instantiated type.
1111
1112 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1113
1114         *verify.c: produce meanfull error messages on verification error
1115         *verify.c: fixed some cases of verification errors reported as validation errors
1116         *pedump.c: fixed the error name array, now it shows validation errors properly
1117         *verify.h: fixed the contant that should be used for verification errors
1118
1119 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1120
1121         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1122         for bug #77596, 81858 and 80743 (generics data structures on domain
1123         unload).
1124
1125 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1126
1127         Avoid allocating 'MonoGenericContext' on the heap.
1128         * class-internals (_MonoMethodInflated::context): Make field
1129         inline, not a pointer.
1130         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1131         stack.  Use the context embedded within the inflated method as the
1132         hash key, rather than 'new_context'.
1133         * class.c (inflate_generic_context): Simplify.  Return a struct
1134         rather than allocating on the heap.
1135         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1136         doesn't salt away a copy of the context -- simplifying the
1137         lifetime rules of a 'MonoGenericContext *'.
1138         (mono_method_get_context): Return pointer to embedded context.
1139         (setup_generic_array_ifaces): Allocate temporary context on stack.
1140         * reflection.c (inflate_mono_method): Likewise.
1141         (mono_reflection_bind_generic_method_parameters): Likewise.
1142         Use the context embedded within the inflated method as the hash key.
1143
1144         Avoid a source of allocation of 'MonoGenericContext'.
1145         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1146         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1147         * class.c: Update to changes.
1148         (mono_generic_class_get_context): Simplify drastically.  Now just
1149         returns a pointer to the field.
1150         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1151         argument as a const pointer.
1152         (mono_metadata_generic_context_equal): Likewise.
1153         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1154         Update to changes.
1155
1156 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1157
1158         * verify.c improved the handling of brtrue/brfalse, factored out common code
1159
1160 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1161
1162         Kill MonoGenericMethod.
1163         * class-internals.h (MonoGenericContext::method_inst): Rename from
1164         'gmethod' and convert to a MonoGenericInst.
1165         (MonoGenericMethod): Remove.
1166         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1167         * loader.c (method_from_methodspec): Update to changes.  Use a
1168         MonoGenericContext as the key to the hashtable.
1169         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1170         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1171         (mono_metadata_generic_context_hash): Likewise from
1172         'mono_metadata_generic_method_hash'.  Change hash function.
1173         (mono_metadata_load_generic_params): Update to changes.
1174         (mono_get_shared_generic_method): Remove.
1175         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1176         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1177         (inflate_generic_context): Likewise.
1178         (mono_class_inflate_generic_method_full): Likewise.
1179         (setup_generic_array_ifaces): Likewise.
1180         (mono_class_create_from_typespec): Likewise.
1181         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1182         (method_encode_methodspec): Update callsite.
1183         (reflection_methodbuilder_to_mono_method): Update to changes.
1184         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1185         MonoGenericContext as the key to the hashtable.
1186         (inflate_mono_method): Update to changes.
1187
1188         * class-internals.h (MonoGenericMethod::container): Remove.
1189         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1190
1191 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1192
1193         * profiler-private.h, profiler.c, profiler.h: added API to profile
1194         exception events.
1195
1196 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1197
1198         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1199
1200 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1201
1202         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1203         Fixed overflow and underflow not aborting the verification process.
1204
1205 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1206
1207         * class-internals.h (MonoStats): Added stats entries for dynamic
1208         code allocations.
1209
1210 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1211
1212         * loader.c (mono_free_method): Free header->locals and header->clauses.
1213
1214         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1215         dynamic case.
1216
1217         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1218
1219         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1220
1221 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1222
1223         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1224         the tables.
1225
1226 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1227
1228         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1229
1230 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1231
1232         MonoGenericMethod on a diet
1233         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1234         here ...
1235         (_MonoGenericMethod::reflection_info): ... from here.
1236         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1237         Update to changes.
1238         * reflection.c (inflate_mono_method): Likewise.
1239         (mono_reflection_bind_generic_method_parameters): Likewise.
1240
1241 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1242
1243         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1244         *verify.c: factored long ldarg forms to share code with short forms
1245
1246 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1247
1248         *verify.c: fixed code formating factored some duplicate code
1249         into a new function
1250
1251         *verify.h: fixed binary incompatibility introduced earlier
1252
1253         *pedump.c: fixed formating
1254
1255 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1256
1257         Fix assertion when disassembling Mono.C5.dll
1258         * loader.c (method_from_methodspec): Avoid inflating a method
1259         twice with the same context.  If the methodref is inflated, use
1260         the declaring method instead.
1261
1262         * class.c (mono_class_from_generic_parameter): Fix case similar to
1263         bug #81830 handled below, but for method containers.
1264
1265 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1266
1267         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1268         get_shared_generic_class.  Directly inflate the instance.
1269         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1270         (inflate_generic_class): Delete.
1271         (get_shared_generic_class): Delete.  Move setting of
1272         'cached_class' and 'cached_context' ...
1273         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1274
1275         * metadata.c (mono_metadata_lookup_generic_class): Change
1276         signature to take the components of a MonoGenericClass rather than
1277         an allocated MonoGenericClass.  Change semantics to be intern-like.
1278         * reflection.c (mono_class_bind_generic_parameters): Update to
1279         changes.  Make locking region tighter.
1280         * class.c (inflate_generic_class): Update to changes.
1281         (get_shared_generic_class): Likewise.
1282         * metadata-internals.h: Likewise.
1283
1284         * reflection.c (mono_class_bind_generic_parameters): Take and
1285         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1286         (mono_reflection_bind_generic_parameters): Use
1287         'mono_class_bind_generic_parameters' rather than duplicate the code.
1288         * class.c (mono_bounded_array_class_get): Update to changes.
1289         * object-internals.h: Likewise.
1290
1291         * reflection.c (mono_class_bind_generic_parameters): Only support
1292         parameterizing generic type definitions.  Remove support for other
1293         open types.
1294
1295 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1296
1297         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1298
1299         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1300         in the dynamic case.
1301
1302 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1303
1304         * threads.c: When cleaning up thread, reset the Background bit.
1305         Fixes bug #81720.
1306
1307 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1308
1309        * metadata.c: Move variable declarations to top of scope.
1310        * verify.c: Move variable declarations to top of scope.
1311
1312        Code is contributed under MIT/X11 license.
1313
1314 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1315
1316         * reflection.c (mono_class_bind_generic_parameters): Replace
1317         open-coded loop with mono_metadata_inflate_generic_inst.
1318
1319         * class.c (get_shared_generic_class): Don't call
1320         mono_get_shared_generic_inst.  Use the container's own
1321         'class_inst'.
1322
1323         * metadata.c (mono_metadata_load_generic_params): Move
1324         initialization of 'context' field here from ...
1325         * class.c (mono_class_create_from_typedef): ... here, and ...
1326         * loader.c (mono_get_method_from_token): ... here.
1327
1328         * class.c (get_shared_generic_class): Rename from
1329         mono_get_shared_generic_class and make static.
1330         (mono_get_shared_generic_inst): Move to metadata.c.
1331         * loader.c (mono_get_shared_generic_method): Likewise.
1332         * class-internals.h, metadata-internals.h: Update to changes.
1333
1334         Fix #81830
1335         * class.c (mono_class_from_generic_parameter): Don't assume a
1336         generic container owner exists.  Generic containers from monodis
1337         don't have any.
1338
1339 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1340
1341         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1342         * verify.h: new typedefs to returns the non-verifiable status
1343         * verify.c: initial implementation of generics, stack merging and object compatibility check
1344
1345 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1346
1347         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1348         a MonoInternalHashTable again (fixed bug in internal hash table
1349         code).
1350
1351 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1352
1353         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1354         MonoInternalHashTable again (fixed bug in internal hash table
1355         code).
1356
1357 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1358
1359         * class.c, image.c, class-internals.h, domain.c,
1360         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1361         changes.  Have to figure out what makes them break the SWF
1362         regression.
1363
1364 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1365
1366         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1367         a MonoInternalHashTable now.
1368
1369 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1370
1371         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1372         MonoInternalHashTable now.
1373
1374 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1375
1376         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1377         invoke_impl code.
1378
1379         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1380
1381         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1382         dependent trampoline.
1383
1384         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1385
1386         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1387
1388 2007-05-29  Robert Jordan  <robertj@gmx.net>
1389
1390         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1391
1392 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1393
1394         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1395
1396 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1397
1398        * marshal.c: Fix interface lookup loops for
1399        cominterop_get_com_slot_for_method and 
1400        cominterop_get_method_interface. Only need to lookup
1401        if type is a class, else use interface type method is on.
1402
1403        Code is contributed under MIT/X11 license.
1404
1405 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1406
1407         * reflection.c: HasSecurity can be present even if no specially 
1408         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1409         SecurityAttribute). Fix CAS regression tests on buildbot.
1410
1411 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1412
1413        * appdomain.c: Add configure checks for header files.
1414        * image.c: Add configure checks for header files.
1415        * file-io.c: Add configure checks for header files.
1416        * debug-mono-symfile.c: Add configure checks for header files.
1417        * threadpool.c: Add configure checks for header files.
1418        * console-io.c: Add configure checks for header files.
1419        * profiler.c: Add configure checks for header files.
1420        * rawbuffer.c: Add configure checks for header files.
1421        * icall.c: Add configure checks for header files.
1422        * rand.c: Add configure checks for header files.
1423        * socket-io.c: Add configure checks for header files.
1424
1425        Code is contributed under MIT/X11 license.
1426
1427 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1428
1429         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1430         assertion as it breaks the build.
1431         
1432         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1433
1434         * reflection.c (lookup_custom_attr): Make a copy here too.
1435
1436         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1437         dynamic images.
1438
1439         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1440         images.
1441
1442         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1443         info.
1444
1445 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1446
1447         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1448         (load_cattr_value): Ditto.
1449
1450 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1451
1452         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1453
1454 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1455
1456         * threads.c: In "start_wrapper", set apartment_state to MTA if
1457         apartment_state is Unknown and we're running on 2.0 profile or
1458         higher.
1459         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1460         to main method, then set apartment_state to Unknown on 1.0 profile,
1461         and MTA on 2.0 profile.
1462
1463 2007-05-16  Jb Evain  <jb@nurv.fr>
1464
1465         * class-internals.h (MonoDefaults): Add an attribute_class and
1466           customattribute_data_class.
1467         * domain.c (mono_init_internal): Populate them.
1468         * reflection.c: Use them to remove duplicates. Make a vew
1469         MonoClass variables `static'.
1470
1471 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1472
1473         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1474         step in implementing IMT, so that all isinst checks now can go
1475         through the bitmap.
1476         This was needed because vtables for TransparentProxy need to look
1477         like the vtable of the "target" class, so they need to point to
1478         its interface bitmap directly.
1479
1480         * object.c: inside "mono_class_create_runtime_vtable" and
1481         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1482
1483 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1484
1485         * object-internals.h
1486           culture-info.h : added territory field in MonoCulture and
1487           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1488         * locales.c : fill territory field above too.
1489         * culture-info-table.h : regenerated.
1490
1491 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1492
1493         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1494         Fixes #81599.
1495
1496 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1497
1498         * object.c: Always initialize apartment, even if 
1499         there is no custom attributes on entry point.
1500         
1501         Code is contributed under MIT/X11 license.
1502
1503 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1504
1505         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1506         * metadata.c: If no encoding is set, check for unicode
1507         on class.
1508         
1509         Code is contributed under MIT/X11 license.
1510
1511 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1512
1513         * threads.c: Handle if mono_thread_current returns NULL 
1514         
1515         Code is contributed under MIT/X11 license.
1516
1517 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1518
1519         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1520         in start_wrapper. Added mono_thread_init_apartment_state and
1521         mono_thread_cleanup_apartment_state.
1522         * object.c: Initialize thread apartment state on main thread
1523         by checking for STAThreadAttribute on entry point.
1524         * object-internals.h: Add apartment_state field to MonoThread.
1525         * threads-types.h: Add unmanaged definition of 
1526         System.Threading.ApartmentState, MonoThreadApartmentState.
1527         
1528         Code is contributed under MIT/X11 license.
1529         
1530 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1531
1532         * class.c: Fix windows build.
1533         * class-internals.h: Fix windows build.
1534         
1535         Code is contributed under MIT/X11 license.
1536
1537 2007-05-08  Robert Jordan  <robertj@gmx.net>
1538
1539         * process.c (CreateProcess_internal):
1540         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1541         .CreateNoWindow was specified. Fixes #81496.
1542
1543 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1544
1545         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1546         step in implementing IMT, replaced it with two compact arrays
1547         (interfaces_packed and interface_offsets_packed) and a bitmap that
1548         is used for isinst checks (interface_bitmap).
1549
1550         * class.c: (compare_interface_ids): compare function to pass to
1551         bsearch when looking for an interface with a given id.
1552         (mono_class_interface_offset): reimplemented using bsearch on
1553         interfaces_packed, getting the offset from interface_offsets_packed.
1554         (print_implemented_interfaces): utility debugging function.
1555         (setup_interface_offsets): reworked to initialize interfaces_packed,
1556         interface_offsets_packed and interface_bitmap.
1557
1558         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1559         with uses of interfaces_packed and interface_offsets_packed.
1560
1561 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1562
1563         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1564         mono_class_interface_offset prototype to wrap all accesses to
1565         "MonoClass.interface_offsets".
1566
1567         * class.c: Implemented mono_class_interface_offset, and wrapped all
1568         accesses to "MonoClass.interface_offsets".
1569
1570         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1571         "MonoClass.interface_offsets".
1572
1573 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1574
1575         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1576         GetMethodFromHandle overloads (bug #78637).
1577
1578 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1579
1580         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1581         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1582
1583 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1584
1585         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1586         #81498.
1587
1588         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1589         gracefully.
1590         (mono_custom_attrs_from_index): Ditto.
1591
1592         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1593         Fixes #81501.
1594
1595 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1596
1597         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1598         is now allocated from a mempool.
1599
1600 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1601
1602         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1603         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1604
1605 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1606
1607         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1608         mono_loader_clear_error () too late. Fixes #81463.
1609
1610 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1611
1612         * culture-info-table.h : regenerated.
1613
1614 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1615
1616         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1617         is missing.
1618
1619 2007-04-25  Dick Porter  <dick@ximian.com>
1620
1621         * Makefile.am: Put the mingw enforced-optimisation back into the
1622         PLATFORM_WIN32 section.
1623
1624 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1625
1626         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1627         patch.
1628
1629         * image.c (mono_image_load_module): New API function to load a module reference.
1630
1631         * image.c (load_modules): Load modules lazily. Fixes #80812.
1632
1633         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1634         
1635         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1636
1637         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1638         to mono_image_load_module_dynamic.
1639
1640 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1641
1642         * marshal.c: Fix calling convention for CCW on non-windows
1643         platforms. STDCALL on windows, CDECL everywhere else to work 
1644         with XPCOM and MainWin COM.
1645         
1646         Code is contributed under MIT/X11 license.
1647
1648 2007-04-23  Martin Baulig  <martin@ximian.com>
1649
1650         Fix #80969.
1651
1652         * loader.c
1653         (method_from_memberref): Added `gboolean *used_context' argument.
1654         (mono_get_method_from_token): Likewise.
1655         (mono_get_method_full): Don't insert the method in the cache when
1656         `used_context' is true.
1657
1658 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1659
1660         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1661
1662         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1663         create new MonoTypes for returned types.
1664         * class.c (mono_generic_class_get_class): Export mono-internal.
1665         * class-internals.h: Update to changes.
1666
1667 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1668
1669         * threadpool.c, threadpool.h, icall-def.h: patch from
1670         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1671
1672 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1673
1674         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1675         
1676         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1677
1678         * threads.c (mono_thread_get_stack_bounds): New helper function.
1679
1680         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1681         Correctly compute stack bounds when attaching. Fixes #81394.
1682
1683 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1684
1685         * reflection.c: fix handling of doubles in custom attributes
1686         for the arm-fpa format (bug #81368).
1687
1688 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1689
1690         * reflection.c (assembly_add_win32_resources): Mildly relax an
1691         bounds check to let the end pointer point just past the end of the
1692         allocated buffer.  (may fix #81384)
1693
1694 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1695
1696         * culture-info-table.h : regenerated.
1697
1698 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1699
1700         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1701         the thread is aborted early.
1702
1703 2007-04-05  Dick Porter  <dick@ximian.com>
1704
1705         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1706         FindFirstFile()/FindNextFile() to find entries.  This lets the
1707         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1708         81038.
1709
1710         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1711         the parameters of
1712         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1713
1714 2007-04-04  Martin Baulig  <martin@ximian.com>
1715
1716         * debug-helpers.c
1717         (mono_method_desc_full_match): Add support for nested classes.
1718
1719 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1720
1721         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1722
1723 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1724
1725         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1726         waiting for too many threads.
1727
1728 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1729
1730         * environment.c: Fix return value check on uname so we can get the 
1731         executing version on Solaris operating systems.
1732
1733 2007-03-28  Jb Evain  <jbevain@gmail.com>
1734
1735         * class.c (mono_type_get_name_recurse): Complete the
1736         fix for the creation of assembly qualified names for
1737         pointer types. Fixes #81208.
1738
1739 2007-03-27  Dick Porter  <dick@ximian.com>
1740
1741         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1742         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1743         changed.
1744
1745         * threads.c
1746         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1747         the value of ReleaseMutex().
1748
1749 2007-03-27  Dick Porter  <dick@ximian.com>
1750
1751         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1752         in little-endian order, not network endian, so must be converted
1753         to host endian here.  Fixes bug 80593.
1754
1755 2007-03-22  Jb Evain  <jbevain@gmail.com>
1756
1757         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1758         qualified names for pointer types. Fixes #81208.
1759
1760 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1761
1762         * marshal.c: Add support for PreserveSigAttribute. 
1763         
1764         Code is contributed under MIT/X11 license.
1765
1766 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1767
1768         * process.c: Fix endianness issues. Fixes #81126.
1769
1770         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1771         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1772
1773         * image.c (mono_image_lookup_resource): Make this work on big-endian
1774         machines.Change API contract so the caller needs to free the return value.
1775         
1776         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1777         API change.
1778         
1779 2007-03-14  Martin Baulig  <martin@ximian.com>
1780
1781         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1782         mono_type_get_desc() as well.
1783
1784 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1785
1786         * icall.c:  Fix environ access in VS.  
1787         
1788 2007-03-13  Alp Toker  <alp@atoker.com>
1789
1790         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1791         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1792         #63841.
1793
1794 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1795
1796         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1797         circular references among dynamic methods. Fixes #81091.
1798
1799         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1800
1801 2007-03-09  Martin Baulig  <martin@ximian.com>
1802
1803         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1804
1805 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1806
1807         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1808         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1809         
1810         Code is contributed under MIT/X11 license.
1811         
1812 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1813
1814         * loader.c: Reapply patch for bug #79424.
1815
1816 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1817
1818         * metadata.c (mono_type_to_unmanaged): Only convert object to
1819         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1820
1821 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1822
1823         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1824         (and incorrectly set) is_reference field from MonoGenericInst.
1825
1826 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1827
1828         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1829         a little earlier.
1830
1831         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1832
1833         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1834
1835 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1836
1837         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1838         FileOptions.1 value to mean "temporary", map that to
1839         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1840
1841         Fixes 80688
1842
1843 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1844
1845         * appdomain.c: implement MS .Net style shadow copying. Copies of
1846         the assemblies are made in a subdirectory of the dynamic base
1847         directory, the assembly names are preserved.
1848         Copy .mdb and .config files along with the assemblies being shadowed.
1849
1850 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1851
1852         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1853         (emit_marshal_handleref): Ditto.
1854
1855         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1856         on Visual C++. Fixes #80671.
1857
1858 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1859
1860         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1861         for clone operations.
1862
1863 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1864
1865         * marshal.c: Fix warnings.
1866
1867 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1868
1869         * loader.c: allow case-insensitive matching of the dll name
1870         in dllmap handling when prefixed with "i:".
1871
1872 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1873
1874         * threads.c: Fix #ifdef for dummy_apc function for VS.
1875
1876 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1877
1878         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1879
1880 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1881         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1882         giving precedence to the methods with a fully qualified name
1883         (InterfaceName.MethodName) when building the interface sections
1884         of the vtable.
1885
1886 2007-02-16  Dick Porter  <dick@ximian.com>
1887
1888         * threadpool.c (append_job): Fix fast-path array handling, so it's
1889         less likely the array will grow exponentially when the load is
1890         heavy.
1891
1892 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1893
1894         * metadata-internals.h, loader.c: fix dllmap lookup order
1895         for non-function maps, too, and prepare for fallback code.
1896
1897 2007-02-12  Robert Jordan  <robertj@gmx.net>
1898
1899         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1900         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1901         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1902         GlobalFree. Fixes a part of bug #77075.
1903
1904 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1905
1906         * loader.c: implemented typedef parent in field memberref.
1907
1908 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1909
1910         * marshal.c: Fix warnings and remember to call Release on
1911         IUnknown of RCW.
1912         
1913         Code is contributed under MIT/X11 license.
1914
1915 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1916
1917         * class-internals.h: Add MonoHandleRef definition, and
1918         handleref_class to mono_defaults. 
1919
1920         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1921         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1922
1923         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1924         (do nothing on this stage)
1925         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1926         (emit_marshal_handleref): New method, used for argument handling
1927         of HandleRefs. 
1928
1929 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1930
1931         * class.c (mono_class_setup_parent): Lazily init com types.
1932         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1933         init com types.
1934         * object.c (mono_remote_class_vtable): Lazily init com types.
1935         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1936         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1937         * domain-internals.h: Expose mono_init_com_types.
1938         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1939         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1940         Add support for COM Callable Wrapper marshalling.
1941         * marshal.h: Add icall definitions.
1942         * gc.c: Handle freeing of CCWs in finalizer code.
1943         
1944         Code is contributed under MIT/X11 license.
1945
1946 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1947
1948         * reflection.c: changed all the signature encoding code to use
1949         a variable-sized buffer.
1950
1951 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1952
1953         * marshal.c: locking fixes: never take the loader lock
1954         or other runtime locks when holding the marshal lock
1955         (fixes bug#80664).
1956
1957 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1958
1959         * marshal.c: make the delegate function pointer mapping
1960         work for the moving GC.
1961
1962 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1963
1964         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1965         for bug #80618.
1966
1967 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1968
1969         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1970         gmodule.
1971
1972 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1973
1974         * threadpool.c: made the code moving-GC safe.
1975
1976 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1977
1978         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1979         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1980         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1981         warning cleanup.
1982         * reflection.c: warning cleanup, some threading and moving GC fixes.
1983
1984 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1985
1986         * class.c, loader.c: create the needed Set/Get/Address array methods
1987         as well as the .ctors in mono_class_init (), fixes bug #80567.
1988
1989 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1990
1991         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1992         we doesn't decrease its alignment. Should fix the sparc build.
1993
1994 2007-01-24  Dick Porter  <dick@ximian.com>
1995
1996         * socket-io.c
1997         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1998         Create the returned object if we need to ignore an unsupported
1999         socket option.  Fixes a segfault reported by Atsushi.
2000
2001 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2002
2003         * class.c, object.c: restrict GC-tracked fields to
2004         UIntPtr fields used inside corlib, so we provide better
2005         type info to the GC and also allow broken packing as in
2006         bug #80580.
2007
2008 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2009
2010         * sgen-gc.c: removed duplicated function.
2011
2012 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2013
2014         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2015         value that means that the value is not supported, but that we
2016         should not return a failure, but instead report this as a
2017         successful operation.
2018
2019 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2020
2021         Fix tests/bug79956.2.il
2022         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2023         (mono_generic_class_get_class): If the generic definition in an
2024         enum, copy over other fields related to it.
2025
2026 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2027
2028         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2029         genericinst enums (bug #79215).
2030
2031 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2032         * class.c: Fix bug 80307.
2033
2034 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2035
2036         * image.c: if the file table is not present, try to load
2037         all the modules, since we don't have info about them
2038         having or not metadata (bug #80517).
2039         * assembly.c: allow mono_assembly_load_references () to
2040         work for netmodules.
2041
2042 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2043
2044         * image.c, metadata-internals.h, object.c: execute module
2045         cctors when running on the 2 runtime if present (bug #80487).
2046
2047 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2048
2049         * icall.c: optimized InitializeArray() on bigendian.
2050
2051 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2052
2053         * icall.c: fix for the broken ARM FPA double format.
2054
2055 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2056
2057         * icall.c: handle endian issues for r4 and r8 types, too, in
2058         the InitializeArray() icall.
2059
2060 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2061
2062         * loader.c (mono_loader_error_prepare_exception): Clear the error
2063         once we have extracted the information from it, do this before we
2064         call into the JIT's class loading mechanisms.
2065
2066         * object.c (mono_class_create_runtime_vtable): Do not clear the
2067         loader error before calling mono_class_get_exception_for_failure
2068         as the loader error is needed inside
2069         mono_class_get_exception_for_failure to throw the error (thinko).
2070
2071         Fixes #80521
2072         
2073 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2074
2075         * reflection.c: align fields rva data so it's faster to load at
2076         runtime.
2077
2078 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2079
2080         Prepare to simplify GenericMethod handling.
2081         * class-internals.h (mono_method_get_context): New accessor function.
2082         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2083         rather than directly accessing '->context' field.
2084
2085         * class-internals.h (_MonoGenericParam.method): Move ...
2086         (_MonoGenericContainer): ... here.  Add into union with klass field.
2087         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2088         Update to changes.
2089
2090 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2091
2092         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2093         the wrapper type enum and reduce relocations.
2094
2095 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2096
2097         * reflection.c (inflate_mono_method): Reuse method instantiation
2098         from the generic method, if available.
2099
2100 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2101
2102         * marshal.c (emit_marshal_variant): Fix conv_arg
2103         type in last commit, based on whether parameter is byref.
2104         
2105 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2106
2107         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2108         marshalling.
2109         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2110         MONO_TYPE_OBJECT back for VARIANT support.
2111
2112 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2113
2114         * marshal.c, marshal.h, icall-def.h: Implement 
2115         Marshal.ReAllocCoTaskMem.
2116
2117 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2118
2119         * marshal.c: memory retention fixes: use the proper
2120         image cache for runtime_invoke method lookups.
2121
2122 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2123
2124         * mempool.c: added code to help debug mempool allocations.
2125
2126 2007-01-11  Dick Porter  <dick@ximian.com>
2127
2128         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2129         support (experimenting with faking it with IP_MTU_DISCOVER for
2130         systems that don't have IP_DONTFRAGMENT.)
2131         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2132         icall.
2133
2134         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2135
2136         * socket-io.h: Add new fields to MonoSocketAsyncResult
2137         corresponding to the new ones in Socket.cs.
2138
2139 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2140
2141         Fix IronPython regression mentioned in #80249
2142         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2143         'cached_context' field, since it may have been initialized as a
2144         side-effect of metadata parsing.
2145
2146         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2147         (_MonoGenericClass.cached_class): Move here and rename from lone
2148         remaining field of ...
2149         (_MonoInflatedGenericClass): ... this.  Remove.
2150         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2151         to changes.
2152
2153         Fix mcs/tests/test-128.cs regression.
2154         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2155         2007-01-10 change below.
2156         [MONO_TYPE_OBJECT]: Recurse into array case.
2157
2158 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2159
2160         * class-internals.h (mono_get_inflated_generic_class): Remove.
2161         * class.c (mono_get_inflated_generic_class): Remove.
2162         (mono_generic_class_get_class): Rename from
2163         mono_class_create_generic.
2164         (mono_class_from_mono_type) [GENERICINST]: Use it.
2165         * reflection.c, metadata.c: Update to changes.  Use
2166         'mono_class_from_mono_type'.
2167
2168 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2169
2170         * reflection.c: use passed type when encoding an array element
2171         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2172
2173 2007-01-09  Robert Jordan  <robertj@gmx.net>
2174
2175         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2176         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2177         Fixes bug #80392.
2178
2179 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2180
2181         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2182
2183         * object.c (set_value): Avoid aliasing between type->data.klass
2184         and type->data.generic_class.
2185
2186         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2187
2188 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2189
2190         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2191         between type->data.klass and type->data.generic_class.
2192
2193 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2194
2195         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2196         value in out parameters.
2197
2198 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2199
2200         Simplify invariant for MonoGenericClass::klass field.
2201         * class.c (mono_class_create_generic): Verify 'klass' is null.
2202         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2203         initialize 'klass' field.
2204
2205 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2206
2207         Ongoing work to avoid redundant data and simplify invariants.
2208         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2209         'generic_class', and change type to a GenericInst.
2210         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2211         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2212
2213 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2214
2215         * class.c : skip io-layer under PLATFORM_WIN32.
2216
2217 2007-01-03  Tor Lillqvist  <tml@novell.com>
2218
2219         Fix #80305: In a bundled executable, look in the bundled exe
2220         assembly to determine the runtime version. Add the possibility to
2221         bundle also the machine.config file.
2222         
2223         * assembly.c (mono_assembly_open_from_bundle): Make
2224         non-static. Allow being called even if we have no bundled
2225         assemblies, and return NULL right away in that case.
2226
2227         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2228         here.
2229
2230         * domain.c (app_config_parse): Take an assembly exe file name as
2231         parameter instead of a config file name. Check for a bundled
2232         config file for that assembly by calling
2233         mono_config_string_for_assembly_file() (see below) before looking
2234         for one in the file system.
2235         (get_runtimes_from_exe): Corrsponding change to call of
2236         app_config_parse().
2237         (get_runtimes_from_exe): Check for bundled assembly exe file first
2238         by calling mono_assembly_open_from_bundle(). If no bundled
2239         assembly exe file is found, call mono_image_open() as before to
2240         look it up in the file system.
2241
2242         * mono-config.c: Add variable bundled_machinec_onfig.
2243         (mono_config_string_for_assembly_file): New function.
2244         (mono_config_for_assembly): Move code snippet that looks for a
2245         bundled assembly .config file into the above new function. Call
2246         it.
2247         (mono_register_machine_config, mono_get_machine_config): New
2248         functions to set and retrieve
2249
2250         * assembly.h: Declare mono_register_machine_config().
2251
2252         * mono-config.h: Declare mono_get_machine_config() and
2253         mono_config_string_for_assembly_file().
2254
2255         * icall.c: No declaration of environ necessary on Win32. It is
2256         declared (as a macro expanding to a function call) in stdlib.h.
2257         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2258         New internal mono function. Returns the value of
2259         mono_get_machine_config() as a Mono string.
2260
2261         * icall-def.h: Add get_bundled_machine_config().
2262
2263 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2264
2265         Remove redundant field
2266         * class-internals.h (_MonoGenericContext.container): Remove field.
2267         * loader.c (mono_method_get_signature_full): Don't parse a
2268         "container" for a signature parse when the signature is inflated
2269         immediately.
2270         (method_from_methodspec): Likewise, for a generic_inst.
2271         * class.c, metadata.c, reflection.c: Update to changes.
2272
2273 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2274
2275         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2276         'cached_context', and change semantics -- it starts off NULL, and
2277         is initialized on demand.
2278         * class.c (mono_generic_class_get_context): New accessor to
2279         replace 'context' field accesses.
2280         (mono_class_get_context): New helper.
2281         (*): Update to changes.
2282         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2283
2284 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2285
2286         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2287         before the memcpy.   Fixes Marshal2 regression.
2288
2289 2007-01-02  Jb Evain  <jbevain@gmail.com>
2290
2291         * blob.h: add a MONO_TYPE_ENUM definition
2292         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2293         fix the encoding of arrays of enums in custom attributes.
2294
2295         Fixes #79666.
2296
2297 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2298
2299         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2300         string is null terminated, but only cut the string short if it
2301         overflows the buffer.   
2302         
2303         (mono_string_to_byvalstr): Also fix this routine.   The code here
2304         was not properly terminating a string (it was only terminated
2305         because of the previous catch-all memset). 
2306
2307         I left the memset, because I do not know if applications expect
2308         the runtime to clear this region. 
2309
2310         Fixes #79944.
2311
2312         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2313         Clear the error before returning to unmanaged code to prevent the
2314         runtime from being confused later on (fixes  80420).
2315         (ves_icall_type_from_name): Always call mono_loader_clear_error
2316         after parsing a type that could have failed.
2317         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2318
2319         * loader.c (mono_loader_clear_error): Fix indentation.
2320
2321 2006-12-28  Martin Baulig  <martin@ximian.com>
2322
2323         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2324
2325 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2326
2327         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2328         getting a token for an EnumBuilder.
2329
2330 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2331
2332         * reflection.c: be more careful in case resource generation
2333         fails to create the data array.
2334
2335 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2336
2337         * sgen-gc.c: write barrier for clone and fix unregister handles.
2338
2339 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2340
2341         * reflection.c: some fixes needed in the generics code for the moving GC.
2342
2343 2006-12-22  Robert Jordan  <robertj@gmx.net>
2344
2345         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2346         account. Fixes bug #80299.
2347
2348 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2349
2350         Fix WaitHandle usage in delegates.
2351         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2352         * object.c (mono_wait_handle_new): Use the property set method to
2353         initialize the handle.
2354         (mono_wait_handle_get_handle): New.
2355         * threadpool.c (mono_async_invoke): Use it.
2356         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2357         Likewise.
2358         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2359
2360 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2361
2362         * marshal.c (emit_marshal): Call emit_marshal_variant and
2363         emit_marshal_com_interface when applicable.
2364         (emit_marshal_variant, emit_marshal_com_interface): Add
2365         methods for this case and remove if's from emit_marshal_object.
2366         
2367 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2368
2369         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2370
2371 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2372
2373         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2374         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2375         and GlobalFree on Windows. Remove FIXME.
2376
2377 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2378
2379         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2380         implementation for managed objects.
2381
2382 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2383
2384         * object.c: implemented code to be used for checking
2385         that no reference field overlaps with non-references.
2386
2387 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2388
2389         * threadpool.c: fix queue code to be compatible with the
2390         moving GC.
2391
2392 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2393
2394         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2395         in structures by throwing ArgumentNullException.
2396
2397         (emit_marshal_safehandle): Also when they are null parameters.
2398
2399         (emit_marshal_safehandle): Add support for ref
2400         SafeHandles parameters
2401
2402 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2403
2404         * profiler.c: updated to use the mono-dl API instead of
2405         gmodule.
2406
2407 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2408
2409         * profiler.c: updated to use the mono-dl dynamic loading
2410         API instead of gmodule.
2411
2412 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2413
2414         * profiler.c: use readlink, older versions of glib don't have
2415         g_file_read_link ().
2416
2417 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2418
2419         * profiler.c: try to detect the path to mono if libc fails to provide
2420         a useful name (bug #80286).
2421
2422 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2423
2424         Fix #80242
2425         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2426         instance, use the generic type definition instead.
2427         (ves_icall_Type_GetNestedTypes): Likewise.
2428         * class.c (mono_class_create_generic): Always set the
2429         nested_classes of a generic instance to NULL, even if the generic
2430         type definition has nested types.
2431
2432 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2433
2434         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2435         and fix on Linux.
2436         
2437 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2438
2439         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2440         my arguments were in the wrong order.   I also fixed the Windows
2441         version which seems to have had the same issue.
2442
2443         (mono_free_bstr): On Unix, this is g_free.
2444         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2445         conversions (for the tests in corlib to pass).
2446
2447 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2448
2449         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2450         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2451         exception if a ref SafeHandle in a struct has changed).
2452         
2453         (emit_struct_conv): Do not perform layout checks for classes
2454         derived from SafeHandle, as those are specially handled. 
2455
2456         (emit_object_to_ptr_conv): Add support for
2457         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2458
2459         (emit_marshal_safehandle): Implement conversion of return values
2460         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2461         
2462         * threads.c: WaitHandle now is compiled with two different handles
2463         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2464         for 2.0.
2465         
2466         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2467         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2468         these routines to cope with both kinds of fields.
2469
2470 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2471
2472         * metadata.c (mono_type_to_unmanaged): Handle the case where
2473         type->data.klass is a SafeHandle, and in that case, return the
2474         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2475         MONO_MARSHAL_CONV_SAFEHANDLE. 
2476
2477 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2478
2479         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2480         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2481         calling emit_marshal_object.
2482
2483         (emit_marshal_safehandle): Implement marshalling of
2484         SafeHandle parameters (no ref support yet).
2485
2486         (MarshalAction): Document the defines as I implement
2487         them for SafeHandle.
2488
2489         (emit_marshal_object): indentation police.
2490
2491         * class-internals.h: Define MonoSafeHandle.
2492         Add safehandle_class to MonoDefaults type.
2493
2494         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2495         list of classes to check for fields. 
2496
2497         * domain.c (mono_init_internal): Add SafeHandle to the list of
2498         mono_defaults loaded.
2499
2500 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2501
2502         Fix #80253
2503         * reflection.c (mono_reflection_bind_generic_parameters): If the
2504         generic type definition is a type builder, ensure that it is fully
2505         initialized before instantiating it.  Kill some dead code.
2506
2507 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2508
2509         * object.c: clear the loader_error () before loading
2510         more metadata stuff (bug #80258).
2511
2512 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2513
2514         * icall.c, icall-defs.h: type modifiers icalls for
2515         parameters and properties.
2516
2517 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2518
2519         * object.c, icall.c: fixed warnings.
2520
2521 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2522
2523         * marshal.c: fixed a couple of leaks and coding style in a few places.
2524
2525 2006-12-08  Dick Porter  <dick@ximian.com>
2526
2527         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2528         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2529         80173.
2530
2531 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2532
2533         * process.c: ProcessStartInfo may have only filename set and
2534         arguments can be NULL.
2535
2536 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2537
2538         * icall.c: fix leak found by Robert Jordan.
2539
2540 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2541
2542         * marshal.c, marshal.h: generate managed method to access an element
2543         of a multi-dimensional array.
2544
2545 2006-11-30  Paolo Molaro (lupus@ximian.com)
2546
2547         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2548
2549 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2550
2551         * icall.c: back out GetFields () fix until the serialization code is
2552         fixed to not depend on the incorrect behaviour.
2553
2554 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2555
2556         * profiler.c: provide defaults if none are set.
2557
2558 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2559
2560         * Makefile.am, attrdefs.h: new public header file with
2561         constants for attributes for use by embedders.
2562
2563 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2564
2565         * icall.c: GetFields () fix for bug #80064.
2566
2567 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2568
2569         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2570         removed long unused icalls.
2571
2572 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2573   
2574         * marshal.c: 
2575                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2576                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2577                 can be generated without a delegate class.
2578                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2579         
2580         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2581
2582 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2583
2584         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2585         #80069.
2586
2587 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2588
2589         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2590         icall-def.h: added icalls needed by System.GC.
2591
2592 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2593
2594         * loader.c: ensure the class in catch clauses is handled
2595         correctly for generics methods (fixes bug#79980).
2596
2597 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2598
2599         * monitor.h, monitor.c: added mono_locks_dump () function
2600         to help debug deadlocks involving managed locks.
2601
2602 2006-11-13  Dick Porter  <dick@ximian.com>
2603
2604         * file-io.c (get_file_attributes): If the file is a symlink try
2605         and get the stat data for the target, but also add the
2606         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2607         the specs for the windows symlink support, but will probably have
2608         to be reworked when I have test data from a vista machine.  Fixes
2609         bug 79887.
2610
2611 2006-11-13  Dick Porter  <dick@ximian.com>
2612
2613         * gc.c (mono_domain_finalize): 
2614         * marshal.c (mono_delegate_begin_invoke): 
2615         * threadpool.c (socket_io_init, mono_thread_pool_init)
2616         (mono_thread_pool_finish): 
2617         * monitor.c (mono_monitor_try_enter_internal): 
2618         * threads.c (mono_thread_resume, mono_thread_init)
2619         (mono_thread_suspend_all_other_threads)
2620         (mono_thread_execute_interruption): 
2621         * appdomain.c (mono_domain_unload): Check for NULL error returns
2622         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2623         75733.
2624
2625 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2626
2627         * process.c
2628         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2629         Only close the handle if the value of the handle is not
2630         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2631         robust.
2632
2633         Improvement for #75733, so that we do not run into this problem. 
2634
2635         
2636         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2637         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2638         internal variables.  Fixes #79462 
2639         
2640
2641 2006-11-09  Dick Porter  <dick@ximian.com>
2642
2643         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2644         Use poll() not select().  Fixes bug 79397.
2645
2646 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2647
2648         Fix #79872
2649         * assembly.c (mono_assembly_load_from_full): Check that the given
2650         image has an assembly manifest.
2651
2652 2006-11-09  Ankit Jain  <jankit@novell.com>
2653
2654         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2655         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2656         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2657
2658 2006-11-07  Dick Porter  <dick@ximian.com>
2659
2660         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2661         Put the old resolver behaviour back for pre-2.0 profiles.
2662
2663 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2664
2665         * threadpool.c: precise GC and locking fixes.
2666
2667 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2668
2669         * class.c: don't load types that have an explicit unaligned
2670         managed reference. Provide better info in the TypeLoad exception.
2671         Part of the fix for bug #79744.
2672         * object.c: use the correct check for class type load issues.
2673
2674 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2675
2676         * class.c: enforce alignment of fields with managed references
2677         even when Pack=1 is forced by the user (bug #77788).
2678
2679 2006-11-03  Dick Porter  <dick@ximian.com>
2680
2681         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2682         If the address reverse lookup fails, return it as the hostname
2683         anyway.  Fixes bug 79721.
2684
2685 2006-11-03  Dick Porter  <dick@ximian.com>
2686
2687         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2688         Fix build on Windows.
2689
2690 2006-11-02  Dick Porter  <dick@ximian.com>
2691
2692         * icall-def.h: 
2693         * object-internals.h: 
2694         * exception.c (mono_get_exception_thread_interrupted): 
2695         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2696         Fixes bug 74525.
2697
2698         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2699         Check for pending Thread.Interrupt.
2700
2701 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2702         * loader.c: Fixed bug 79684.
2703
2704 2006-10-27  Dick Porter  <dick@ximian.com>
2705
2706         * file-io.c (get_file_attributes): Force symlinks to directories
2707         to be returned as a regular file.  Fixes bug 79733.
2708 2006-10-26  Dick Porter  <dick@ximian.com>
2709
2710         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2711         CreateFile to open a directory then we need to set the
2712         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2713
2714 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2715
2716         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2717         friends.
2718
2719 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2720
2721         * sgengc.c: small cleanup of timer code.
2722
2723 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2724
2725         * sgen-gc.c: fix some warnings and start adding support for
2726         complete object removal on domain unload.
2727
2728 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2729
2730         * assembly.c: build_assembly_name should not consider a version
2731         number without build or revision number invalid. Fixes bug #79715.
2732
2733 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2734
2735         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2736         call kernel32 function OutputDebugString directly.
2737         
2738         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2739         
2740 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2741
2742         * reflection.c: small cleanup, using a function to insert a MonoString
2743         in the string heap.
2744
2745 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2746
2747         * reflection.c: moving GC fixes.
2748
2749 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2750
2751         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2752         all the objects with finalizers belonging to an unloading appdomain.
2753
2754 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2755
2756         * sgen-gc.c: added ability to allocate even when the nursery is fully
2757         pinned and fixed a couple of bugs.
2758
2759 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2760
2761         * threads.h: Revert the last change for now.
2762
2763         * threads.h (mono_thread_get_pending_exception): Rename this to
2764         mono_thread_get_undeniable_exception ().
2765
2766 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2767
2768         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2769         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2770         when fname does not refer to valid assembly. This result in a more
2771         meaningful error message.
2772         * exception.c: added mono_get_exception_bad_image_format2 which 
2773         constructs a BadImageFormatException using the ctor taking a custom
2774         message and the file name. Passing in a NULL msg results in a default
2775         message.
2776         * exception.h: define mono_get_exception_bad_image_format2 function.
2777         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2778         when file name pointed to an invalid IL image. Use 
2779         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2780         as this results in a more meaningful error message.
2781
2782 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2783
2784         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2785         #79465.
2786
2787 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2788
2789         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2790         consistency with the other _size functions.
2791         (mono_type_stack_size): Ditto.
2792
2793         * class.c object.c icall.c: Fix warnings caused by the above change.
2794
2795         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2796
2797         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2798
2799         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2800
2801 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2802
2803         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2804         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2805         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2806         threadpool.h, threads-types.h: mark more internal functions.
2807
2808 2006-10-11  Dick Porter  <dick@ximian.com>
2809
2810         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2811         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2812         reproduce the bug even before applying the fix.)
2813
2814 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2815
2816         * reflection.c: allow retrieving attributes for arguments in generic
2817         methods (bug #79241).
2818
2819 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2820
2821         * debug-mono-symfile.c: properly check fopen () result (found by
2822         coverity).
2823
2824 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2825
2826         * reflection.c: make error message clearer and fixed two
2827         issuelets found by Coverity.
2828
2829 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2830
2831         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2832
2833 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2834
2835         * object-internals.h, gc-internal.h, profiler-private.h:
2836         mark internal functions.
2837
2838 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2839
2840         * reflection.c: put data in the text section.
2841         * icall.c: recognize more types in type_from_typename ().
2842         * process.c, marshal.c: added some GC FIXMEs.
2843
2844 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2845
2846         * loader.c: check for NULL before initializing.
2847
2848 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2849
2850         * gc.c (finalizer_thread): Use a non-alertable wait here.
2851
2852         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2853         until the correct solution is found.
2854
2855 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2856
2857         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2858         modules with no metadata. Fixes #79596.
2859
2860         * image.c (load_metadata_ptrs): Put back the error message when
2861         the #- heap is encountered since the support is not complete yet.
2862
2863 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2864
2865         * gc.c: do not allow the user to SuppressFinalize () a
2866         delegate because it would leak the trampoline if present.
2867
2868 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2869
2870         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2871         PropertyPtr table.
2872
2873 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2874
2875         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2876
2877         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2878
2879         * row-indexes.h: Add definitions for *Ptr tables.
2880
2881         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2882
2883         * metadata.c (mono_metadata_translate_token_index): New helper function to
2884         translate table indexes used in uncompressed metadata.
2885         (mono_metadata_decode_table_row): Ditto.
2886         (mono_metadata_decode_table_row_col): Ditto.
2887
2888         * metadata.c: Add table schema for *Ptr tables.
2889
2890         * class.c loader.c: Use the new helper function to access the affected metadata
2891         tables.
2892         
2893         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2894         #38532.
2895         
2896 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2897
2898         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2899         sequences which can be unbounded in size. Fixes #79583.
2900
2901 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2902
2903         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2904         static initialization.
2905
2906         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2907
2908         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2909
2910         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2911
2912         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2913         ctor fails, i.e. throw the same exception on subsequent accesses.
2914         
2915 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2916
2917         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2918         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2919         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2920         Handle marshalling of interfaces and VARIANTs contained in structs.
2921         
2922         Code is contributed under MIT/X11 license.
2923         
2924 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2925
2926         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2927         
2928         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2929         mempool.
2930
2931 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2932
2933         * console-io.c: ignore previous SIGINT handler.
2934
2935 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2936
2937         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2938         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2939         #79460, #79461, #79485.
2940
2941         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2942
2943         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2944         #79217.
2945
2946 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2947
2948         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2949         could be generated from it.
2950
2951 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2952
2953         * rand.c: fix read loop to correctly handle EINTR.
2954
2955 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2956
2957         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2958         internal calls are defined to keep methods closer to the declaring
2959         type and allow a significant reduction in runtime relocations and
2960         memory usage.
2961
2962 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2963
2964         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2965         exception message to have FileNotFoundException use the default
2966         assembly load error message. Fixes bug #79426.
2967         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2968
2969 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2970
2971         * threadpool.c: (start_thread_or_queue) use the root domain when
2972         creating the thread instead of the async object one.
2973
2974 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2975
2976         * class.c, object.c, class-internals.h, reflection.c:
2977         for arrays, store element_size inside MonoClass (speedup
2978         for array object creation).
2979
2980 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2981
2982         * icall.c: fixed CodeBase to use the file name and not the module
2983         name (bug #79365).
2984
2985 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2986
2987         * mono-debug.c, mono-debug.h: export find_method as
2988         mono_debug_find_method ().
2989
2990 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2991
2992         * debug-helpers.c, class-internals.h: added a few functions useful
2993         when debugging under gdb.
2994
2995 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2996
2997         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2998         characters that need special handling.
2999
3000 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3001
3002         * mono-config.c: make the os/cpu specification more flexible,
3003         allowing lists and negation.
3004
3005 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3006
3007         * marshal.c: COM Interop fixes. Handle case where method->klass.
3008         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3009         calling convention on non-windows platforms. This is for
3010         compatibility with XPCOM and MainWin COM.
3011         
3012         Code is contributed under MIT/X11 license.
3013         
3014
3015 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3016
3017         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3018         correctly. Fixes #79217.
3019
3020         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3021
3022 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3023
3024         * mono-config.c: allow both an os and cpu attribute for dllmap
3025         and dllentry elemnets to enable a single config file to be used
3026         for multiple architectures.
3027
3028 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3029
3030         * loader.c: MonoLoaderError was cleared too soon on load failure.
3031         Fixes bug #79424.
3032
3033 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3034
3035         * icall.c: use the defining class vtable when accessing a
3036         static field, not a pobblibly derived class.
3037
3038 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3039
3040         * icall.c string-icalls.c: Remove references to unicode.h.
3041
3042         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3043
3044         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3045
3046         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3047         indicating the image where custom marshaller types should be looked up.
3048         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3049         custom marshallers, instead of corlib. Fixes #79425.
3050
3051 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3052
3053         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3054
3055 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3056
3057         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3058         Implement Environment.ProcessorCount.
3059         
3060         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3061         Implement Environment.ProcessorCount.
3062         
3063         * icall.c: 
3064         Add Environment.ProcessorCount icall.
3065         
3066         Patch by Jason McFall.
3067
3068 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3069
3070         * assembly.c: don't append .exe/.dll when the filename already contains
3071         one of those extensions.
3072
3073 2006-09-12  Martin Baulig  <martin@ximian.com>
3074
3075         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3076         to array interfaces.
3077
3078 2006-09-11  Martin Baulig  <martin@ximian.com>
3079
3080         * reflection.c (mono_image_build_metadata): Create the
3081         MethodImpl's after emitting all types and methods, so we don't
3082         need another fixup pass for them.
3083
3084 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3085
3086         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3087         change.
3088
3089 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3090
3091         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3092         unload.
3093
3094 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3095
3096         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3097         args is not set. Fixes #78926.
3098
3099 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3100
3101         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3102
3103         * image.c (load_class_names): Move this to class.c, and rename it to 
3104         'mono_image_init_name_cache'.
3105         (load_modules): Fix a warning.
3106
3107         * class.c icall.c image.c: Initialize image->name_cache lazily.
3108
3109         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3110         on its name using information in the AOT file.
3111
3112         * class.c (mono_class_from_name): Use the new hook function.
3113
3114 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3115
3116         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3117         correctly.
3118
3119         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3120         Fixes #79289.
3121         
3122 2006-09-06  Martin Baulig  <martin@ximian.com>
3123
3124         * icall.c (mono_lookup_internal_call): Small fix.
3125
3126 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3127
3128         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3129         double g_free.
3130
3131 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3132
3133         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3134         when --debug is specified.
3135
3136 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3137
3138         * class.c (setup_generic_array_ifaces): Fix a warning.
3139
3140 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3141
3142         * Temporarily remove the patch to assemly.c that checks the
3143         assembly versions as it breaks our gacutil.
3144
3145 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3146
3147         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3148
3149         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3150         a net 1.0 runtime.
3151
3152         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3153         created using the default ctor. Fixes #79152.
3154         (mono_string_builder_to_utf16): Ditto.
3155
3156 2006-09-01  Martin Baulig  <martin@ximian.com>
3157
3158         Fix handling of the generic array interfaces.
3159
3160         * class-internals.h
3161         (MonoDefaults): Removed `generic_array_class' and added
3162         `generic_ilist' class.
3163
3164         * class.c
3165         (mono_bounded_array_class_get): Add the new generic array interfaces.
3166         (setup_generic_array_ifaces): New static method; create vtable
3167         entries for each method in the generic array interfaces.
3168
3169         * metadata.c
3170         (select_container): Allow "parent-less" generic methods.
3171
3172         * marshal.c
3173         (mono_marshal_get_generic_array_helper): New public method.
3174
3175         * icall.c
3176         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3177         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3178         moved the interncall into System.Array.
3179
3180 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3181
3182         A few more cases of avoiding work on types with ->byref set.
3183         Has the real fix for #79238
3184         * icall.c (is_generic_parameter): New helper.
3185         (ves_icall_Type_GetGenericParameterPosition): Use it.
3186         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3187         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3188         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3189         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3190         reference types.
3191         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3192         reference types.
3193         (ves_icall_Type_get_IsGenericInstance): Likewise.
3194         (ves_icall_Type_get_IsGenericType): Likewise.
3195
3196 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3197
3198         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3199         class if possible.
3200
3201         * mempool.h (mono_mempool_get_allocated): New helper function.
3202
3203         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3204         change.
3205
3206         * mempool.c: Fix warnings and the calculation of stats.
3207
3208         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3209
3210         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3211
3212         * loader.c (mono_get_method_from_token): Update method_count stat.
3213
3214         * class-internals.h (MonoStats): Add some stats.
3215
3216 2006-08-31 Robert Jordan  <robertj@gmx.net>
3217
3218         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3219         with managed variants.
3220         All code is contributed under the MIT/X11 license.
3221         
3222 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3223
3224         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3225         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3226
3227         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3228
3229         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3230         with cycles in classes.
3231
3232         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3233
3234         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3235         missing a [MarshalAs] directive. Fixes #79203.
3236
3237         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3238         klass->marshal_info. Fixes #79217.
3239
3240 2006-08-30  Martin Baulig  <martin@ximian.com>
3241
3242         Committing a patch from Joachim Ante <joe@otee.dk>:
3243         Add support for binary data symbol stores.
3244
3245         * debug-mono-symfile.c
3246         (mono_debug_open_mono_symbol_file): Renamed into
3247         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3248         arguments.
3249
3250         * mono-debug.c
3251         (mono_debug_open_image): Added `raw_contents' and `size' args.
3252         (mono_debug_init_2_memory): New public function.
3253
3254 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3255
3256         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3257
3258 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3259
3260         * appdomain.c: implement support for ShadowCopyFiles.
3261
3262 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3263
3264         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3265         when value is NULL (and should remove CID #51).
3266
3267 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3268
3269         * image.c: moved 2 functions to ../utils.
3270
3271 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3272
3273         * gc.c: cope with the target object of a GC handle being NULL
3274         (bug #78877).
3275
3276 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3277
3278         * class.c: recursively check parent's explicit implementations
3279         of interface methods (fixes bug #79125).
3280
3281 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3282
3283         * filewatcher.c: Avoid warnings when building, do not redefine
3284         constants that are defined.
3285
3286         Remove warnings.
3287
3288 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3289
3290         * image.c: don't fail when the link points to an absolute path.
3291
3292 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3293
3294         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3295         Fix CID #3.
3296
3297 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3298
3299         * image.c (full_path): A new method used to obtain the actual path
3300         of an assembly even in the presence of symbolic links.  
3301
3302         This is necessary for the case where we are running a binary that
3303         has been GACed, but we are using the "published" path name
3304         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3305         file in the GAC.
3306
3307         This was the source of the failure for the `xsp' command with the
3308         recent AppDomain changes, as far as the runtime was concerned,
3309         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3310         $prefix/mono/gac/blah/version/blah.exe.
3311
3312         (do_mono_image_open): use full path
3313
3314 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3315
3316         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3317
3318 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3319
3320         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3321         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3322
3323 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3324
3325         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3326         small structures. Fixes #78990.
3327
3328 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3329
3330         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3331
3332         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3333
3334 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3335
3336         * appdomain.c:
3337         * marshal.c: don't load all the assemblies from a domain into newly
3338         created ones. The new domains might have different rules and load
3339         assemblies from different locations. Fixes bug #76757.
3340
3341         Patch by Lluis. Conflicts resolved by Brian Crowell.
3342
3343 2006-08-16  Alp Toker  <alp@atoker.com>
3344
3345         * socket-io.c: First half of the fix for #79084.
3346         Set sa_size to the length of the content, not that of the struct.
3347         Don't add NULL suffix to the content, this should be done in
3348         managed code if needed.
3349
3350 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3351
3352         Fix part of #79012
3353         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3354         mono_metadata_parse_type returns NULL.
3355
3356 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3357
3358         * normalization-tables.h : new file for string normalization data.
3359         * locales.c, locales.h, icall.c :
3360           added load_normalization_resource() for string normalization,
3361           and icall as well.
3362         * Makefile.am : added normalization-tables.h to the sources.
3363
3364 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3365
3366         * marshal.c: Add more helper functions to reduce code duplication and use them
3367         everywhere.
3368
3369 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3370
3371         * marshal.c: Fix non-x86 stdcall warnings.
3372         
3373         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3374         them everywhere.
3375
3376 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3377
3378         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3379         type check on multi-dimensional arrays. Fixes #79000.
3380
3381 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3382
3383         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3384         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3385         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3386         * class-internals.h: add is_com_object to class structure.
3387         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3388         null checks to COM object marshalling. Fix .ctor call on RCW.
3389         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3390         
3391         All code is contributed under the MIT/X11 license.
3392
3393 2006-08-09  Dick Porter  <dick@ximian.com>
3394
3395         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3396         racing mono_monitor_allocator_lock() somewhere, so don't delete
3397         the critical section for now.  Found by running and exiting
3398         monodevelop.
3399
3400 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3401
3402         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3403         (ves_icall_System_ComObject_FindInterface): Ditto.
3404         (ves_icall_System_ComObject_CacheInterface): Ditto.
3405
3406         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3407         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3408
3409 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3410
3411         * threadpool.c: treat pipes from process asynchronous reads as sockets
3412         when reading from them, so we get select/poll or epoll to wait for
3413         data.
3414
3415 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3416
3417         * loader.c: Fix a typo (CID #233) in the null check.
3418
3419 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3420
3421         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3422         Hopefully fixes #78949.
3423         
3424         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3425         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3426         bytes. Fixes #78972.
3427
3428 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3429
3430         * filewatcher.c: we need to set errno here.
3431
3432 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3433
3434         * filewatcher.c: let Win32Exception get the error value.
3435
3436 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3437
3438         * filewatcher.c: translate errno into win32 errors for Win32Exception
3439         to know what happened.
3440
3441 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3442
3443         * threadpool.c: Fix more warnings.
3444
3445         * assembly.c (search_loaded): Fix warnings.
3446
3447         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3448         (mono_async_invoke): Ditto.
3449
3450 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3451
3452         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3453         entries for __ComObject type in addition to ComImport types.
3454         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3455         about hash table.
3456         
3457         All code is contributed under the MIT/X11 license.
3458
3459 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3460
3461         * image.c: avoid tentative loading of modulerefs that contain
3462         no metadata (P/Invoke library names).
3463
3464 2006-07-28  Dick Porter  <dick@ximian.com>
3465
3466         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3467         mono_loader_lock() somewhere, so don't delete the critical section
3468         for now.  Found by running and exiting monodevelop.
3469
3470 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3471
3472         * filewatcher.c: define the inotify syscalls when we're building on
3473         linux and have sys/syscall.h. The build system might not have support
3474         for inotify but the target system might have it.
3475
3476 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3477
3478         * domain.c: Documentation updates.
3479
3480         * loader.c (mono_free_method): Do not release the method
3481         information if we are being profiled, as profilers will use this
3482         information at shut down to present some data to the user.
3483
3484         This is needed so that the profiler does not crash, as the
3485         profiler tends to keep MonoMethods around, and they might become
3486         invalid if we free these.
3487
3488         (mono_get_method_constrained): Return the original CIL stream
3489         method as well, so verification can be performed against it.
3490
3491 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3492
3493         * filewatcher.[ch]: support for inotify file system watcher.
3494         * icall.c: add new internal calls for the inotify file system watcher.
3495
3496 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3497
3498         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3499         #78888.
3500
3501 2006-07-20  Dick Porter  <dick@ximian.com>
3502
3503         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3504         warning.
3505
3506 2006-07-20  Dick Porter  <dick@ximian.com>
3507
3508         * threads.c (start_wrapper): Do the thread cleanup while we still
3509         hold a reference to its object.  Fixes bug 78123.
3510
3511 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3512
3513         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3514         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3515           "managed-to-managed".
3516         * icall.c: Redirect string constructors that take sbyte* to
3517           ves_icall_System_String_ctor_RedirectToCreateString.
3518         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3519           to CreateString () methods with matching signature.
3520         * reflection.c: Use original security informations for
3521           MONO_WRAPPER_MANAGED_TO_MANAGED.
3522         * security-manager.c: Use original security informations for
3523           MONO_WRAPPER_MANAGED_TO_MANAGED.
3524         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3525           that is a placeholder and only its address should be used.
3526         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3527           that is a placeholder and only its address should be used.
3528
3529 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3530
3531         Begin implementing COM Interop.
3532         * appdomain.c: Increment corlib version.
3533         * class.c: Set ComImport classes' parent to __ComObject.
3534         * loader.c: Mark cominterop methods as such.
3535         * domain.c: Add __ComObject class to MonoDefaults structure.
3536         * image.c: Add 2 hashtables to the image for COM Interop related methods
3537         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3538         using the mempool allocator
3539         
3540         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3541         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3542         declaration for mono_metadata_type_dup_mp.
3543         
3544         * debug-helpers.c: Added strings for two additional wrapper types
3545         * object.c: Create proxy objects for ComImport classes
3546         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3547         and added __ComObject class to MonoDefaults structure.
3548         
3549         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3550         MonoComInteropProxy and MonoComObject.
3551         
3552         * marshal.c: Added support for COM Interop
3553         (signature_cominterop): Converts managed signature to corresponding
3554         unmanaged COM signature.
3555         (cominterop_get_function_pointer): gets unmanaged function pointer via
3556         COM object vtable
3557         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3558         (cominterop_get_method_interface): returns interface type that method is defined on
3559         (mono_mb_emit_cominterop_call): emits native call to function pointer
3560         gotten from vtable
3561         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3562         that matches signature of unmanaged function.
3563         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3564         (cominterop_get_invoke): forwards call from proxy to __ComObject
3565         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3566         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3567         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3568         
3569         * marshal.h: Added Marshal icall declarations.
3570         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3571         so we can access them in finalizer
3572         
3573 2006-07-14  Dick Porter  <dick@ximian.com>
3574
3575         * object.c (mono_type_initialization_cleanup): Fix a race
3576         condition by temporarily commenting out the critical section
3577         deletion.
3578
3579 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3580
3581         * reflection.c (create_custom_attr): Fix some warnings.
3582         (create_custom_attr_data): Ditto.
3583         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3584         types. Fixes #78855.
3585
3586 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3587
3588         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3589
3590         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3591
3592 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3593
3594         * reflection.c (resolve_object): Add support for DynamicMethod.
3595
3596         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3597         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3598
3599 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3600
3601         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3602         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3603
3604 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3605
3606         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3607         Fixes #77888.
3608
3609 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3610
3611         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3612         slightly: remove a shadow local variable.
3613
3614 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3615
3616         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3617         definition that introduces the virtual function slot.
3618         Also fix Coverity #105.
3619
3620 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3621
3622         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3623         for dynamic assemblies. Fixes #78724.
3624
3625 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3626
3627         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3628         Fixes #78722.
3629
3630 2006-06-21  Martin Baulig  <martin@ximian.com>
3631
3632         * reflection.c
3633         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3634         fixes #76484.
3635
3636 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3637
3638         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3639
3640 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3641
3642         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3643         nor TYPEREFs.
3644         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3645         Inflate result if necessary.
3646         (mono_class_get_full): Remove old version.  Rename from
3647         'mono_class_get' and add 'context' argument.  Pass it to
3648         ..._create_from_typespec.
3649         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3650         (mono_ldtoken): Revert change below.
3651
3652 2006-06-20  Martin Baulig  <martin@ximian.com>
3653
3654         * class.c (mono_ldtoken): Don't pass the generic context to
3655         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3656
3657 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3658
3659         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3660         and later freeing it. Fixes #78638.
3661
3662 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3663
3664         * icall.c (mono_class_get_throw): Revert over-zealous error
3665         throwing, the caller for mono_class_get_throw will cope with
3666         errors when classes are not properly initialized already.
3667
3668         The code still copes with loader exceptions though.
3669
3670         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3671         
3672 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3673
3674         Fixes the `make run1' version of RuntimeAbort (to be commited,
3675         source is in Bugzilla).
3676         
3677         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3678         FALSE on class loading failure instead of returning true.
3679
3680         * class.c (mono_class_create_from_typedef): It is possible for
3681         mono_metadata_interfaces_from_typedef_full to fail if a class is
3682         not found, cope with this.
3683         
3684
3685 2006-06-14  Dick Porter  <dick@ximian.com>
3686
3687         * socket-io.c: 
3688         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3689         4.1.1
3690
3691 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3692
3693         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3694
3695 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3696
3697         * icall.c: Another fix for building mono in Visual Studio.
3698
3699 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3700
3701         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3702         
3703 2006-06-09  Martin Baulig  <martin@ximian.com>
3704
3705         * debug-mono-symfile.c: Put this back and really fix it this
3706         time. Sorry for all the trouble.
3707
3708 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3709
3710         * icall.c (mono_class_get_throw): Fix a warning.
3711         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3712         ReflectionTypeLoadException if needed. Fixes #78606.
3713
3714         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3715         (mono_class_init): Ditto.
3716
3717         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3718         ref_only exceptions.
3719         (mono_loader_clear_error): Make this work even if there is no error.
3720
3721 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3722
3723         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3724         Marshal.GetComSlotForMethodInfo using internal call.
3725
3726 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3727
3728         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3729         a function for signalling it.
3730
3731         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3732         a referenced assembly is not found.
3733
3734         * loader.c (mono_loader_error_prepare_exception): Add support for 
3735         LOADER_ERROR_ASSEMBLY. Fix formatting.
3736
3737 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3738
3739         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3740         for VARIANT marshalling on windows and increment corlib version
3741         since Variant struct was added.
3742
3743 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3744
3745         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3746         stack trace line information:
3747
3748         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3749         (Martin) when looking up B which is between A and C, return A not C.
3750
3751         Bug is #78573.
3752
3753         Thanks to Alexander Olk for tracking this down.
3754
3755 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3756
3757         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3758         
3759         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3760         avoid clobbering its value.
3761         (mono_string_to_lpstr): Fix a warning on windows.
3762
3763 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3764
3765         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3766
3767         * reflection.c loader.c: Removed references to 'dummy' flag.
3768
3769         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3770
3771         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3772         it gets GC tracking.
3773
3774         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3775         GC tracking.
3776         
3777         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3778
3779         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3780
3781         * appdomain.c: Bump corlib version.
3782
3783 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3784
3785         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3786         CEE_STIND_REF when working with object references.
3787
3788 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3789
3790         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3791         Fixes #78539.
3792
3793 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3794
3795         * loader.c (method_from_memberref): Fix argument value for
3796         mono_loader_set_error_method_load (I was passing the MonoClass
3797         instead of the class name char *).
3798
3799 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3800
3801         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3802         CEE_STIND_REF when working with object references.
3803
3804 2006-05-30  Martin Baulig  <martin@ximian.com>
3805
3806         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3807         mono_method_full_name() change and replace the ':' with a '.'
3808         here.
3809
3810 2006-05-30  Martin Baulig  <martin@ximian.com>
3811
3812         * debug-mono-symfile.c
3813         (mono_debug_symfile_lookup_location): Fix the algorithm:
3814         when looking up B which is between A and C, return A not C.
3815
3816 2006-05-29  Martin Baulig  <martin@ximian.com>
3817
3818         * mono-debug.h
3819         (MonoDebugMethodInfo): Make the typedef public.
3820         (MonoDebugSourceLocation): New public struct.
3821
3822         * mono-debug.c
3823         (mono_debug_source_location_from_address): Removed.
3824         (mono_debug_source_location_from_il_offset): Removed.
3825         (mono_debug_il_offset_from_address): Removed.
3826         (mono_debug_address_from_il_offset): Removed.
3827         (mono_debug_lookup_method): New public function.
3828         (mono_debug_lookup_source_location): New public function; replaces
3829         the old mono_debug_source_location_from_*() functions; see the
3830         inline documentation.
3831         (mono_debug_free_source_location): New public function.
3832         (mono_debug_print_stack_frame): New public function; see the
3833         inline documentation.
3834
3835         * debug-mono-symfile.c
3836         (mono_debug_find_source_location): Renamed into
3837         mono_debug_symfile_lookup_location(); only take a
3838         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3839         documentation.
3840         (mono_debug_find_method): Renamed into
3841         mono_debug_symfile_lookup_method().
3842
3843 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3844
3845         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3846         returned by mono_image_open_full ().
3847
3848         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3849         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3850         #78517.
3851
3852         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3853         #78518.
3854
3855 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3856
3857         * class.c (mono_class_from_typeref): handle missing images
3858         earlier, deals with bug #78418.   Refactor code; 
3859
3860         Fix a warning introduced in my previous commit (some stale code
3861         from before I revisited my patch).
3862
3863         * class.c (mono_class_create_from_typedef): On failure, remove the
3864         class from the MonoImage->class_cache as the class is not
3865         initialized;   Fixes the leak pointed out by Paolo.
3866
3867 2006-05-25  Dick Porter  <dick@ximian.com>
3868
3869         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3870         DeleteCriticalSections until I figure out which one may still be
3871         sometimes locked when mono_thread_cleanup is called.
3872
3873 2006-05-24  Dick Porter  <dick@ximian.com>
3874
3875         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3876         of mono_thread_manage and back into its own function, so it can be
3877         called after the finalizer thread has finished.
3878
3879         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3880
3881 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3882
3883         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3884         Fixes #78495.
3885
3886         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3887         with non-blittable elements.
3888         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3889
3890 2006-05-24  Martin Baulig  <martin@ximian.com>
3891
3892         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3893         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3894
3895         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3896         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3897         `mono_debugger_event_handler' to NULL.
3898
3899 2006-05-24  Martin Baulig  <martin@ximian.com>
3900
3901         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3902
3903 2006-05-24  Martin Baulig  <martin@ximian.com>
3904
3905         * mono-debug-debugger.h
3906         (mono_debugger_create_notification_function): Added
3907         `MonoCodeManager *' argument.
3908
3909 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3910
3911         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3912
3913 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3914
3915         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3916         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3917         implementation.
3918
3919 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3920
3921         * icall.c: precise GC support: objects can't be stored in unmanaged
3922         memory anymore, even if they are kept alive by other references: since
3923         they can move the GC needs to be able to always find them.
3924
3925 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3926
3927         * object.c: precise GC support for static fields. Support
3928         for moving GCs: write barriers and pinned allocation for interned
3929         strings.
3930
3931 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3932
3933         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3934         structure.
3935
3936 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3937
3938         * class.c, gc.c: sgen and precise GC updates.
3939
3940 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3941
3942         * marshal.h, marshal.c: added write barrier wrapper and precise type
3943         fixes.
3944
3945 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3946
3947         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3948         support.
3949
3950 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3951
3952         * reflection.c: precise and sgen GC updates.
3953
3954 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3955
3956         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3957
3958 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3959
3960         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3961
3962 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3963
3964         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3965         MONO_TYPE_OBJECT. Fixes #78462.
3966
3967 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3968
3969         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3970         and blittable types.
3971
3972 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3973
3974         * class.c (mono_class_get_exception_for_failure): Implement parts
3975         of a TODO: if the loader error is set (instead of the class
3976         error), we return a Loader exception that can be properly thrown
3977         elsewhere.
3978
3979         This was exposed by some Winforms 2.0 code that I tried to run
3980         (Atsushi pointed me to it).
3981
3982 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3983
3984         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3985         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3986         
3987         * marshal.c (emit_marshal_vtype): Add limited support for 
3988         UnmanagedType.LPStruct. Fixes #78427.
3989
3990         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3991         Applied a patch from kangaroo to fix #77523.
3992
3993 2006-05-17  Martin Baulig  <martin@ximian.com>
3994
3995         * threads.c
3996         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3997         (debugger_thread_created): Removed.
3998         (debugger_thread_exited): Removed.
3999
4000 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4001
4002         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4003
4004         * object-internals.h (MonoReflectionResource): Sync with managed version.
4005
4006 2006-05-12  Wade Berrier <wberrier@novell.com>
4007
4008         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4009
4010 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4011
4012         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4013         functions try to allocate from the image mempool.
4014
4015 2006-05-12  Dick Porter  <dick@ximian.com>
4016
4017         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4018
4019 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4020
4021         * object.c: The FieldGetter and FieldSetter methods require the full
4022         name of the class, not only the name. Fixes bug #78277.
4023
4024 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4025
4026         * loader.c (method_from_memberref): Do not pass the NULL klass to
4027         mono_loader_set_error_() methods.  Pass the non-NULL value
4028         (class). 
4029
4030 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4031
4032         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4033         (mono_assembly_close): Null out assembly->image->references after freeing it.
4034
4035         * image.c (mono_image_close): Free image->references.
4036         
4037         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4038
4039 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4040
4041         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4042         before checking if it's NULL (g_assert).
4043
4044 2006-05-10  Martin Baulig  <martin@ximian.com>
4045
4046         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4047         I thought I already killed that two months ago, but now it somehow reappeared.
4048
4049 2006-05-10  Martin Baulig  <martin@ximian.com>
4050
4051         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4052
4053 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4054
4055         * reflection.c: Allocate memory for dynamically created methods in the image
4056         mempools.
4057
4058 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4059
4060         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4061         don't use the ad pointer before checking if it's NULL (g_assert).
4062
4063 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4064
4065         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4066         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4067
4068         * marshal.c: Allocate all signatures from mempools.
4069
4070         * marshal.c: Allocate some more signatures from mempools.
4071
4072 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4073
4074         * object.c (mono_load_remote_field): The code used to provide a
4075         temporary variable for returning results if the user did not
4076         provide a result pointer.  But our temporary variable was allocted
4077         on the satck.
4078
4079         Fix calling code to always pass a result area.   Coverity ID 103.
4080
4081 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4082
4083         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4084         value, not the old. Fixes #78312.
4085         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4086
4087         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4088         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4089         per-image cache.
4090
4091         * assembly.c (mono_assembly_close): Free image->references.
4092
4093         * assembly.c (mono_assembly_names_equal): Fix a warning.
4094         (mono_assemblies_cleanup): Cleanup more global data.
4095
4096         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4097
4098         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4099         ptr_cache and image->modules.
4100
4101         * image.c (mono_image_init): Allocate array_cache lazily.
4102         
4103 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4104
4105         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4106         behavior was changed recently and has bad side effects.
4107
4108 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4109
4110         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4111         
4112         * assembly.c (mono_assembly_close): Remove a debug printf.
4113
4114         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4115
4116         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4117         to also allow for temporary references between mono_image_open ()/close ().
4118
4119         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4120
4121 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4122
4123         * marshal.c: Fix support for dynamic methods.
4124
4125         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4126
4127         * marshal.c (mono_marshal_cleanup): New cleanup function.
4128
4129         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4130         image mempools.
4131
4132         * class.c (mono_class_init): Fix leaking class->nested_classes.
4133
4134         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4135
4136         * image.c (mono_image_init): Initialize the new cashes.
4137
4138         * image.c (mono_image_close): Destroy the new cashes.
4139
4140         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4141
4142         * mempool.c (mono_mempool_strdup): New helper function.
4143
4144         * class-internals.h: Add prototype for mono_loader_unlock ().
4145
4146         * domain.c (mono_jit_info_table_find): Fix a warning.
4147         (mono_debugger_check_runtime_version): Ditto.
4148
4149         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4150         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4151         functions to these modules.
4152
4153         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4154         metadata modules.
4155         
4156         * marshal.c (mono_free_bstr): Fix a warning.
4157
4158         * assembly.c (mono_assembly_open_full): Fix another small leak.
4159
4160         * object.c: Fix some unload leaks in the remoting code.
4161
4162         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4163         function.
4164
4165         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4166
4167         * reflection.c: Fix some unload leaks in dynamic assemblies.
4168
4169 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4170
4171         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4172         * marshal.h: Add BSTR support on Win32
4173         * icall.c: Add BSTR icalls
4174         * metadata.h: Add BSTR enums
4175
4176 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4177
4178         Work to catch the crash from #76795 and turn it into an
4179         exception.   As I stubbed out pieces of the VisualBasic support,
4180         I found a number of places where the code was failing and I added
4181         checks to those places. 
4182         
4183         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4184         function return a status code.  If we fail to parse the signature
4185         from mono_metadata_parse_generic_inst, return FALSE.
4186
4187         * loader.c (mono_get_method_from_token): If we fail to load the
4188         method (mono_class_get) return NULL.   
4189
4190         * (method_from_memberref): Return NULL if we are unable to parse
4191         the method signature
4192
4193         (mono_loader_error_prepare_exception): Since we now use the
4194         loader_error flag internally to stop processing, and obtaining
4195         exceptions that might be thrown will walk this code path the
4196         proper way of going from a MonoLoaderError into a
4197         MonoException was convoluted.   This new routine encapsulates the
4198         process of turning the error into an exception and *clearing* the
4199         error afterwards.
4200         
4201 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4202
4203         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4204         with missing assemblies), and to cope with:
4205
4206                 * Missing fieldref from a non-existing assembly.
4207                 * Missing methodref from a non-existing assembly.
4208
4209         The first batch of work to address *some* of the issues from 76661.
4210         
4211         * object.c (mono_class_create_runtime_vtable): If we fail to
4212         initialize the class raise the exception here. 
4213
4214         * metadata.c (mono_class_get_overrides_full): If any methods fail
4215         to load return the failure to the caller.
4216
4217         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4218         flagging assemblies that failed to load.   
4219
4220         Do not crash if we are unable to load the assembly.
4221
4222         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4223         assemblies. 
4224
4225         * loader.c (mono_loader_set_error_type_load): Change the
4226         convention to always pass unallocated strings, so we make our own
4227         copies (I know our own code had duplicated strings before, but
4228         this keeps the normal conventions).
4229         (method_from_memberref): Call mono_loader_set_error_method_load
4230         for all possible failures of loading the class. 
4231         Remove assert, turn into a loader error.
4232
4233         (mono_loader_error_to_exception): Move this routine from mini
4234         (mini_loader_error_to_exception) there was no need to have that in
4235         mini. 
4236
4237         * class.c (mono_class_from_typeref): If we were not able to load
4238         the assembly with mono_assembly_load_reference, call the
4239         mono_loader_set_error_type_load to register the problem.
4240
4241         (mono_class_setup_fields): If we fail to load the type from
4242         mono_metadata_parse_type_full, call mono_class_set_failure and
4243         break from the loop.
4244
4245         If class->exception_type is set, we do not layout the fields as
4246         that might crash the runtime, and instead return (from breaking
4247         from the previous loop).
4248
4249         (mono_class_setup_vtable): This now returns a boolean indicating
4250         whether the table was properly setup.   The decision is driven by
4251         mono_class_get_overrides_full which might run into non-existing
4252         methods. 
4253         
4254         (mono_class_init): Returns TRUE on success or FALSE if there was a
4255         problem in loading the type (incorrect assemblies, missing
4256         assemblies, methods, etc).
4257
4258         When we call mono_class_setup_fields we also check for a potential
4259         error inside this call (either a class exception or a general
4260         loader exception).
4261
4262         (mono_class_create_from_typedef): If the parent fails to load
4263         (calling mono_class_get_full) return NULL.
4264         
4265         ** Important **
4266
4267         calls to mono_metadata_parse_type_full should be checked
4268         everywhere and set the mono_class_set_failure
4269         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4270
4271         The current patch checks the places where my manually constructed
4272         tests show the errors are showing up, but we should do it
4273         everywhere. 
4274
4275         ** Important2 **
4276
4277         mono_class_init return values should be tested everywhere, like
4278         the previous case this is something that we should audit
4279         everywhere and not only on the cases exposed by the tests I
4280         created. 
4281
4282 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4283
4284         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4285         boolean parameter and instead pass the information on `options'
4286         parameter (FileOptions).
4287
4288         * icall.c: Register the new signature for MonoIO.Open.
4289
4290         * debug-helpers.c (dis_one): Trying to understand how coverity
4291         works.  Fix Run 5, item 78.
4292
4293 2006-04-26  Dick Porter  <dick@ximian.com>
4294
4295         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4296         dereference.
4297
4298 2006-04-25  Martin Baulig  <martin@ximian.com>
4299
4300         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4301
4302         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4303         debugger_thread_created().
4304         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4305         special way.
4306         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4307         (mono_debugger_finalize_threads): New function; undo the effects
4308         of mono_debugger_init_threads().
4309         (mono_debugger_create_all_threads): Removed.
4310
4311 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4312
4313         * image.c (mono_image_close): Tidy up trace messages.
4314
4315         * assembly.c (mono_assembly_close): Ditto.
4316
4317         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4318         no longer references an already freed assembly. Fixes #78168.
4319
4320 2006-04-21  Dick Porter  <dick@ximian.com>
4321
4322         * threads.c (mono_thread_detach): Fix reference counting when
4323         detaching threads.
4324
4325 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4326
4327         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4328         #78155.
4329
4330 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4331
4332         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4333         (mono_type_to_stind): Ditto.
4334
4335         * marshal.c: Use the new helper functions to simplify code.
4336
4337         * image.c (mono_image_close): Add some code for help debug assembly unloading
4338         problems.
4339
4340         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4341         image mempool.
4342
4343         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4344         assembly was already loaded in another appdomain. Fixes #78083.
4345
4346 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4347
4348         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4349         referenced assemblies.
4350         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4351
4352         * domain.c (mono_domain_free): Add a trace message.
4353
4354         * appdomain.c (add_assemblies_to_domain): Ditto.        
4355
4356         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4357         field.  
4358
4359 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4360
4361         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4362
4363 2006-04-12  Martin Baulig  <martin@ximian.com>
4364
4365         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4366         `USE_INCLUDED_LIBGC'.   
4367
4368 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4369
4370         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4371         the patch contains ../ and a small directory name later. Hopefully fixes
4372         #78035.
4373
4374 2006-04-10  Martin Baulig  <martin@ximian.com>
4375
4376         Clean up the debugger's thread-handling code.
4377
4378         The debugger's thread-handling code has been moved from
4379         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4380         over the `threads' hash, keep track of exiting threads and also
4381         use proper locking.
4382
4383         We can now debug XSP and XSP based applications with the debugger.
4384
4385         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4386
4387         * threads.h
4388         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4389         (mono_install_thread_callbacks): Likewise.      
4390
4391         * threads.c (mono_thread_callbacks): Removed.
4392         (debugger_thread_created, debugger_thread_exited): New static functions.
4393         (start_wrapper): Call debugger_thread_created().
4394         (thread_cleanup): Call debugger_thread_exited().
4395         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4396         (mono_debugger_init_threads): New public function.
4397         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4398         iterate directly over the `threads' hash and also use proper locking.
4399
4400         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4401
4402         * mono-debug-debugger.h
4403         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4404
4405 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4406
4407         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4408         argument type=array. Fixes #78057.
4409
4410 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4411
4412         * culture-info-table.h : regenerated. Fixed bug #69652.
4413
4414 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4415
4416         * loader.c metadata.c: Reapply a variant r59116.
4417         
4418         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4419
4420         * class.c (mono_class_setup_interface_offsets): New internal function.
4421
4422         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4423         interfaces too. Fixes #77398.
4424
4425         * reflection.c (encode_cattr_value): Add support for 
4426         parameter type=object, argument type=array.
4427         (load_cattr_value): Ditto. Fixes #77916.
4428
4429         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4430         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4431
4432         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4433         a byval char array and CharSet is Ansi.
4434
4435         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4436
4437 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4438
4439         * metadata.c: Add some locking comments.
4440         
4441         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4442         mempool.
4443         (mono_metadata_free_method_signature): Don't free the signature itself.
4444
4445         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4446
4447         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4448         reference the same MonoImage.
4449         (mono_assembly_load_from_full): Add an assert.
4450
4451 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4452
4453         * image.c (mono_image_close): Don't put the image we are about to free into the
4454         loaded_images_guid_hash.
4455
4456         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4457         to reduce code duplication.
4458
4459         * marshal.c: Register the native functions called by this module as icalls, to
4460         somewhat centralize the creation of MonoMethodSignature's.
4461
4462         * loader.c (mono_method_signature): Add a cache for method signatures.
4463
4464         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4465         the parameter attributes of a method.
4466         (mono_metadata_parse_method_signature_full): Refactored the computation of
4467         parameter attributes into a separate function. Also avoid one allocation in
4468         most cases.
4469
4470         * assembly.c (mono_assembly_close): Ditto.
4471
4472         * image.c (mono_image_close): Log trace messages with INFO level.
4473
4474         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4475
4476         * image.c reflection.c: Correct reference counting of image modules.
4477         
4478         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4479         of this function from the image mempool.
4480         
4481         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4482         to allow more cached types to be used.
4483
4484         * mono-debug.c (mono_debug_add_method): Appled patch from
4485         David S. Miller  <davem@sunset.davemloft.net>: Access 
4486         minfo->lexical_blocks[] entry elements using read32().
4487
4488 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4489
4490         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4491         methods as it is allocated from the mempool.
4492
4493         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4494         image mempool.
4495
4496         * metadata-internals.h: Add comments describing the reference counting scheme
4497         used for MonoImage and MonoAssembly.
4498
4499         * image.c assembly.c reflection.c: Rework reference counting of images and 
4500         assemblies so they are freed when the runtime is shut down. Free some 
4501         additional memory structures when an image is unloaded.
4502         
4503 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4504
4505         * class.c loader.c reflection.c: Allocate more data structures in
4506         the image mempool.
4507
4508 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4509
4510         * icall.c
4511         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4512         build on pre glib 2.4 systems.
4513
4514 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4515
4516         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4517
4518         * icall.c: Fix some warnings.
4519
4520 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4521
4522         * culture-info-table.h : regenerated.
4523
4524 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4525
4526         * threads.c, object-internals.h, verify.c: changed the culture caching
4527         code to use a normal MonoArray for storage so the GC can keep track of
4528         them easily. Fixed bits of the cache logic, too and simplified the
4529         code.
4530
4531 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4532
4533         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4534         thread for non-Boehm GCs.
4535
4536 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4537
4538         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4539         needed to keep track of the data for static fields.
4540
4541 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4542
4543         Fix #75172
4544         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4545         for interface classes.  Use 'num_methods' instead.
4546         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4547         before using '->vtable_size' field.
4548
4549 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4550
4551         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4552         doesn't contain managed pointers, so use a normal hashtable.
4553
4554 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4555
4556         * reflection.c, class-internals.h, domain.c: fixed handling of types
4557         used as values for objects in custom attributes (bug #77915):
4558
4559 2006-03-24  Martin Baulig  <martin@ximian.com>
4560
4561         * class.c (mono_class_setup_fields): Added support for generic
4562         instances; fixes #77580.
4563
4564 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4565
4566         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4567
4568 2006-03-24  Dick Porter  <dick@ximian.com>
4569
4570         * file-io.c (get_file_attributes): More stat macro breakage.
4571         Fixes bug 77759.
4572
4573 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4574
4575         * profiler.c: added the file=filename option in the default profiler
4576         to output the profile data to filename.
4577
4578 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4579
4580         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4581         bug #77877.
4582
4583 2006-03-22  Martin Baulig  <martin@ximian.com>
4584
4585         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4586         allocated `MonoClassField *' in `fb->handle'.
4587
4588 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4589
4590         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4591         allocate interface ID to save memory and allow better ID reuse on
4592         appdomain unload. setup_generic_vtable () removal from Martin.
4593
4594 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4595
4596         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4597         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4598         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4599         write barriers for reference stores with managed objects accessed with
4600         C structures in the runtime and in embedding programs.
4601
4602 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4603
4604         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4605         'interface_id' and 'max_interface_id' fields of MonoClasses
4606         representing open generic types.
4607
4608 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4609
4610         * object.h, object.c, icall.c: added functions to deal with
4611         storing valuetypes that contain references in managed objects.
4612         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4613         fixes and comments around uses of mono_array_addr ().
4614
4615 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4616
4617         * object.h, icall.c, monitor.c: object.GetHashCode ()
4618         implementation that supports the moving garbage collector.
4619
4620 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4621
4622         * icall.c, threads-types.h, threads.c: implemented finalizer for
4623         LocalDataStoreSlot.
4624
4625 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4626
4627         * metadata.c (mono_type_size): Add a fixme.
4628         (mono_type_stack_size): Ditto.
4629
4630         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4631         'type_forwarders' field.
4632
4633         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4634         attribute from net 2.0.
4635
4636         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4637         from class.c.
4638
4639         * class.c (mono_class_setup_fields): Fix a warning.
4640         
4641         * class.c (mono_class_from_name): Add support for assemblyref entries
4642         in the EXPORTEDTYPE table.
4643
4644         * reflection.c: Add support for handling type forwarders under net 2.0.
4645
4646         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4647         
4648 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4649
4650         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4651         overwriting entries in ModuleBuild->types, also clean up the code
4652         a little. Fixes #77774.
4653
4654 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4655
4656         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4657         load friend assembly info when present.
4658
4659 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4660
4661         Fix crasher on gtest-158.cs.
4662         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4663         the return value if the MonoClass we want is yet in an
4664         inconsistent state.
4665         * class.c (mono_class_create_from_typedef): Add an comment
4666         explaining an order dependency between mono_class_setup_parent and
4667         mono_class_setup_mono_type.
4668
4669 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4670
4671         * class.c: documentation updates and events bug fix.
4672
4673 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4674
4675         * class.c: some cleanup, locking fixes.
4676
4677 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4678
4679         * class.c: fix the generics code to setup nested
4680         type info to the instantiated type (bug #77770).
4681
4682 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4683
4684         * marshal.c: fixed a few type correctness issues.
4685
4686 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4687
4688         * loader.c: the Set/Get/Addrtess array methods should be public.
4689
4690 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4691
4692         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4693         
4694         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4695         info->wrapper.
4696
4697 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4698
4699         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4700
4701         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4702
4703         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4704         (mono_mempool_alloc0): Ditto.
4705
4706 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4707
4708         * socket-io.c:
4709         (create_object_from_sockaddr): it was allocating 4 extra bytes
4710         for the AF_UNIX data. Fixes bug #77747.
4711
4712 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4713
4714         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4715
4716 2006-03-09  Dick Porter  <dick@ximian.com>
4717
4718         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4719         Fixes bug 76966 again.
4720
4721 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4722
4723         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4724         names from r57532
4725         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4726
4727 2006-03-07  Martin Baulig  <martin@ximian.com>
4728
4729         * object.c
4730         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4731
4732 2006-03-07  Martin Baulig  <martin@ximian.com>
4733
4734         * class.c
4735         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4736         regression introduced in r56970; see gtest-252.cs.
4737
4738         * loader.c (mono_get_method_constrained): Correctly handle generic
4739         methods; see gtest-253.cs.
4740
4741 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4742
4743         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4744
4745 2006-03-04  Martin Baulig  <martin@ximian.com>
4746
4747         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4748         compute the parent type at runtime, just like we're already doing
4749         it for interfaces.
4750
4751         * reflection.c
4752         (mono_reflection_bind_generic_parameters): Don't compute the
4753         parent type anymore.
4754
4755         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4756
4757 2006-03-04  Martin Baulig  <martin@ximian.com>
4758
4759         * mono-debug-debugger.h
4760         (mono_debugger_create_notification_function): Allocate memory at
4761         runtime and return a pointer to it.
4762
4763 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4764
4765         * assembly.c: Fix windows build.
4766         
4767         * assembly.c: Fix build.
4768
4769         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4770
4771         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4772         
4773 2006-03-03  Dick Porter  <dick@ximian.com>
4774
4775         * process.c
4776         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4777         Check parameters before dereferencing them.  Fixes Aaron's part of
4778         bug 77393.
4779
4780 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4781
4782         Fix performance regression.
4783         * loader.c (find_method_in_class): Add 'from_class' argument.
4784         Rename 'klass' argument to 'in_class'.  The signature is compared
4785         against the method in 'in_class', and the corresponding method is
4786         returned from 'from_class'.
4787         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4788         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4789         type definition and generic instantiation in parallel.
4790         (mono_get_method_constrained): Update to changes.
4791
4792 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4793
4794         * threads.c: make sure the domain is correct, too when doing
4795         mono_thread_attach ().
4796
4797 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4798
4799         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4800         windows. Fixes #77683.
4801
4802 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4803
4804         * object.h, *: introduced specific way to set elements of an array
4805         of references to be used as write barrier. Still need to audit the
4806         uses of mono_array_addr.
4807
4808 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4809
4810         * object-internals.h: New field to cache the assmebly name, patch
4811         from Tambet Ingo (tambet@ximian.com)
4812
4813 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4814
4815         * decimal.h, class-internals.h, metadata-internals.h,
4816         file-io.h: mark a few function declarations as internal, to
4817         reduce the number of PLT entries.
4818
4819 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4820
4821         * file-io.c: fix typo in warning message.
4822
4823 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4824
4825         * loader.c: on unix, lookup the "*A" version of a function
4826         if charset is auto as a second option before failing.
4827
4828 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4829
4830         * class.h (mono_class_inflate_generic_method): Revert to two
4831         argument version.
4832         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4833         (mono_class_inflate_generic_method_full): Add.
4834         * class.c (mono_class_inflate_generic_method_full): Rename from
4835         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4836         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4837         * loader.c, reflection.c: Update to changes.
4838
4839 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4840
4841         * icall.c: const fixes and small improvements.
4842
4843 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4844
4845         * threadpool.c: for asynchronous connect(), enable the same workaround
4846         for BSD 6 as for the Mac. Fixes bug #77637.
4847
4848 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4849
4850         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4851         formatted classes. Fixes #77524.
4852
4853 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4854
4855         * class.c (inflate_generic_type): Add a couple more
4856         micro-optimizations.
4857         (inflate_generic_context): Don't use the 'gmethod' from
4858         'inflate_with'.
4859         (mono_class_inflate_generic_method): If the method has generic
4860         parameters, but the passed-in context doesn't have a 'gmethod',
4861         create one.  Use the possibly simplified generic instantiation
4862         from the declaring class instead of the one passed in.
4863
4864 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4865
4866         Make generic method signature and method header handling lazy.
4867         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4868         (inflate_generic_header): Likewise.
4869         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4870         parameter to avoid inflating types.
4871         (mono_get_inflated_method): Empty out.
4872         * class.h (mono_class_inflate_generic_method): Update to changes.
4873         * loader.c (mono_get_method_from_token): Don't parse signature for
4874         generic methods, nor methods of generic classes.
4875         (mono_method_signature): Rename from 'mono_method_signature'.
4876         Inflate signature on demand.
4877         (mono_method_get_header): Inflate method header on demand.
4878         * reflection.c: Update to changes.
4879
4880 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4881
4882         * metadata.c (mono_metadata_inflate_generic_inst): If the
4883         instantiation is closed, don't bother expanding it in the new
4884         context.
4885         * class.c (inflate_generic_class): If the generic instantiation
4886         doesn't change after inflation, return the argument itself.
4887         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4888         Add bounds checks.
4889         (inflate_generic_context): If neither the generic class nor the
4890         generic method instantiations change, return the original context.
4891         * reflection.c (mono_method_get_object): Do
4892         'mono_get_inflated_method' before accessing the ->klass field.
4893         (inflate_mono_method): Don't create a MonoGenericMethod unless
4894         necessary.
4895         (inflate_method): Don't pass a constructed type as the declaring
4896         type of a methodbuilder.
4897
4898 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4899
4900         * object.c: fix memory overwrite.
4901
4902 2006-02-22  Dick Porter  <dick@ximian.com>
4903
4904         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4905         it doesn't work any more.
4906         (mono_threads_request_thread_dump): Fix unused variable warnings.
4907
4908 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4909
4910         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4911         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4912         the public header file.
4913
4914 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4915
4916         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4917
4918 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4919
4920         * class-internals.h, object.c: reduce the size of MonoVTable
4921         and store the interface_offsets array at negative offsets.
4922
4923 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4924
4925         * metadata.c: tweak table descriptors data structures to reduce
4926         size and runtime relocations.
4927
4928 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4929
4930         * marshal.c: fix some types and opcodes to be type-safe
4931         in marshaling wrappers.
4932
4933 2006-02-21  Ankit Jain  <jankit@novell.com>
4934
4935         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4936
4937 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4938
4939         * metadata.c (get_constraints): Relax debugging checks for monodis.
4940
4941 2006-02-21  Ankit Jain  <jankit@novell.com>
4942
4943         * metadata.c (mono_metadata_load_generic_params): Move the code
4944         checking for ambiguous generic params from here to mono/dis/get.c
4945         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4946
4947 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4948
4949         Fix assertion triggered when compiling nemerle.
4950         * class.c (mono_get_shared_generic_inst): Rename from
4951         get_shared_inst and make non-static.
4952         * loader.c (mono_get_shared_generic_method): New.  Used to create
4953         the MonoGenericContext-equivalent of a MonoGenericContainer.
4954         (mono_get_method_from_token): Initialize the 'context' field of
4955         the created MonoGenericContainer.
4956         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4957         * metadata.c (get_constraints): Add sanity check.
4958         * class-internals.h: Add new internal methods.
4959
4960         * reflection.c (verify_safe_for_managed_space): New sanity check.
4961         Currently checks that owner-less generic parameters aren't allowed
4962         in managed space.
4963         (mono_type_get_object): Use it.
4964         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4965         that are now in mono_type_get_object.
4966         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4967
4968 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4969
4970         * metadata.c (mono_type_create_from_typespec): Rename from
4971         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4972         argument and caching of types in the generic container.
4973         (unwrap_arrays, find_generic_param): Remove.
4974         * metadata-internals.h: Update.
4975         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4976
4977 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4978
4979         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4980
4981         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4982         return values. Fixes #77581.
4983
4984         * class.c (mono_fnptr_class_get): Switch name and name_space.
4985
4986         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4987         classes and add support for [In, Out] attributes.
4988         (mono_marshal_free_asany): Ditto. Fixes #77524.
4989
4990 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4991
4992         * class.c (mono_class_from_generic_parameter): Make more robust to
4993         incomplete MonoGenericContainers from monodis.
4994
4995 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4996
4997         * class-internals.h: added some more exception types.
4998         * class.c, metadata.c: added a few checks to handle missing
4999         types.
5000
5001 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5002
5003         Use owner-less generic-params some more.
5004         * class.c (my_mono_class_from_generic_parameter): Remove.
5005         (mono_class_from_generic_parameter): Handle null image,
5006         param->name and param->owner.
5007         (mono_class_from_mono_type): Update.
5008         (mono_class_create_from_typespec): Remove 'container' parameter.
5009         If that parameter is non-null, the result is always inflated by
5010         'mono_class_get_full' anyway.
5011         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5012         parameter.
5013         (mono_class_get_full): Update.
5014
5015         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5016         instance is not open, don't bother inflating.
5017         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5018         parse metadata for inflated classes.
5019         (_mono_class_get): Change GenericContext* parameter to
5020         GenericContainer*.
5021         (mono_class_create_from_typespec): Likewise.  Simplify, and
5022         implement trivially.  All the cases are handled in
5023         mono_class_from_mono_type.  Don't inflate returned class.
5024         (mono_class_get_full): Delegate GENERICINST optimization to
5025         inflate_generic_type.
5026         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5027
5028 2006-02-16  Dick Porter  <dick@ximian.com>
5029
5030         * socket-io.c (create_object_from_sockaddr): Fix typo.
5031         (create_sockaddr_from_object): Check array lengths before
5032         potentially accessing items off the end.
5033         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5034         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5035         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5036         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5037         length checks to avoid wraparound overflows.
5038         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5039         contents of the array of sockets
5040         (hostent_to_IPHostEntry2)
5041         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5042         Check return value of inet_ntop ().
5043         (addrinfo_to_IPHostEntry): Fix typo
5044
5045 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5046
5047         Type metadata parsing doesn't use generic-instantiation information.
5048         * metadata.c (mono_metadata_parse_array_full): Change
5049         MonoGenericContext* parameter to MonoGenericContainer*.
5050         (mono_metadata_parse_type_full): Likewise.
5051         (mono_type_create_from_typespec_full): Likewise.
5052         (mono_metadata_parse_mh_full): Likewise.
5053         (mono_metadata_parse_generic_inst): Likewise.
5054         (do_mono_metadata_parse_generic_class): Likewise.
5055         (do_mono_metadata_parse_type): Likewise.
5056         * metadata-internals.h: Update to changes.
5057         * class.c (mono_class_find_enum_basetype): Likewise.
5058         (mono_class_setup_fields): Likewise.
5059         (mono_class_create_from_typespec): Likewise.
5060         * loader.c (method_from_methodspec): Likewise.
5061         (mono_get_method_from_token): Likewise.
5062         (mono_method_get_header): Likewise.
5063
5064 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5065
5066         * marshal.c: handle additional GENERICINST case (patch from
5067         Thong Nguyen <tum@veridicus.com>).
5068         Fix a few cases where LDIND_I/STIND_I was used for references.
5069
5070 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5071
5072         * reflection.c (mono_reflection_get_token): Remove unused variable.
5073
5074 2006-02-16  Martin Baulig  <martin@ximian.com>
5075
5076         * reflection.c (mono_reflection_get_token): Add support for fields
5077         in instantiated generic types.
5078
5079         * icall.c
5080         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5081
5082 2006-02-15  Martin Baulig  <martin@ximian.com>
5083
5084         * icall.c
5085         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5086         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5087         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5088         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5089
5090 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5091
5092         * class.c, metadata.c, metadata.h, object.c, icall.c,
5093         marshal.c: changed mono_type_get_underlying_type () to do
5094         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5095         Fixed handling of instantiated generic valuetypes (bug #75479).
5096
5097 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5098
5099         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5100         Delegate to mono_metadata_decode_value, and work on the returned value.
5101
5102         * icall.c (ves_icall_MonoType_GetGenericArguments):
5103         Add consistency check here too.
5104         
5105 2006-02-15  Ankit Jain  <jankit@novell.com>
5106
5107         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5108         char/short etc.
5109
5110 2006-02-15  Ankit Jain  <jankit@novell.com>
5111
5112         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5113         signed values, used only for representing lower bounds of arrays.
5114         (mono_metadata_parse_array_full): Use new
5115         mono_metadata_decode_signed_value to decode lower bounds.
5116
5117 2006-02-14  Martin Baulig  <martin@ximian.com>
5118
5119         * reflection.c
5120         (mono_reflection_get_token): Support "MonoGenericMethod" and
5121         "MonoGenericCMethod" and allow generic instances / methods.
5122
5123 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5124
5125         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5126         to obtain the terminal size using an ioctl.
5127
5128         * object.c (mono_nullable_init): Revert this as nullable reference
5129         types are not valid.
5130         (mono_nullable_box): Ditto.
5131
5132 2006-02-09  Dick Porter  <dick@ximian.com>
5133
5134         * threads.c (mono_thread_detach): Drop a reference to the thread
5135         we're detaching.
5136
5137 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5138
5139         * object.c (mono_nullable_init): Handle nullable reference types.
5140         (mono_nullable_box): Ditto. Fixes #77446.
5141
5142 2006-02-07  Martin Baulig  <martin@ximian.com>
5143
5144         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5145
5146 2006-02-07  Ankit Jain  <jankit@novell.com>
5147
5148         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5149         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5150         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5151         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5152         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5153         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5154
5155 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5156
5157         * class.c (mono_class_create_generic): Set type_token as well.
5158
5159         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5160         compatible with MS.
5161
5162 2006-02-02  Martin Baulig  <martin@ximian.com>
5163
5164         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5165         has never been used so far.
5166
5167 2006-02-02  Martin Baulig  <martin@ximian.com>
5168
5169         * mono-debug-debugger.h: Changed comment at the top of this file;
5170         the header is not installed, but it's safe to #include it from
5171         within the JIT.
5172
5173         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5174         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5175
5176 2006-02-02  Martin Baulig  <martin@ximian.com>
5177
5178         * mono-debug.h
5179         (MonoSymbolTable): Removed the `metadata_info' field.
5180
5181         * mono-debug.c
5182         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5183
5184         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5185         (mono_debugger_add_builtin_types): Removed.
5186         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5187         (mono_debugger_create_notification_function): We now operate on a
5188         pre-allocated area; take a `gpointer' and return `void'.
5189
5190         * mono-debug-debugger.c
5191         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5192         (mono_debugger_add_builtin_types): Removed.
5193
5194 2006-02-02  Martin Baulig  <martin@ximian.com>
5195
5196         * threads.c (mono_debugger_create_all_threads): New public method.
5197
5198 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5199
5200         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5201         breaks on several platforms.
5202
5203 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5204
5205         * assembly.c: the VS.NET build doesn't supply default values for
5206         MONO_ASSEMBLIES and MONO_CFG_DIR.
5207
5208 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5209
5210         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5211         helper function.
5212
5213         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5214
5215         * loader.c (method_from_memberref): Fix a warning.
5216
5217         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5218
5219         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5220         with explicit layout. Fixes #77433.
5221
5222 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5223
5224         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5225         max_interface_id is initialized before using it. Fixes #77398.
5226         (ves_icall_Type_GetInterfaces): Ditto.
5227
5228 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5229
5230         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5231         allocate memory for parameter attributes when parsing memberref
5232         signatures.
5233         * loader.c (mono_loader_set_error_method_load): Don't warn.
5234         (method_from_memberref): Ensure MissingMethodException gets thrown
5235         if method is not found.  Make warning more informative.
5236
5237 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5238
5239         Fix #77397
5240         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5241         return true if is byref.
5242         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5243         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5244         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5245
5246 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5247
5248         Fix tests/find-method.2.il
5249         * loader.c (find_method, find_method_in_class): Remove is_inflated
5250         argument.  Revert 2006-01-18 change.
5251         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5252         is generic, search for method in its generic definition.
5253         * class.c (mono_class_setup_vtable_general): Print generic
5254         arguments of generic types in debugging printf.
5255
5256 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5257
5258         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5259
5260         * threads.c (mono_threads_request_thread_dump): New helper function.
5261
5262 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5263
5264         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5265
5266 2006-01-25  Ankit Jain  <jankit@novell.com>
5267
5268         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5269         move definition to ..
5270         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5271         
5272 2006-01-25  Ankit Jain  <jankit@novell.com>
5273             Raja R Harinath  <rharinath@novell.com>
5274
5275         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5276         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5277         as necessary.
5278
5279 2006-01-25  Martin Baulig  <martin@ximian.com>
5280
5281         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5282         `MonoDebuggerThread' into debug-debugger.c.
5283
5284 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5285
5286         * profiler.c: fix printing of data.
5287
5288 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5289
5290         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5291           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5292
5293 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5294
5295         * object.c: fix deadlock related to string interning.
5296
5297 2006-01-23  Martin Baulig  <martin@ximian.com>
5298
5299         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5300
5301         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5302
5303 2006-01-23  Martin Baulig  <martin@ximian.com>
5304
5305         * mono-debug.h: Moved the prototypes of some functions which are
5306         used by the JIT here from mono-debug-debugger.h.
5307
5308 2006-01-21  Martin Baulig  <martin@ximian.com>
5309
5310         * Makefile.am: Don't install mono-debug-debugger.h.
5311
5312 2006-01-21  Martin Baulig  <martin@ximian.com>
5313
5314         * mono-debug-debugger.h: Enforce the private status of this header
5315         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5316         Moved some stuff from mono-debugger-jit-wrapper.h here.
5317
5318 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5319
5320         * class.c (mono_class_from_typeref): Add a sanity test to help
5321         catch lack of assembly load/search hooks.
5322
5323 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5324
5325         * marshal.c (emit_struct_conv): Relax the fields with same offset
5326         check even more. Fixes #77230.
5327
5328 2006-01-18  Martin Baulig  <martin@ximian.com>
5329
5330         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5331         argument; if false, we compare the uninstantiated signatures.
5332         (method_from_memberref): Compare the uninstantiated signatures;
5333         fixes #76417.
5334
5335 2006-01-18  Robert Jordan  <robertj@gmx.net>
5336
5337         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5338         Clear the weak link. Fixes bug #77170.
5339
5340         * gc.c (mono_gchandle_free):
5341         Reflect *-gc.c changes (tiny optimization).
5342
5343 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5344
5345         * metadata.c (mono_metadata_signature_dup): Applied patch from
5346         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5347         Fixes #77288.
5348
5349 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5350
5351         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5352         marshalling from native to managed code. Fixes #77230.
5353
5354 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5355
5356         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5357         connect. Fixes bug #77020.
5358
5359 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5360
5361         * class.c: fixed id assignement for nested interfaces (bug #77275).
5362         Added also better info for --print-vtable debugging.
5363
5364 2006-01-12  Martin Baulig  <martin@ximian.com>
5365
5366         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5367         interfaces on-the-fly; fixes #76625.
5368
5369         * class-internals.h
5370         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5371         don't need that anymore.
5372
5373 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5374
5375         * socket-io.c
5376         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5377         To avoid initing the nested_classes when not needed I turned the
5378         PeerCredData as a toplevel internal class, as it has to be shared
5379         anyways. 
5380
5381         Fixes the CASA issue.
5382
5383 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5384
5385         * domain.c: Accessors for MonoJitInfo
5386
5387         * profiler-private.h: Add jitinfo to the end jit hook
5388
5389         * profiler.[ch]: Define new hooks, called after jitting which give
5390         the MonoJitInfo that was compiled
5391
5392 2006-01-10  Martin Baulig  <martin@ximian.com>
5393
5394         * class.c (mono_class_setup_events): Add support for generic
5395         classes; fixes #76440.
5396
5397 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5398
5399         Fix #77160.
5400         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5401         on passed-in method.
5402
5403 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5404
5405         * object.c (mono_runtime_invoke_array): Add Nullable support.
5406
5407         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5408
5409 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5410
5411         * file-io.c: Don't consider sockets as directory and avoid an endless
5412         loop. Fix bug #76966.
5413
5414 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5415
5416         * object.c (mono_nullable_init): New helper function.
5417         (mono_nullable_box): Ditto.
5418
5419         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5420
5421         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5422
5423         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5424         
5425 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5426
5427         * class.c (mono_class_is_assignable_from): Make T assignable to 
5428         Nullable<T>.
5429
5430 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5431
5432         * appdomain.c: Bump corlib version to 46.
5433         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5434         serialization purpose) and changed ves_icall_System_Reflection_
5435         Assembly_get_code_base signature to accept a boolean (to escape, or 
5436         not, the assembly code base).
5437
5438 2005-12-23  Dick Porter  <dick@ximian.com>
5439
5440         * icall.c: 
5441         * threads-types.h: 
5442         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5443         CreateEvent icall now returns "created" boolean parameter.
5444
5445 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5446
5447         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5448         #76967.
5449
5450         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5451         when attr_klass is an interface. Fixes #77045.
5452
5453 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5454
5455         * marshal.c (emit_struct_conv): Fix previous patch.
5456         
5457         * marshal.c (emit_struct_conv): Add a check for fields with the same
5458         offset.
5459
5460 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5461
5462         Fix regression in Mono.C5.
5463         * class.c (mono_class_create_generic): If 'klass' is an interface
5464         set up the interface offsets.
5465         (mono_class_is_assignable_from): Don't throw away generic arguments.
5466
5467 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5468
5469         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5470         type parameters.
5471
5472 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5473
5474         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5475         dead store.
5476         (do_mono_metadata_parse_generic_class): Don't pass the current
5477         generic context when parsing the type being instantiated: it
5478         cannot use it, anyway.
5479
5480         * loader.c (method_from_memberref): Don't inflate a signature if
5481         it doesn't contain any type parameters.
5482
5483 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5484
5485         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5486
5487 2005-12-14  Martin Baulig  <martin@ximian.com>
5488
5489         * class.c
5490         (mono_type_get_name_recurse): Don't return null for type
5491         parameters and open generic classes.
5492         (mono_class_setup_methods): Don't exclude generic instances.
5493         (mono_get_unique_iid): Use different IDs for different
5494         instantiations of the same generic type.
5495         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5496         open generic instances; create a normal vtable for closed generic
5497         instances.
5498         (mono_class_setup_vtable_general): We're now also called for
5499         closed generic instances.
5500
5501         * reflection.c
5502         (mono_reflection_bind_generic_parameters): Correctly use
5503         mono_metadata_lookup_generic_inst() everywhere.
5504
5505 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5506
5507         * object.c (mono_class_create_runtime_vtable): Call 
5508         mono_class_setup_vtable ().
5509
5510         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5511         function.
5512         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5513         #76959.
5514
5515         * loader.c (mono_loader_set_error_type_load): Print the type load
5516         warnings to the console so they are more visible to the user.
5517         (mono_loader_set_error_method_load): Ditto.
5518
5519         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5520         is still broken.
5521         
5522         * reflection.c (ensure_runtime_vtable): Fix build.
5523
5524         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5525         doesn't work in all cases.
5526
5527 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5528
5529         * object.c (mono_array_new_full): Treat a single dimensional array
5530         with 0 lower bounds as an szarray. Fixes #76973.
5531
5532         * reflection.c (custom_attr_visible): Really fix this.
5533
5534 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5535
5536         * reflection.c (custom_attr_visible): Allow nested public attributes
5537         as well.
5538
5539         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5540         interface check.
5541
5542 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5543
5544         * class.c (set_generic_param_owner): Delete.
5545         (mono_class_create_from_typedef): Don't set ->owner field of
5546         generic parameters to "param containers" of enclosing classes.
5547         * reflection.c (mono_reflection_initialize_generic_parameter):
5548         Likewise.
5549
5550 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5551
5552         * reflection.c (custom_attr_visible): Fix build.
5553
5554 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5555
5556         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5557         private attributes.
5558         
5559         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5560         handling of null parameter defaults.
5561
5562 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5563
5564         * class.c (mono_class_from_generic_parameter): Don't set
5565         klass->generic_container.
5566         (my_mono_class_from_generic_parameter): Likewise.
5567
5568 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5569
5570         * reflection.c (load_public_key): Fix a warning.
5571         (method_encode_code): Fix unaligned accesses.
5572
5573 2005-12-07  Martin Baulig  <martin@ximian.com>
5574
5575         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5576
5577         * reflection.c
5578         (write_generic_param_entry): Encode our custom attrs.
5579
5580         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5581
5582 2005-12-07  Martin Baulig  <martin@ximian.com>
5583
5584         * reflection.c (encode_new_constraint): Removed; we don't use the
5585         `NewConstraintAttribute' anymore.
5586
5587 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5588
5589         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5590         not fire a TypeResolve event when Assembly.GetType () is called.
5591
5592 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5593
5594         Beginning of support for nullable types in the runtime. Parts of
5595         this patch are from Martin.
5596
5597         * appdomain.c (MONO_CORLIB_VERSION): Bump
5598
5599         * domain.c (mono_init_internal): get the nullable type
5600
5601         * class.c (mono_class_is_nullable): New method
5602         (mono_class_get_nullable_param): New mehod
5603         (mono_class_create_generic): In types T? set cast_class to T
5604
5605         * class-internals.h (MonoDefaults): new nullable default class
5606         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5607         new methods.
5608
5609 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5610
5611         * metadata.c (select_container): New.  Refactor code to select the
5612         appropriate GenericContainer given the type of generic parameter
5613         we are looking for.
5614         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5615         not a MonoGenericContext.  Use select_container.  Update parameters.
5616         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5617         and MONO_TYPE_MVAR.
5618         (unwrap_arrays): Remove duplicate tests.
5619         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5620         generic instantiated class to find any arguments that are generic
5621         parameters.
5622         (mono_type_create_from_typespec_full): Use find_generic_param to
5623         avoid evicting some generic instantiations from the typespec
5624         cache.
5625
5626 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5627
5628         * reflection.c: fixed writing of doubles on ARM FPA.
5629
5630 2005-12-02  Robert Jordan  <robertj@gmx.net>
5631
5632         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5633
5634 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5635
5636         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5637         least on SUSE 10 they are not the same (on debian, they are just the
5638         same thing).
5639
5640 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5641
5642         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5643         DeclaringType for VARs and MVARs.
5644         * class.c (set_generic_param_owner): Fix initialization of owner
5645         fields.
5646
5647 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5648
5649         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5650
5651 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5652
5653         * threadpool.c: workaround for a bug that shows up on the Mac:
5654         select()+connect() on a blocking socket is not like it should
5655         be, so we proceed to connect() in that case, wasting the I/O
5656         threadpool thread until connect succeedes. Fixes bug #75436.
5657
5658 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5659
5660         * threadpool.c: fix typo when setting file descriptor states.
5661
5662 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5663
5664         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5665         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5666         create a temporary signature container.
5667         (mono_metadata_parse_generic_param): Update to changes.
5668         (mono_type_create_from_typespec_full): Update to changes.
5669         * loader.c (method_from_memberref): Don't use a
5670         MonoGenericContainer while parsing a memberref signature.
5671         (method_from_methodspec): Remove dead-store of the 'container'
5672         variable.  It's overwritten before use.
5673
5674         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5675         checks tighter.
5676         (mono_metadata_parse_generic_param): Likewise.
5677         * loader.c (find_method_in_class): Does not need a
5678         MonoGenericContainer.  Use 'mono_method_signature' rather than
5679         'mono_method_signature_full'.
5680         (find_method, mono_get_method_constrained, method_from_memberref):
5681         Update to changes.
5682
5683         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5684         owner-less generic-parameters are never evicted from the typespec
5685         cache.
5686
5687         * loader.c (method_from_memberref): Don't use the current context
5688         when parsing signatures.
5689         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5690
5691         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5692         side-effects in g_assert.
5693         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5694         that we don't potentially lose information.
5695
5696 2005-11-26  Dick Porter  <dick@ximian.com>
5697
5698         * icall.c:
5699         * threads.c: icalls to implement basic (ie, not named)
5700         System.Threading.Semaphore.
5701
5702 2005-11-24  Dick Porter  <dick@ximian.com>
5703
5704         * process.c
5705         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5706         Use GetProcessId() if it's available.
5707
5708 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5709
5710         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5711
5712 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5713             Ankit Jain  <jankit@novell.com>
5714
5715         * loader.c (mono_get_method_from_token): Initialize 'method' field
5716         of all generic parameters before parsing the signature.  Remove
5717         code that "fixed"-up MVAR references.
5718
5719 2005-11-23  Ankit Jain  <jankit@novell.com>
5720
5721         * metadata.c (mono_metadata_has_generic_params):
5722         (mono_metadata_load_generic_param_constraints):
5723         (mono_metadata_load_generic_params): Move duplicate code ...
5724         (mono_metadata_get_generic_param_row): ... here. Returns the
5725         first row-id in GenericParam table for a given owner (token).
5726         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5727         prototype.
5728
5729 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5730             Ankit Jain  <jankit@novell.com>
5731
5732         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5733         comparing VARs too.
5734         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5735         type->data.generic_param only if the type is an MVAR.
5736         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5737         leak owner-less VARs and MVARs into managed space.
5738
5739 2005-11-21  Martin Baulig  <martin@ximian.com>
5740
5741         * class-internals.h
5742         (MonoMethod): Moved the `generic_container' here from
5743         `MonoMethodNormal' since we now also need it for
5744         `MonoMethodPInvoke';
5745         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5746         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5747         an union containing both `MonoMethodNormal' and
5748         `MonoMethodPInvoke'.
5749
5750         * loader.c
5751         (mono_get_method_from_token): Allow implementing generic methods
5752         as interncalls.
5753
5754         * threads.c
5755         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5756         icall.
5757
5758 2005-11-17  Dick Porter  <dick@ximian.com>
5759
5760         * icall.c: 
5761         * process.h: 
5762         * process.c: Split the Process Start_internal icall into
5763         ShellExecuteEx_internal and CreateProcess_internal, which are
5764         called depending on whether UseShellExecute is true.  Fixes bug
5765         76670.
5766
5767         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5768
5769 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5770
5771         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5772         'msize' parameters, use the information in 'mspec' instead.
5773         (emit_object_to_ptr_conv): Ditto.
5774
5775         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5776         fields out of order. Fixes #76733.
5777
5778 2005-11-17  Ankit Jain  <jankit@novell.com>
5779
5780         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5781
5782 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5783
5784         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5785           bug #76575.
5786
5787 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5788
5789         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5790         for types with non-auto layout. Fixes #76717.
5791
5792 2005-11-16  Ankit Jain  <jankit@novell.com>
5793
5794         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5795         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5796         if generic_context is null.
5797           (mono_metadata_generic_param_equal): param->owner can be null.
5798           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5799         null.
5800
5801 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5802
5803         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5804         the correct value.
5805
5806 2005-11-15  Martin Baulig  <martin@ximian.com>
5807
5808         * object.c (set_value): Use mono_class_from_mono_type() instead of
5809         the hack for generic instances; fixes #76136.
5810
5811 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5812
5813         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5814         fields.
5815
5816         * image.c (load_metadata_ptrs): Initialize the new fields.
5817
5818         * reflection.c (create_dynamic_mono_image): Ditto.
5819
5820         * reflection.c (build_compressed_metadata): Use the new fields.
5821
5822         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5823         icall.
5824
5825         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5826         icall.
5827         
5828 2005-11-15  Ankit Jain  <jankit@novell.com>
5829             Raja R Harinath  <harinath@gmail.com>
5830
5831         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5832         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5833         new per-generic_container cache if the cached MonoType's context matches
5834         the current context.
5835           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5836         to the expected context.
5837           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5838
5839 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5840
5841         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5842         we changed the signature of an icall.
5843         * icall.c: Modify to mono_double_ParseImpl return true/false 
5844         depending on the success, instead of throwing the exception. This will
5845         help us in Double.TryParse methods.
5846         
5847 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5848
5849         * marshal.c (emit_marshal_object): Throw an exception when
5850         marshalling 'object' instead of crashing. Fixes #76696.
5851
5852 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5853
5854         * class-internals.h: Add prototype for mono_type_get_full_name ().
5855
5856 2005-11-11  Dick Porter  <dick@ximian.com>
5857
5858         * threads.c (mono_thread_manage): Make sure the main thread has
5859         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5860
5861 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5862
5863         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5864         console about the missing type.
5865         (mono_loader_set_error_method_load): Ditto.
5866
5867 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5868
5869         * mono-config.c (mono_get_config_dir): Set the system defaults if
5870         none is specified.
5871
5872         * assembly.c (mono_set_dirs): New API entry point to set the
5873         assembly and the config directory in one call
5874
5875 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5876
5877         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5878         the ftnptr was created from a delegate in a domain other than the
5879         current domain. Fixes #75377.
5880
5881         * exception.h exception.c: Add mono_get_exception_not_supported ().
5882
5883 2005-11-08  Martin Baulig  <martin@ximian.com>
5884
5885         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5886
5887 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5888
5889         * security-manager.h: Added definitions to deal with strongname key 
5890         pairs bigger (and smaller) than 1024 bits.
5891         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5892         adjust wrt the public key length being used.
5893
5894 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5895
5896         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5897           Windows build (r51396-51397).
5898
5899 2005-11-03  Martin Baulig  <martin@ximian.com>
5900
5901         * class.c (mono_class_setup_vtable_general): Also add generic
5902         methods to the vtable; fixes #76581.
5903
5904 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5905
5906         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5907         sure that we lookup GetString method from the System.Text.Encoding
5908         class, not the derived class or we get an empty method.
5909
5910         Fixed class #76612.
5911
5912 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5913
5914         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5915         if it has been previously set (embedders). 
5916
5917         Make mono_set_rootdir available also on Unix.
5918
5919 005-10-24  Robert Jordan  <robertj@gmx.net>
5920
5921         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5922
5923 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5924
5925         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5926         only calls which are made to native code use this flag.
5927
5928         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5929
5930 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5931
5932         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5933         Add support for FieldBuilders.
5934
5935 2005-10-29  Martin Baulig  <martin@ximian.com>
5936
5937         * mono-debug.c
5938         (mono_debug_using_mono_debugger): New public method; returns
5939         whether we're running inside the debugger.
5940
5941 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5942
5943         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5944         for Method/Constructor/FieldBuilders.
5945
5946 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5947
5948         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5949         and fields as well.
5950
5951 2005-10-26  Martin Baulig  <martin@ximian.com>
5952
5953         * mono-debug-debugger.c
5954         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5955
5956 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5957
5958         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5959         integer to isspace.
5960
5961 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5962
5963         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5964         when passing valuetypes byref. Fixes #76502.
5965
5966 2005-10-19  Jackson Harper  <jackson@ximian.com>
5967
5968         * profiler.c: Don't put a . in front of types that are not in a
5969         namespace.
5970
5971 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5972
5973         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5974
5975 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5976
5977         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5978         #76436.
5979         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5980
5981 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5982
5983         * assembly.c metadata-internals.h icall.c: Define an additional
5984         parameter for mono_assembly_name_parse_full, so we can avoid creating
5985         S.R.AssemblyName.Version when no version info wasn't passed.
5986         
5987 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5988
5989         * class.c (mono_type_get_full_name): Reimplement method that was
5990         removed. 
5991
5992         * image.c: Some docs
5993
5994 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5995
5996         * profiler.c (output_newobj_profile): Fix printing of Total memory
5997         on x86.
5998
5999 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6000
6001         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6002
6003 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6004
6005         * threads.c: remove debug output.
6006
6007 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6008
6009         * threads.c (mono_thread_manage): Fix crashes if more than 64
6010         threads need to be aborted. Hopefully fixes #75899.
6011
6012         * assembly.c (mono_stringify_assembly_name): New helper function.
6013
6014         * class.c: Use mono_stringify_assembly_name instead of the similar
6015         static function.
6016
6017         * assembly.h assembly.c: Add support for calling a postload search 
6018         hook if an assembly cannot be loaded.
6019
6020         * appdomain.c: Register new search hooks which call the AssemblyResolve
6021         events in AppDomain. Fixes #75231
6022
6023 2005-10-07  Martin Baulig  <martin@ximian.com>
6024
6025         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6026         methods without debug info.
6027
6028 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6029
6030         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6031         wrappers.
6032
6033 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6034
6035         * file-io.c: now that we return symlinks, use lstat and, when the file
6036         is a symbolic link, stat, to get the file attributes. Also avoid the
6037         conversion to/from utf16/external.
6038
6039 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6040
6041         * class.c (mono_class_layout_fields): Compute klass->has_references
6042         correctly if an embedded valuetype is not yet initialized. Fixes
6043         #76331.
6044
6045 2005-10-04  Martin Baulig  <martin@ximian.com>
6046
6047         * metadata.c
6048         (mono_metadata_load_generic_param_constraints): New public
6049         function; splitted the constraints loading out from
6050         mono_metadata_load_generic_params().
6051
6052         * class.c (mono_class_create_from_typedef): Call
6053         mono_metadata_load_generic_param_constraints() after setting up
6054         the type and creating our parent; fixes #75329.
6055
6056 2005-10-04  Martin Baulig  <martin@ximian.com>
6057
6058         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6059         non-dynamic parent classes.
6060
6061 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6062
6063         * file-io.c : win32 build fix (ETXTBSY seems not found).
6064
6065 2005-10-04  Martin Baulig  <martin@ximian.com>
6066
6067         * reflection.c
6068         (mono_image_get_methodspec_token): Make the cache actually work;
6069         fixes #75974.
6070
6071 2005-10-04  Martin Baulig  <martin@ximian.com>
6072
6073         * class.c (mono_class_name_from_token): Removed the unneccessary
6074         `MonoGenericContext *' argument.
6075
6076 2005-10-04  Martin Baulig  <martin@ximian.com>
6077
6078         * loader.c
6079         (method_from_methodspec): Make the caching work again; fixes the
6080         performance regression from #76262.
6081
6082 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6083
6084         * file-io.c:
6085         * file-io.h:
6086         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6087         GetFileSystemEntries that performs the same work but without going
6088         into io-layer, locking, etc.
6089
6090 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6091
6092         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6093         ThreadState_Stopped as well. Fixes #76047.
6094
6095 2005-09-29  Martin Baulig  <martin@ximian.com>
6096
6097         * class.c
6098         (inflate_generic_context): If the new context has a `gmethod', set
6099         its `container' that that gmethod's `container'.
6100
6101         * metadata.c
6102         (mono_metadata_parse_generic_param): Simplify things;
6103         `generic_container = generic_context->container;' is just fine.
6104
6105         * loader.c (method_from_methodspec): Code cleanups.
6106
6107 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6108
6109         * decimal.c: fix warning (and let gcc generate correct
6110         code on ARM with optimizations).
6111
6112 2005-09-28  Martin Baulig  <martin@ximian.com>
6113
6114         * loader.c
6115         (method_from_memberref): Added `MonoGenericContext *class_context'
6116         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6117         (method_from_methodspec): If we're a memberref, use the enclosing
6118         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6119
6120 2005-09-28  Martin Baulig  <martin@ximian.com>
6121
6122         * object.c (mono_runtime_invoke_array): Added support for
6123         MONO_TYPE_GENERICINST; fixes #75917.
6124
6125 2005-09-27  Martin Baulig  <martin@ximian.com>
6126
6127         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6128         `k->byval_arg.type' to determine the actual type.
6129
6130         * loader.c (method_from_methodspec): Removed some hacks.
6131
6132 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6133
6134         * class-internals.h (mono_field_is_deleted): Do the test for
6135         rtspecialname before we check the actual name of the field. This
6136         prevents us from dereferencing a pointer into the string table,
6137         saving us from accessing a few pages
6138
6139         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6140         macros. This will allow a deadlock debugger to easily be plugged
6141         in.
6142
6143 2005-09-27  Martin Baulig  <martin@ximian.com>
6144
6145         * loader.c (method_from_methodspec): Create a "signature"
6146         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6147
6148 2005-09-27  Martin Baulig  <martin@ximian.com>
6149
6150         * class.c
6151         (inflate_generic_class): Correctly set the new context's
6152         container.
6153
6154         * loader.c
6155         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6156         instead of a `MonoGenericContext *'.
6157         (mono_method_signature_full): Take a `MonoGenericContainer *'
6158         instead of a `MonoGenericContext *'.
6159
6160         * metadata.c
6161         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6162         instead of a `MonoGenericContext *'.
6163         (mono_metadata_parse_method_signature_full): Likewise.
6164
6165 2005-09-26  Martin Baulig  <martin@ximian.com>
6166
6167         * class.c
6168         (mono_class_from_generic_parameter): Set `klass->generic_container'
6169         (mono_class_from_generic_parameter): Likewise.
6170         (mono_bounded_array_class_get): We inherit the generic container
6171         from the element class.
6172
6173         * loader.c
6174         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6175         argument rather than computing it here.
6176         (method_from_memberref): Correctly set the generic context before
6177         parsing the signature.  Fixes #75681.
6178
6179 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6180
6181         * object.c (mono_class_has_special_static_fields): Fix warnings.
6182
6183 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6184
6185         * assembly.c: Add parse_public_key function, to
6186         par the public keys. Also added mono_assembly_name_parse_full,
6187         to define it the parsed key should be freed or not.
6188         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6189         to parse a long format assembly name.
6190         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6191         private, since calling it to preserve the key requires
6192         freeing it manually.
6193         
6194 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6195
6196         * locales.c : removed HAVE_ICU part.
6197
6198 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6199
6200         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6201         field_is_special_static if the klass has no special static fields.
6202
6203         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6204         (MonoCachedClassInfo): Likewise.
6205
6206         * object.c (mono_class_has_special_static_fields): New helper function.
6207
6208 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6209
6210         * class.c (mono_class_create_from_typedef): Don't call 
6211         interfaces_from_typedef_full for enums.
6212         (mono_class_create_from_typedef): Compute the base types of enums directly
6213         without calling mono_class_setup_fields ().
6214         (mono_class_find_enum_basetype): New helper function.
6215
6216         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6217         one place inside the string heap.
6218         
6219 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6220
6221         * class.c: locking fixes, code cleanups, some docs added.
6222         Allocate some data structures in the image mempool.
6223
6224 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6225
6226         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6227         the example code.
6228         
6229 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6230
6231         * class-internals.h, class.c, reflection.c: reduce memory taken by
6232         MonoClass.
6233
6234 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6235
6236         * metadata.c, metadata.h, loader.h: documentation updates, code and
6237         API cleanups.
6238
6239 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6240
6241         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6242         the example code.
6243
6244         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6245         page faults caused by the runtime while reading metadata.
6246
6247 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6248
6249         * socket-io.c: the field names were changed 3 months ago and no one
6250         realized until bug #76077 got filed!
6251
6252 2005-09-20  Martin Baulig  <martin@ximian.com>
6253
6254         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6255
6256 2005-09-20  Martin Baulig  <martin@ximian.com>
6257
6258         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6259         write the rank into the class entry.
6260
6261 2005-09-20  Martin Baulig  <martin@ximian.com>
6262
6263         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6264
6265 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6266
6267         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6268
6269         * icall.c (custom_attrs_defined_internal): New icall.
6270
6271         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6272         function.
6273         (mono_custom_attrs_construct_by_type): New helper function.
6274
6275 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6276
6277         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6278         terminate the resulting string. Fixes #76123.
6279
6280 2005-09-16  Martin Baulig  <martin@ximian.com>
6281
6282         * mono-debug.c
6283         (mono_debug_add_method): Ignore inflated methods for the moment.
6284
6285 2005-09-14  Martin Baulig  <martin@ximian.com>
6286
6287         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6288
6289 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6290
6291         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6292         return a success/failure indication.
6293         (mono_metadata_interfaces_from_typedef_full): Ditto.
6294         (get_constraints): Ditto.
6295
6296 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6297
6298         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6299         
6300         * marshal.c (emit_marshal_array): Add support for returning string
6301         arrays from delegates. Fixes #76063.
6302
6303         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6304
6305 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6306
6307         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6308         icall.
6309
6310 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6311
6312         * reflection.c icall.c: Fix after mono_get_exception_type_load
6313         signature change.
6314
6315         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6316         (mono_assembly_load_reference): Use the new helper.
6317
6318         * class-internals.h (MonoLoaderError): New structure containing 
6319         information about type loading errors.
6320
6321         * class-internals.h loader.c: Add APIs to store per-thread loader
6322         error information.
6323
6324         * loader.c class.c: Set the loader error if needed.
6325
6326         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6327
6328 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6329
6330         * decimal.c: fixed to handle the broken ARM fp format.
6331
6332 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6333
6334         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6335         broken.
6336
6337 2005-09-06  Martin Baulig  <martin@ximian.com>
6338
6339         * domain.c (supported_runtimes): Added v2.0.50727.
6340
6341 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6342
6343         * culture-info.h: reduce the size of some structures.
6344
6345 2005-09-05  Martin Baulig  <martin@ximian.com>
6346
6347         Reflect latest API changes in the August CTP.
6348
6349         * icall.c
6350         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6351         ("MonoType.HasGenericArguments"): Removed.
6352         ("MonoMethod.BindGenericParameters"): Renamed to
6353         "MakeGenericMethod".
6354         ("MethodBuilder.BindGenericParameters"): Renamed to
6355         "MakeGenericMethod".    
6356
6357 2005-09-05  Martin Baulig  <martin@ximian.com>
6358
6359         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6360
6361 2005-09-05  Martin Baulig  <martin@ximian.com>
6362
6363         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6364
6365         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6366         generic_container is non-NULL.
6367
6368 2005-09-05  Martin Baulig  <martin@ximian.com>
6369
6370         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6371
6372         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6373
6374 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6375
6376         * reflection.c (encode_locals,
6377         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6378         for large generic types.
6379
6380 2005-09-05  Martin Baulig  <martin@ximian.com>
6381
6382         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6383
6384         * class.c (mono_dup_array_type): New public method.
6385         (mono_metadata_signature_deep_dup): New public method.
6386         (dup_type): Correctly duplicate array and function types.
6387
6388 2005-09-05  Martin Baulig  <martin@ximian.com>
6389
6390         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6391
6392         * reflection.c (get_default_param_value_blobs): Handle generic types
6393         and generic methods.
6394
6395 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6396
6397         * class.c: Fixed error reporting (method/class were inversed) for 
6398         inheritance demands.
6399         * security-manager.c|h: Added the AppDomain when calling the managed
6400         System.Security.SecurityManager.InheritanceDemand method.
6401
6402 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6403
6404         * reflection.c (encode_marshal_blob): 'marshaltype' and
6405         'marshaltyperef' are alternate sources for the custom marshaler
6406         name.
6407
6408 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6409
6410         * class.c: fix creation of array classes with rank == 1
6411         (patch by Ankit Jain <jankit@novell.com>).
6412
6413 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6414
6415         * object.c: fix check for creating the bound data for arrays vs
6416         szarrays.
6417
6418 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6419
6420         * object.c: configuration file name is now based on the executable name,
6421         not the image name. Fixes bug #75931.
6422
6423 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6424
6425         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6426         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6427
6428 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6429
6430         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6431
6432 2005-08-24  Ankit Jain  <jankit@novell.com>
6433             Raja R Harinath  <rharinath@novell.com>
6434
6435         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6436           called by it recursively.
6437           (mono_class_init): Remove special case in pending_init handling, since it's
6438           superseded by the fix to mono_class_from_typeref.
6439
6440 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6441
6442         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6443         BROKEN_THREAD_START stuff.
6444
6445 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6446
6447         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6448         trampoline.
6449
6450         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6451         
6452         * object.c (mono_delegate_ctor): Replace the original function address with
6453         a delegate trampoline.
6454
6455 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6456
6457         * icall.c: add boolean argument to base64_to_byte_array and 
6458         InternalFromBase64String to control whether a whitespace-only string
6459         is allowed (or should casue a FormatException to be thrown). We need
6460         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6461         to match the MS behaviour in both profiles.
6462         * appdomain.c: Bump corlib version.
6463
6464 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6465
6466         This patch implements a big portion of publisher policy
6467         support, used to bind assembly versions and redirect
6468         one assembly from version A to version B.
6469
6470         * assembly.c:
6471         New GSList loaded_assembly_bindings, for storing the cached
6472         assembly bindings.
6473         (assembly_binding_maps_name): New static function for checking if a 
6474         assembly binding information maps an assembly name.
6475         (mono_assembly_binding_info_free): New function for freeing
6476         assembly binding information resources.
6477         (get_publisher_policy_info): New static function for retrieving 
6478         assembly binding information from a MonoImage.
6479         (compare_versions): New static function for comparing an assembly
6480         binding information data and the version of an assembly name.
6481         (check_policy_versions): New static function for checking if an
6482         assembly binding info mapping an assembly name is valid for it.
6483         (mono_assembly_load_publisher_policy): New static function for
6484         loading the 'policy.major.minor.MyAssembly' image for an assembly
6485         with an assembly name 'aname'.
6486         (mono_assembly_bind_version): New static function for updating
6487         assembly redirection.
6488         (mono_assembly_apply_binding): New static function for applying
6489         assembly binding.
6490         (search_binding_loaded): New static function for searching 
6491         loaded assembly binding infos in the cache domain.
6492         (mono_assembly_load_full): Don't apply assembly binding for
6493         reflection only assemblies.
6494
6495         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6496         which contains information about assembly binding. Also
6497         declare signature for mono_config_parse_publisher_policy ()
6498         function, used to retrieve pub policy info.
6499         
6500         * mono-config.c:
6501         (publisher_policy_start): New static function used to parse publisher 
6502         policy config files.
6503         (publisher_policy_parser): New static MonoParseHandler containing 
6504         the functions used when parsing config files.
6505         (mono_config_parse_publisher_policy): New function for parsing
6506         publisher policy files.
6507         
6508 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6509
6510         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6511
6512         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6513
6514         * object.c (mono_get_addr_from_ftnptr): New helper function.
6515
6516         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6517
6518         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6519
6520 2005-08-19  Dick Porter  <dick@ximian.com>
6521
6522         * threads.c, threads.h, appdomain.c, appdomain.h,
6523         profiler-private.h, monitor.c, object.c, object-internals.h,
6524         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6525         store the thread ID, so it can hold a 64 bit value if needed.
6526
6527 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6528
6529         * reflection.c (mono_reflection_create_dynamic_method): Store the
6530         handle class into the method references as well so ldtoken works in
6531         dynamic methods.
6532
6533         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6534         types.
6535
6536 2005-08-19  Ankit Jain <jankit@novell.com>
6537
6538         Fix #75847.
6539         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6540           here rather than using the method signature of a arbitrary function
6541           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6542           two arguments.
6543           Hack done with Harinath.
6544
6545 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6546
6547         * threadpool.c: disable printing stack traces when we get a exception
6548         in a threadpool thread. I need to do more testing to figure out which
6549         cases actually print this. Fixes bug #75828.
6550
6551 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6552
6553         * icall.c: there might be ignored whitespace after the last '='. This
6554         fixes length computation and bug #75840.
6555
6556 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6557
6558         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6559         well. Fixes #75809.
6560
6561         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6562         #75784.
6563         
6564         * reflection.c (create_custom_attr_data): Ditto.
6565
6566 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6567
6568         * locales.c, culture-info.h : removed RegionLCIDMap.
6569         * culture-info-tables.h : regenerated.
6570
6571 2005-08-16  Martin Baulig  <martin@ximian.com>
6572
6573         * class.c (mono_type_get_name_recurse): Small fix.
6574
6575 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6576
6577         * locales.c : indentation fixie.
6578
6579 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6580
6581         * object-internals.h,
6582           locales.h,
6583           locales.c,
6584           culture-info.h,
6585           icall.c : added RegionInfo table support.
6586         * culture-info-table.h : regenerated for region support.
6587
6588 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6589
6590         * reflection.c (resolve_object): handle all kinds of MonoMethod
6591         including generic ones
6592
6593 2005-08-12  Ankit Jain <jankit@novell.com>
6594
6595         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6596           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6597
6598 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6599
6600         * process.c: Don't close a thread handle when it's NULL. This is a
6601         workaround for bug #75733.
6602
6603 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6604
6605         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6606
6607 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6608
6609         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6610
6611 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6612
6613         * threadpool.c: if a work item in the thread pool has a callback that
6614         catches a exception, don't propagate it after invoking the callback.
6615         Fixes bug #75336.
6616
6617 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6618
6619         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6620
6621         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6622
6623         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6624
6625         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6626
6627 2005-08-03  Ankit Jain  <jankit@novell.com>
6628
6629         Fix #75683.
6630         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6631           PInvoke calling convention is 0.
6632
6633 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6634
6635         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6636         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6637
6638 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6639
6640         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6641         to handle threads not started by the GC (patch by Michael Meeks
6642         <michael.meeks@novell.com>).
6643
6644 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6645
6646         * reflection.c: Make buffer used in emitting types larger for some
6647         big generic types (patch by Michal Moskal).
6648
6649 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6650
6651         * mono-debug.c: Fix some (not all) alignment problems.
6652
6653 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6654
6655         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6656         Invoke mono_image_load_from_data_full passing the refonly
6657         parameter.
6658
6659         * assembly.c
6660         (mono_assembly_open_from_bundle): Add the refonly argument, 
6661         in order to pass it to other methods it calls to.
6662         (do_mono_assembly_open): Add the refonly argument, in order 
6663         to pass it to other methods it calls to.
6664         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6665         the refonly parameter to it.
6666
6667         * image.c: Add loaded_images_refonly_hash and
6668         loaded_images_refonly_guid_hash to cache the reflection
6669         only loaded images.
6670         (mono_images_init): Initialize the hash tables used for
6671         caching the reflection only images.
6672         (load_modules): Invoke mono_image_open_full passing the refonly
6673         parameter to load the modules the correct way.
6674         (build_guid_table): Add the refonly argument, to re-build the 
6675         correct hash table.
6676         (do_mono_image_open): Added the refonly argument, in order to
6677         define it for the loaded image.
6678         (mono_image_loaded_full): New function, which receives an
6679         additional parameter to look for the image in the refonly or
6680         non-refonly section.
6681         (mono_image_loaded): Updated, using mono_image_loaded_full.
6682         (mono_image_loaded_by_guid_full): The same case that happens
6683         with mono_image_loaded_full.
6684         (mono_image_loaded_by_guid): Likewise.
6685         (register_image): Use the ref_only variable inside MonoImage
6686         to decide in which hash table store the current image.
6687         (mono_image_open_from_data_full): Rename
6688         mono_image_open_from_data to mono_image_open_from_data_full,
6689         adding the refonly argument, to define the ref_only variable 
6690         inside MonoImage.
6691         (mono_image_open_from_data): Return 
6692         mono_image_open_from_data_full.
6693         (mono_image_open_full): Rename mono_image_open to
6694         mono_image_open_full, receiving the new refonly argument,
6695         to pass it to inner methods.
6696         (mono_pe_file_open): Update this function, to open
6697         a MonoImage as a non-refonly image.
6698         (mono_image_close): Use the refonly variable inside
6699         MonoImage to remove the image from the correct caches.
6700
6701         * image.h: Add the signatures of mono_image_open_full,
6702         mono_image_open_from_data_full, mono_image_loaded_full,
6703         mono_image_loaded_by_guid_full.
6704
6705         * metadata-internals.h: Add the ref_only field to 
6706         MonoImage.
6707         
6708 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6709
6710         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6711         Fix the last behavior, which used to load the assemblies and
6712         extract MonoReflectionAssemblyName information, instead of
6713         extract it from the metadata tables. Needed for Reflection
6714         Only assemblies.
6715         
6716 2005-07-29  Martin Baulig  <martin@ximian.com>
6717
6718         * mono-debug-debugger.c
6719         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6720         not initialized.
6721
6722         * mono-debug.c
6723         (mono_debug_address_from_il_offset): Check whether we have
6724         debugging support before attempting to take the lock.
6725         (mono_debug_source_location_from_address): Likewise.
6726         (mono_debug_source_location_from_il_offset): Likewise.
6727         (mono_debug_il_offset_from_address): Likewise.
6728         (mono_debug_address_from_il_offset): Likewise.
6729
6730 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6731
6732         * class.c (mono_class_from_name_case): Add support for dynamic images.
6733         Fixes #75650.
6734
6735         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6736         for #75479.
6737
6738 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6739         
6740         * reflection.c (mono_method_get_object): Fix warning.
6741
6742 2005-07-28  Martin Baulig  <martin@ximian.com>
6743
6744         * mono-debug.c
6745         (mono_debug_add_wrapper): Also write the wrapper type.
6746
6747 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6748
6749         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6750         
6751         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6752         data indicates the class has none.
6753
6754 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6755
6756         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6757         loader lock with the debugger lock. Prevents deadlocks for beagle.
6758
6759         Beagle can now run on an smp box for a weekend without any
6760         issues. Woohoo!
6761
6762 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6763
6764         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6765         in a module. Fixes #75629.
6766
6767 2005-07-26  Martin Baulig  <martin@ximian.com>
6768
6769         * mono-debug.c (mono_debug_add_wrapper): New static method.
6770         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6771         interncall or a wrapper.
6772
6773         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6774         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6775         (MONO_DEBUGGER_VERSION): Bump to 51.
6776
6777         * mono-debug-debugger.c
6778         (mono_debugger_add_type): Removed this empty function.
6779         (mono_debugger_add_method): Likewise.
6780
6781 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6782
6783         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6784         before accessing method->slot.
6785
6786 2005-07-21  Jb Evain  <jbevain@gmail.com>
6787
6788         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6789         Fixes #75010.
6790
6791 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6792
6793         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6794         #75587.
6795
6796 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6797
6798         * image.h image.c: Add mono_image_get_guid () API function.
6799
6800 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6801
6802         There were issues when multiple threads tried to load
6803         assemblies. A deadlock was created between assemblies_mutex and
6804         mono_domain_assemblies_lock. This fixes the issue by making the
6805         assembly ref counting be lock free. See bug 75586.
6806         
6807         * image.c (mono_image_close): The add ref function here was using
6808         Interlocked operations while the unref was using a mutex and a
6809         --. I don't think this was ever a bug that would be exposed in a
6810         non-pendantic way (ie, by an embedder doing a ref on one thread
6811         and an unref on another), but for the sake of correctness, this is
6812         now Interlocked.
6813
6814         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6815         (mono_assembly_load_reference): Call mono_assembly_addref rather
6816         than touching the refcount ourselves.
6817         (mono_assembly_close): Use InterlockedDecrement to unref the
6818         assembly. Don't acquire the lock unless it is actually needed.
6819
6820 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6821
6822         * class.c (mono_class_layout_fields): Fix calculation of has_references
6823         for generic types.
6824
6825 2005-07-12  Martin Baulig  <martin@ximian.com>
6826
6827         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6828
6829         * metadata.c
6830         (mono_type_hash): Provide better hashing for generic instances.
6831         (mono_generic_inst_hash): Improve hashing.
6832         (mono_generic_class_hash): Likewise.
6833
6834         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6835         generic instances.
6836
6837 2005-07-12  Martin Baulig  <martin@ximian.com>
6838
6839         * reflection.c (mono_reflection_create_runtime_class): Remove the
6840         hack for generic type definitions and non-`Run' assemblies.
6841         (mono_reflection_bind_generic_parameters): Also use
6842         `klass->wastypebuilder' to check for TypeBuilders.
6843
6844 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6845
6846         * class.c (mono_class_layout_fields): Fix calculation of has_references
6847         for generic types.
6848
6849         * class.c (inflate_generic_class): Fix a leak.
6850         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6851         for generic types.
6852
6853 2005-07-11  Martin Baulig  <martin@ximian.com>
6854
6855         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6856         on error.
6857
6858 2005-07-11  Martin Baulig  <martin@ximian.com>
6859
6860         * loader.c (find_method): Also lookup in
6861         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6862
6863 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6864
6865         * appdomain.c (mono_domain_unload): Don't free the error message
6866         before passing it to mono_get_exception_...
6867
6868         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6869         
6870 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6871
6872         * threads.c: try to better guess an available RT signal (bug #75387).
6873
6874 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6875
6876         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6877         and CACHE_OBJECT.
6878
6879 2005-07-07  Martin Baulig  <martin@ximian.com>
6880
6881         * class.c (mono_type_get_name_full): Return NULL for
6882         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6883         fixes #75408.
6884
6885 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6886
6887         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6888         exit the appdomain as well being aborted.
6889
6890         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6891         change back to the root domain after calling managed code. This enables
6892         appdomains using threadpools to be unloaded.
6893
6894 2005-07-07  Martin Baulig  <martin@ximian.com>
6895
6896         * class-internals.h
6897         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6898         into `MonoDynamicGenericClass' since we only need it for dynamic
6899         types.
6900
6901         * reflection.c (mono_class_bind_generic_parameters): We don't need
6902         to compute the `parent' here.
6903
6904 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6905
6906         * culture-info-table.h : regenerated.
6907
6908 2005-07-06  Martin Baulig  <martin@ximian.com>
6909
6910         * icall.c
6911         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6912
6913         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6914
6915 2005-07-06  Martin Baulig  <martin@ximian.com>
6916
6917         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6918         we're doing a signature-only comparision; fixes #74945.
6919
6920 2005-07-06  Martin Baulig  <martin@ximian.com>
6921
6922         * class-internals.h (MonoGenericClass): Moved some things out into
6923         a new `MonoInflatedGenericClass' type.  
6924         (MonoInflatedGenericClass): New type; the `klass' of a
6925         `MonoGenericClass' is now computed lazyly in
6926         mono_get_inflated_generic_class().      
6927
6928         * class.c (mono_get_inflated_generic_class): New public function.
6929         (mono_class_inflate_generic_method): Removed the unused
6930         `MonoClass *' argument.
6931         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6932         all the methods.
6933         (mono_class_create_generic): Make this static and merge it with
6934         mono_class_create_generic_2(); we're now called automatically from
6935         mono_get_inflated_generic_class().
6936
6937         * loader.c (mono_method_signature): Call
6938         mono_get_inflated_method() here.
6939
6940 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6941
6942         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6943         type of fields with RVA.
6944
6945         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6946         for this pseudo class.
6947         (my_mono_class_from_generic_parameter): Likewise.
6948         (mono_class_init): Allow interfaces to have cctors.
6949
6950 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6951
6952         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6953         lazily for AOT methods.
6954
6955 2005-07-05  Martin Baulig  <martin@ximian.com>
6956
6957         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6958         returns FALSE for a successful match, not TRUE.
6959
6960 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6961
6962         * loader.c (mono_method_get_index): Optimize this a bit.
6963
6964 2005-07-04  Martin Baulig  <martin@ximian.com>
6965
6966         * class.c
6967         (class_compute_field_layout): Move the check for generic type
6968         definitions into mono_class_layout_fields().  Fixes #74684.
6969         (mono_class_from_generic_parameter): Correctly compute
6970         `klass->parent'; fixes #75457.
6971
6972         * reflection.c (register_assembly, register_module): Make sure
6973         `domain->rejobject_hash' is already created.
6974
6975 2005-07-02  Martin Baulig  <martin@ximian.com>
6976
6977         * class-internals.h
6978         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6979         `MonoDynamicGenericClass'.      
6980
6981 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6982
6983         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6984         returned by a field getter is null, since null is a valid value.
6985
6986 2005-07-01  Martin Baulig  <martin@ximian.com>
6987
6988         * reflection.c (mono_reflection_generic_class_initialize): Update
6989         the `dgclass->fields [i].parent' to the correct class.
6990         (mono_image_get_fieldref_token): Use the declaring type, not the
6991         reflected type.
6992
6993 2005-07-01  Martin Baulig  <martin@ximian.com>
6994
6995         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6996
6997 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6998
6999         * threads.c (thread_cleanup): assert that thread != NULL
7000         (wait_for_tids_or_state_change): We were using the wrong variable
7001         when accessing wait->threads. `i' was always out of the bounds of
7002         the array.
7003
7004 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7005
7006         * loader.c: map user32 and kernel32 to libMonoSupportW
7007
7008 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7009
7010         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7011
7012 2005-06-28  Martin Baulig  <martin@ximian.com>
7013
7014         * loader.c (method_from_methodspec): Fix #75334.
7015
7016 2005-06-28  Martin Baulig  <martin@ximian.com>
7017
7018         Fix #74953 - Arrays now implement the generic IList<T> interface
7019         on the 2.0 platform.
7020
7021         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7022
7023         * reflection.c (mono_class_bind_generic_parameters): New public
7024         function; similar to mono_reflection_bind_generic_parameters(),
7025         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7026
7027         * domain.c (mono_init_internal): Try to initialize.
7028         `mono_defaults.generic_array_class' here; this'll only succeed if
7029         we're using the 2.0 corlib.
7030
7031         * icall.c
7032         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7033         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7034         (mono_lookup_internal_call): Added support for nested classes.
7035
7036         * loader.c
7037         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7038         we're an interncall and have generic arguments.
7039
7040         * class.c
7041         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7042         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7043         instance of System.Array.InternalArray<T> for arrays, so they
7044         implement the generic IList<T> interface.
7045
7046 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7047
7048         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7049         (chastamar@yahoo.com). Fixes #75374.    
7050
7051 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7052
7053         * culture-info-table.h: regenerated.
7054
7055 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7056
7057         * icall.c: handle spaces correctly for base64 strings.
7058
7059 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7060
7061         * *.c: Kill some warnings.
7062
7063 2005-06-23  Duncan Mak  <duncan@novell.com>
7064
7065         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7066         that this builds on Solaris 10 (x86).
7067
7068 2005-06-23  Martin Baulig  <martin@ximian.com>
7069
7070         * class.c
7071         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7072         generic type definitions.
7073
7074 2005-06-23  Martin Baulig  <martin@ximian.com>
7075
7076         Fix #75331.
7077
7078         * metadata.c (mono_class_get_overrides): Renamed to
7079         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7080         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7081         pass it to mono_get_method_full().
7082
7083 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7084
7085         * reflection.c (mono_reflection_create_runtime_class): take the
7086         mono_domain_lock in this method. Prevents deadlocks
7087
7088 2005-06-22  Martin Baulig  <martin@ximian.com>
7089
7090         * loader.c (method_from_methodspec): Fix #75330.
7091
7092 2005-06-22  Martin Baulig  <martin@ximian.com>
7093
7094         * reflection.c (type_get_qualified_name): Use
7095         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7096         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7097         argument; use it if we don't have an assembly name.
7098
7099 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7100
7101         * object.c: In mono_message_init, set "copy out" flag for in
7102         parameters with the [Out] flag.
7103
7104 2005-06-21  Martin Baulig  <martin@ximian.com>
7105
7106         * class.c
7107         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7108         and MONO_TYPE_PTR.
7109
7110 2005-06-21  Martin Baulig  <martin@ximian.com>
7111
7112         * class.c (mono_class_init): Don't initialize `class->fields' for
7113         generic instances since they're initialized again in
7114         compute_field_layout(). 
7115         (compute_field_layout): Set the field's `generic_info' here; fix
7116         #75320. 
7117
7118 2005-06-21  Martin Baulig  <martin@ximian.com>
7119
7120         * class-internals.h
7121         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7122
7123         * metadata.c (mono_metadata_generic_method_equal): Also
7124         distinguish the `generic_class'; fixes #75334.
7125
7126 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7127
7128         * domain.c:
7129         * appdomain.c:
7130         * domain-internals.h:
7131         * reflection.c: 'domain_assemblies' field is now protected by its own
7132         lock. Don't call into managed code to run the AssemblyLoad event if we
7133         now there are no registered delegates for it.
7134
7135 2005-06-20  Martin Baulig  <martin@ximian.com>
7136
7137         * class.c (mono_class_is_assignable_from): Use a custom version of
7138         mono_class_has_parent() to make things work for generic instances;
7139         fix #75300.
7140
7141 2005-06-20  Martin Baulig  <martin@ximian.com>
7142
7143         * loader.c (method_from_methodspec): Apply a patch from
7144         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7145
7146 2005-06-20  Martin Baulig  <martin@ximian.com>
7147
7148         * class.c (mono_class_init): Reverted Zoltan's last change; it
7149         breaks generics.
7150
7151 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7152
7153         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7154
7155 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7156
7157         * socket-io.c: fix the index in the socket array for writable/error
7158         sockets. Fixes bug #75306.
7159
7160 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7161
7162         * class.c (mono_class_init): Allow interfaces to have static ctors.
7163
7164 2005-06-17  Martin Baulig  <martin@ximian.com>
7165
7166         * loader.c (method_from_methodspec): Use `context->container' when
7167         parsing the `gmethod->inst'.
7168
7169 2005-06-17  Martin Baulig  <martin@ximian.com>
7170
7171         * class.c (mono_type_get_name_recurse): Don't add the assembly
7172         name for type arguments.
7173
7174 2005-06-15  Martin Baulig  <martin@ximian.com>
7175
7176         * reflection.c (mono_image_get_inflated_method_token): Encode
7177         correct klass; fixes #75260.
7178
7179 2005-06-13 Michal Moskal <malekith@nemerle.org>
7180
7181         * icall.c: Make GetCorrespondingMethod/Constructor take
7182         MonoReflectionMethod method not MonoMethod. Removed
7183         MonoType.GetCorrespondingField, and make
7184         MonoGenericType.GetCorrespondingField take name not
7185         MonoClassField.
7186
7187 2005-06-13  Michal Moskal <malekith@nemerle.org>
7188
7189         * reflection.c (field_encode_signature, encode_locals):
7190          Make sizes of buffers for types larger (for big generic types).
7191          (create_generic_typespec,
7192          mono_reflection_sighelper_get_signature_local,
7193          mono_reflection_sighelper_get_signature_field):
7194          Add asserts for too small buffers.
7195
7196 2005-06-15  Martin Baulig  <martin@ximian.com>
7197
7198         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7199         if our parent is not a dynamic type.
7200
7201 2005-06-15  Martin Baulig  <martin@ximian.com>
7202
7203         * class-internals.h (MonoTypeNameFormat): New enum.
7204
7205         * class.c
7206         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7207         (mono_type_get_full_name): Removed.
7208         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7209         argument instead of the boolean's.
7210
7211         * icall.c (ves_icall_System_MonoType_getFullName):
7212         Added `gboolean assembly_qualified'.    
7213
7214         * reflection.h
7215         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7216
7217         * reflection.c (mono_reflection_parse_type): Parse the new type
7218         name format.
7219
7220 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7221
7222         * icall.c: no need to convert from utf16 to utf8 and then back again
7223         after the call to GetLogicalDrives.
7224
7225 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7226
7227         * icall.c: frombase64. Fix problems exposed by new tests.
7228
7229 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7230
7231         * icall.c: added internal calls for converting char [] and strings in
7232         base64 into byte [].
7233
7234 2005-06-10  Martin Baulig  <martin@ximian.com>
7235
7236         * class.c (mono_class_create_generic_2): Read the nested classes
7237         from the metadata rather than from `gklass->nested_classes' since
7238         `gklass' might not be initialized yet.
7239
7240 2005-06-09  Duncan Mak  <duncan@novell.com>
7241
7242         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7243         all public headers. Fixes #74919.
7244
7245 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7246
7247         * domain.c: The key for proxy_vtable_hash is now a pointer
7248         array. Added new GHashFunc and GCompareFunc functions for this.
7249
7250         * class.h: The list of interfaces in MonoRemoteClass is known in
7251         advance and can't grow (we create a new MonoRemoteClass if needed),
7252         so now the interface array can be allocated together with
7253         MonoRemoteClass.
7254         
7255         * object.c: Added a new method create_remote_class_key.
7256         Fixed mono_remote_class so it does not depend on
7257         mono_upgrade_remote_class.
7258         Removed extend_interface_array.
7259         Added new method clone_remote_class(), which makes a copy of a remote
7260         class and adds a new interface or class to it.
7261         mono_upgrade_remote_class() now creates a new remote class (or gets
7262         it from the cache) if an vtable upgrade is needed. In this way
7263         we make sure that other objects sharing the same remote class
7264         don't get the new vtable with unwanted interfaces.
7265         
7266         * object-internals.h:
7267         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7268         
7269         * marshal.c: Track changes in mono_upgrade_remote_class().
7270
7271 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7272         * icall.c: Add runtime methods for obtaining members of inflated
7273         class, which were created from supplied non-inflated members. It
7274         is used in internal Get{Method,Constructor,Field} methods in
7275         System.Type
7276
7277 2005-06-09  Martin Baulig  <martin@ximian.com>
7278
7279         * reflection.c
7280         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7281
7282 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7283         * reflection.c (mono_image_basic_init): Define
7284         Version in MonoDynamicAssembly. 
7285         
7286 2005-06-08  Martin Baulig  <martin@ximian.com>
7287
7288         Fix #75136.
7289
7290         * loader.c
7291         (mono_method_signature_full): New public method; takes a
7292         `MonoGenericContext *'.
7293         (find_method): Use mono_method_signature_full() and pass the
7294         klass'es context to it.
7295
7296         * class.c (mono_class_is_inflated_method): Use
7297         mono_method_signature_full() and pass the context to it.
7298
7299 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7300
7301         * object.c: add proper locking in mono_remote_class_vtable(),
7302         fixes possible memory corruption.
7303
7304 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7305
7306         * marshal.c (mono_remoting_marshal_init): set
7307         initialized after initialization.
7308
7309 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7310
7311         * locales.c : hush.
7312
7313 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7314
7315         * object.c (extend_interface_array): fix really silly
7316         memory corrupting / comparison bug.
7317
7318 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7319
7320         * reflection.c: Functions added to support the creation
7321         of CustomAttributeData, which includes Attribute data
7322         used by ReflectionOnly methods.
7323
7324         * reflection.h:  mono_reflection_get_custom_attrs_data and
7325          mono_custom_attrs_data_construct added (functions exposed).
7326
7327          * icall.c: Added mono_reflection_get_custom_attrs_data
7328          as icall.
7329         
7330 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7331
7332         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7333         lupus's request.
7334
7335 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7336
7337         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7338
7339         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7340         dynamic DllImportAttribute.
7341
7342         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7343         dynamic DllImportAttribute.
7344
7345         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7346         Fixes #75162.
7347
7348 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7349
7350         * threads.c: avoid segfault when an unstarted thread is aborted.
7351
7352 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7353
7354         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7355         Returns the name and version of the runtime for reporting.
7356
7357 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7358
7359         * appdomain.c: bump corlib version.
7360         * object-internals.h: new field in MonoReflectionAssembly.
7361
7362 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7363
7364         * object-internals.h: Carlos forgot to add this field.
7365
7366 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7367
7368         * icall.c: Added create_version to create instances
7369         of Version of MonoReflectionAssemblyName. This change helps
7370         the AssemblyName tests to keep running fine.
7371         
7372 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7373   
7374         * object.c (mono_method_return_message_restore): A somehow less
7375         intrusive fix for #75138.
7376
7377 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7378
7379         * object.c (mono_method_return_message_restore): Fix computation
7380         of expected number of out args.
7381
7382 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7383
7384         * reflection.c (mono_image_get_method_info): Fix the case when the
7385         charset is empty.
7386
7387 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7388
7389         * object.c: Added missing null check in
7390           mono_method_return_message_restore.
7391
7392 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7393
7394         * reflection.c (mono_image_get_method_info): Handle the case when
7395         dllentry is empty.
7396
7397 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7398
7399         * object.c: When creating the vtable for a proxy, take into account
7400         all inherited interfaces, not only the ones registered in
7401         iclass->interfaces. This fixs bug #74996.
7402         Also, in mono_method_return_message_restore, verify that the array
7403         of out args has the expected lengh.
7404
7405 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7406
7407         * socket-io.c: update the timeout in Poll when the call is interrupte.
7408
7409 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7410
7411         * socket-io.c: support abort/suspend in Select_internal after last
7412         change.
7413
7414 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7415
7416         * threadpool.c: remove warning.
7417
7418 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7419
7420         * icall.c:
7421         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7422         removing the 1024 limit from select(). Runtime part of the fix for
7423         bug #71203.
7424
7425 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7426
7427         * socket-io.c: when resolving the addresses for the same
7428         host returned by gethostname(), get the local IPs from the interface
7429         list. Loopback addresses are discarded if the are interfaces up with
7430         non-loopback ones. Fixes bug #63265.
7431
7432 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7433
7434         * appdomain.c, verify.c, object-internals.h, reflection.c:
7435         bumped corlib number to 36, and added new extra_flags field
7436         to ReflectionMethodBuilder and friends.  Fixes #75060.
7437
7438 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7439
7440         * gc.c: register a new weak link only if the object is non-null
7441         (fixes bug#75047).
7442
7443 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7444
7445         * culture-info.h : short time pattern too.
7446
7447 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7448
7449         * culture-info.h : expand long time pattern string length.
7450
7451 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7452
7453         * culture-info-table.h : update (more French date format; #72788).
7454
7455 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7456
7457         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7458         the method is static. Fixes #75029.
7459
7460 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7461
7462         * reflection.c: Update the table_idx field of method builders after
7463         saving the module, since it can change. This is a workaround for
7464         bug #74914. 
7465
7466 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7467
7468         * culture-info-table.h : update (additional French date format).
7469
7470 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7471
7472         * icall.c (ves_icall_type_Equals): Revert last change.
7473         
7474         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7475
7476         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7477
7478 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7479
7480         * class-internals.h: Added executioncontext_class field to 
7481         MonoDefaults structure.
7482         * domain.c: Cache System.Threading.ExecutionContext class in 
7483         mono_defaults.
7484         * object.c: Capture the ExecutionContext for asynchroneous calls in
7485          mono_async_result_new.
7486         * object-internals.h: Added execution_context and original_context 
7487         fields to MonoAsyncResult. Added execution_context to MonoThread.
7488         * security-manager.c|.h: Added mono_get_context_capture_method to 
7489         return the capture method (if required by the security manager or by
7490         the framework version used).
7491         * threadpool.c: Apply capture (if present) ExecutionContext in 
7492         mono_async_invoke and revert to original context after it completes.
7493
7494 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7495
7496         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7497
7498 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7499
7500         * culture-info-table.h : zh-CHT related workaround.
7501
7502 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7503
7504         * marshal.c (emit_marshal_custom): Add some error checking and call the
7505         methods in the ICustomMarshaler interface. Fixes #74875.
7506         
7507         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7508         native->managed wrappers.
7509
7510 2005-05-12  Martin Baulig  <martin@ximian.com>
7511
7512         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7513         here and use the loader lock.
7514
7515         * mono-debug.c: Properly lock when the debugger is not attached.
7516         (mono_debug_init): Release the initial lock if we're not running
7517         in the debugger.
7518
7519 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7520
7521         * marshal.c (emit_marshal_custom): Pass through NULL values without
7522         calling the custom marshalling routines.
7523
7524         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7525         conversion in structures. Fixes #74882.
7526
7527 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7528
7529         * culture-info-table.h : zh-* cultures were missing.
7530
7531 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7532
7533         * threads.c: Added a new event background_change_event which is signaled
7534         when a thread changes its background mode.
7535         Moved here several checks previously done in managed code. The checks
7536         require the thread lock, and using the thread lock in managed code
7537         can result in deadlocks.
7538         Merged Start_internal and Thread_internal into a single method. Now 
7539         Thread_internal does all work of creating and starting a thread.
7540         Added icalls for setting and getting the state of the object. Moved from
7541         managed code to avoid locking there.
7542         Added wait_for_tids_or_state_change() which is called instad of
7543         wait_for_tids when waiting for non-backround threads to end. This method
7544         will return if one of the threads ends or the background_change_event
7545         is signaled.
7546         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7547         the background mode. This method signals the background_change_event
7548         event.
7549         * icall.c:
7550         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7551         removed Start_internal.
7552         
7553 2005-05-11  Martin Baulig  <martin@ximian.com>
7554
7555         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7556         to order of some fields to get proper alignment on 64-bit machines.
7557
7558 2005-05-11  Martin Baulig  <martin@ximian.com>
7559
7560         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7561         changes as they're broken and completely fuck up the debugger.
7562
7563         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7564
7565 2005-05-10  Martin Baulig  <martin@ximian.com>
7566
7567         * reflection.c (mono_reflection_generic_class_initialize): Don't
7568         call mono_class_setup_parent() here.
7569
7570 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7571
7572         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7573         send/receive timeout use an integer in milliseconds. We were using a
7574         struct timeval.
7575
7576 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7577
7578         * locales.c:
7579         (internal_get_cultures): reserve the first slot of the array for the
7580         InvariantCulture, which will be filled in managed code.
7581
7582 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7583
7584         * reflection.c (mono_image_fill_module_table): Initialize the
7585         GENERATION field as well.
7586
7587 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7588
7589         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7590         Monitor.Enter on the object.
7591
7592 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7593
7594         * threads.c: Enable the wait for running threads when exiting.
7595         * icall.c: Suspend all threads before exiting.
7596
7597 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7598
7599         * assembly.c (mono_assembly_load_reference): Fix warning.
7600
7601 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7602
7603         * threadpool.c: changed the default number of threads per cpu. From now
7604         on, the default will be 20 + (5 * number of cpus) instead of 50.
7605
7606 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7607
7608         * loader.c (mono_method_get_signature_full): Add locking here.
7609
7610 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7611
7612         * appdomain.c: Moved methods for parsing and freeing assembly
7613         names to assembly.c.
7614         * assembly.c, domain-internals.h: Created public methods for parsing
7615         assembly names. Fixed mono_assembly_load_with_partial_name:
7616         it now finds the best match, taking into account the version,
7617         token and culture specified in the partial name. Also return
7618         the latest version if no version information is specified.
7619
7620 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7621
7622         * threadpool.c: replace check for SocketAsyncCall class.
7623
7624 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7625
7626         * threadpool-internals.h:
7627         * Makefile.am: added threadpool-internals.h
7628
7629         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7630         that happen in threadpool threads (tested on MS).
7631         (mono_thread_pool_remove_socket): new function that dispatch any pending
7632         AIO call on a socket that is closing. By now only epoll really needs it,
7633         as select/poll wake up when the socket closes.
7634
7635
7636         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7637
7638 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7639
7640         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7641
7642 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7643
7644         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7645
7646 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7647
7648         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7649         has an abort request, convert it into a suspend request.
7650
7651 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7652
7653         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7654         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7655         is not supported yet.
7656
7657 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7658
7659         * image.c: register assemblies loaded from data (bundles) in the loaded
7660         assemblies hash. Fixes bug #74772.
7661
7662 2005-04-29  Martin Baulig  <martin@ximian.com>
7663
7664         * class.c (mono_type_get_name_recurse): Update to the new naming
7665         schema from the latest .NET 2.x beta2.
7666         (mono_class_setup_vtable_general): If we're a generic instance,
7667         copy the vtable from our generic type definition and inflate all
7668         the methods in it.
7669
7670         * loader.c (find_method): Update to the new naming schema from the
7671         latest .NET 2.x beta2.
7672
7673 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7674
7675         * class.c (mono_class_init): Add a mono_loader_unlock to the
7676         #74734 fix.
7677
7678 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7679
7680         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7681         suspend_all_other_threads () call for the time being, since it can hang.
7682
7683         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7684         the background threads to exit, since it can also hang.
7685
7686         * class.c (mono_class_init): Applied patch from Ankit Jain 
7687         (radical@gmail.com). Avoid pending init errors when a field refers
7688         to a nested class using a typeref. Fixes #74734.
7689
7690         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7691         this for dynamic modules.
7692
7693 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7694
7695         * threads.c: don't wait for threads that are in the process of aborting
7696         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7697         and waiting for background threads to finish. This makes xsp and
7698         mod-mono-server exit without random length delays and/or hangs.
7699
7700 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7701
7702         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7703
7704 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7705
7706         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7707         dynamic types to prevent infinite loops. Fixes #74727.
7708
7709         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7710         ..._is_assignable_to.
7711
7712 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7713
7714         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7715
7716 2005-04-25  Martin Baulig  <martin@ximian.com>
7717
7718         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7719
7720         * domain.c
7721         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7722
7723         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7724
7725         * reflection.c (build_compressed_metadata): Set metadata header
7726         version to 2.0.
7727
7728 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7729
7730         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7731         number into an integral and a decimal part. Fixes #70473.
7732
7733         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7734
7735 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7736
7737         * culture-info-table.h : reflected the latest locale-builder output.
7738
7739 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7740
7741         * threadpool.c: check for SuspendRequested too when deciding if
7742         mono_thread_interruption_checkpoint should be called.
7743
7744 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7745
7746         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7747         * threads.c: remove interruption_mutex and use Interlocked instead. When
7748         suspending all the threads, wait for all the suspended events at once.
7749         If we're shutting down and get an APC that is going to be queued,
7750         call mono_thread_execute_interruption immediately, as the thread might
7751         be sleeping on a pthread condition or mutex.
7752
7753         * icall.c: call mono_runtime_set_shutting_down before suspending the
7754         threads.
7755
7756         Fixes bug #74693. And now xsp is happier when exiting.
7757
7758 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7759
7760         * loader.c (mono_stack_walk): Fix #74690.
7761
7762 2005-04-22  Martin Baulig  <martin@ximian.com>
7763
7764         * mono-debug.h (MonoDebugMethodJitInfo): Added
7765         `MonoDebugMethodJitInfo *jit'.
7766
7767         * mono-debug.c (mono_debug_read_method): Cache the
7768         MonoDebugMethodJitInfo in `address->jit'.
7769         (mono_debug_free_method_jit_info): New public method.
7770
7771 2005-04-22  Martin Baulig  <martin@ximian.com>
7772
7773         * class.c (mono_class_is_assignable_from): Disallow
7774         type parameter -> interface.
7775
7776 2005-04-21  Dick Porter  <dick@ximian.com>
7777
7778         * threads.c (mono_thread_create): Turn an assertion into an error.
7779
7780 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7781
7782         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7783         
7784         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7785         Fix some gcc 4.0 warnings.
7786
7787 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7788
7789         * file-io.c: fix alt dir separator char on unix systems
7790         and cleanup (fixes bug #71214).
7791
7792 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7793
7794         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7795         a call to a remote domain, since the method may be an
7796         interface method in the client domain. This fixes bug #74192.
7797
7798 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7799
7800         * threadpool.c: recv/send are now performed before going back to managed
7801         code to save one transition.
7802
7803 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7804
7805         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7806
7807         * metadata/threadpool.c: removed hack to workaround the bug above.
7808
7809         Fixes bug #74618.
7810
7811 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7812
7813         * reflection.c reflection.h: Fix handling of parameter defaults in
7814         dynamic methods. Also fixes handling of parameter attributes.
7815         Fixes #74609.
7816
7817         * mono-debug.c (mono_debug_close_image): Fix warning.
7818
7819 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7820
7821         * socket-io.h: replaced old unused field with new 'blocking'.
7822         * threadpool.c: restore socket blocking state on windows(tm).
7823
7824 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7825
7826         * icall.c: don't return the codebase in the AssemblyName[] returned by
7827         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7828         * object-internals.h: Removed FIXME (fields were presents) and fixed
7829         versioncompat declaration.
7830
7831 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7832
7833         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7834         not closed, so don't cleanup when it happens.
7835
7836 2005-04-13  Chris Toshok  <toshok@ximian.com>
7837
7838         * mono-debug-debugger.h: change prototype for
7839         mono_debugger_lookup_type.
7840
7841         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7842         this function, although it should probably be named
7843         mono_debugger_init_type.
7844
7845 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7846
7847         * threadpool.c: fix non-AIO case.
7848
7849 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7850
7851         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7852         the built-in profiler to measure just JIT compilation times.
7853
7854 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7855
7856         * threadpool.c: the epollfd might be closed by another thread at
7857         any time, so ignore EBADF at treat it as a "we're closing" sign.
7858
7859 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7860
7861         * threadpool.c: release the semaphores with a count equals to the number
7862         of working threads in both IO and regular pools. Fixed typo that messed
7863         up the count of IO pool threads. Don't initialize the pipe handles if
7864         we're using epoll.
7865
7866 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7867
7868         * threadpool.c: some systems don't like a NULL when deleting the socket
7869         from epoll.
7870
7871 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7872
7873         * threadpool.c: fix semaphore allocation.
7874
7875 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7876
7877         * threadpool.c: added epoll() based implementation for asynchronous IO
7878         that is used instead of the default poll() when available.
7879         It can be disabled by setting MONO_DISABLE_AIO.
7880
7881 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7882
7883         * threadpool.c: windows needs 'closesocket' and instead of returning
7884         0 when the stream is closed while in select, it returns -1. Fixes bug
7885         #74573.
7886
7887 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7888
7889         * class.c (class_compute_field_layout): Fix the regression caused by
7890         the previous try.
7891
7892 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7893
7894         * threadpool.c: separate pool for socket async. IO.
7895         * threadpool.h: mono_max_worker_threads is not a global any more.
7896
7897 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7898
7899         * class.c (class_compute_field_layout): Fix #74549.
7900
7901 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7902
7903         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7904         use 2 connected sockets instead.
7905
7906 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7907
7908         * mono-config.c: Add new entry point for mkbundle
7909         mono_config_parse_memory. 
7910
7911 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7912
7913         * threadpool.c: removed another unused function.
7914
7915 2005-04-08  Ankit Jain  <radical@corewars.org>
7916
7917         * reflection.c (get_default_param_value_blobs): Add 'types'
7918         parameter to get the types encoded in the constant table.
7919         (mono_param_get_objects): Use the type from the constant table,
7920         not the type of the parameter, when creating default values.
7921         Handle null default values correctly.
7922
7923 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7924
7925         * file-io.c:
7926         * file-io.h:
7927         * threadpool.c:
7928         * threadpool.h:
7929         * icall.c:
7930         * socket-io.c: removed dead code for async IO.
7931
7932 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7933
7934         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7935
7936         * threadpool.c: intercept socket async. calls and pass them to a thread
7937         that is polling and dispatching the job items to the threadpool as
7938         socket become ready. Fixes bugs #71217, #71933.
7939
7940         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7941         between char and short/ushort arrays.
7942
7943         * socket-io.c: remove dead code.
7944
7945 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7946
7947         * locales.c,
7948           icall.c : removed InternalToUpper_Comp() and
7949           InternalToLower_Comp().
7950
7951 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7952
7953         * char-conversions.h : The tables were incorrectly generated. Should
7954           be generated against invariant culture.
7955
7956 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7957
7958         * object.c (mono_runtime_invoke_array): Fix return value when 
7959         passing pre-created valuetype objects to ctors.
7960
7961         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7962         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7963         Fixes #74338.
7964
7965 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7966
7967         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7968         only used with --security and hides the wrong corlib version error.
7969
7970 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7971
7972         * class.c: Changed mono_class_name_from_token so that types
7973         outside of a namespace don't have an initial period.  Improved
7974         the g_warning message used in _mono_class_get when loading
7975         fails.
7976         * assembly.c: In mono_assembly_load_reference, when an assembly
7977         can't be found, "No such file or directory" is misleading and
7978         unhelpful because a few paths were checked for the presence of
7979         the assembly.  When that happens (ENOENT), display a nicer
7980         message indicating the directories that were searched.  In all
7981         cases, the warning is made easier to read for non-hackers.
7982
7983 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7984
7985         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7986         project/solution.
7987         * appdomain.h|domain.c: Removed inline from functions.
7988         * appdomain.c: Reduced warnings when compiling on windows.
7989         * icall.c: Fixed output_debug declaration to gunichar2*.
7990         * mono-config.c: Reduced warnings when compiling on windows.
7991         * rand.c: Added missing "windows.h". Added missing return value.
7992         * rawbuffer.c: Added missing winsock2.h for windows.
7993         * sysmath.h: Added mono-compiler.h header to allow/ease 
7994         compilation with non-GCC compilers.
7995         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7996         Removed cast warnings.
7997
7998         Adapted from the work of J Lothian (for VC6).
7999
8000 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8001
8002         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8003         from default_path.
8004
8005 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8006
8007         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8008         the 2.0 profile.
8009
8010 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8011
8012         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8013         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8014         stuff, and it would probably use $(prefix)/share rather than
8015         $(prefix)/lib.
8016
8017 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8018
8019         * console-io.c: added 2 includes that might be missing.
8020
8021 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8022
8023         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8024         profile.
8025
8026         * reflection.c (create_custom_attr): Allocate the params array using
8027         alloca so it gets GC tracking.
8028
8029 2005-03-23  Chris Toshok  <toshok@ximian.com>
8030
8031         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8032         out some spew.
8033
8034 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8035
8036         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8037         changes to pick up any changes in prefix, etc.
8038
8039 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8040
8041         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8042         
8043         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8044         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8045
8046 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8047
8048         * class-internals.h object-internals.h class.c reflection.c: Extend the
8049         mono_lookup_dynamic_token () function to return the class of the
8050         token as well. 
8051
8052         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8053         well. Fixes #73848.
8054
8055 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8056
8057         * security-manager.c: Skip inheritance checks for intra-corlib
8058         class inheritance and method overrides. This skips a lot of checks
8059         and (anyway) permissions cannot work until corlib is loaded.
8060
8061 2005-03-23  Martin Baulig  <martin@ximian.com>
8062
8063         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8064         MONO_TYPE_GENERICINST.  
8065
8066 2005-03-23  Martin Baulig  <martin@ximian.com>
8067
8068         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8069
8070 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8071
8072         * class.c: added locking comments to some functions.
8073         Cache the interface offsets arrays (saves about 20 KB
8074         of runtime memory in a typical app).
8075         Reduce the time overhead in mono_class_setup_supertypes ().
8076
8077 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8078
8079         * icall.c: speedup and fix leaks in GetMethodsByName and
8080         GetPropertiesByName.
8081
8082 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8083
8084         * reflection.c: some locking fixes.
8085
8086 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8087
8088         * metadata.c: added missing break in case statement.
8089
8090 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8091
8092         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8093         typedbyref return values. Fixes #73941.
8094
8095 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8096
8097         * security-manager.c|h: Added demandunmanaged method and 
8098         suppressunmanagedcodesecurity class to MonoSecurityManager.
8099         Renamed aptc class to allowpartiallytrustedcallers.
8100
8101 2005-03-17  Martin Baulig  <martin@ximian.com>
8102
8103         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8104
8105 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8106
8107         * file-io.c: disabled file async. IO using aio_*. It uses the
8108         threadpool now. Workaround for bug #73718.
8109
8110 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8111
8112         * assembly.h, mono-config.c: added code to deal with bundled configs
8113         for bundled assemblies.
8114
8115 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8116
8117         * *.c, private.h: cleanup, removing old private.h header file.
8118
8119 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8120
8121         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8122         and throw_on_unmappable_char attributes.
8123
8124 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8125
8126         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8127         _ProcessName_internal.
8128
8129 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8130
8131         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8132         #73631.
8133
8134         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8135         are no longer used.
8136
8137 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8138
8139         * object.c (compute_class_bitmap): Add support for generics. Fixes
8140         #73527.
8141
8142 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8143
8144         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8145
8146 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8147
8148         * filewatcher.c: commented out the code for windows watcher, as we don't
8149         use it (we use the managed implementation instead).
8150
8151 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8152
8153         * object-internals.h (MonoThread): Remove 'unused1' field.
8154
8155         * appdomain.c: Bump corlib version.
8156
8157         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8158
8159         * reflection.c (mono_reflection_create_runtime_class): Remove the
8160         AssemblyBuilder.Save optimization since it causes too many problems.
8161
8162 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8163
8164         * exception.c|h: Added mono_get_exception_reflection_type_load to
8165         create a ReflectionTypeLoadException object.
8166         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8167         to return NULL is a InheritanceDemand fails during reflection. Updated
8168         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8169         ReflectionTypeLoadException if an InheritanceDemand fails during 
8170         reflection. Added icall mapping for GetLinkDemandSecurity.
8171         * security-manager.c|h: Added ves_icall_System_Security_
8172         SecurityManager_GetLinkDemandSecurity internal call to return the
8173         class and methods permissions set for a LinkDemand. Removed unused
8174         fields in MonoSecurityManager.
8175
8176 2005-03-10  Martin Baulig  <martin@ximian.com>
8177
8178         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8179         it's a generic instance.
8180
8181 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8182
8183         * reflection.c (mono_get_object_from_blob): Applied patch from
8184         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8185
8186         * class.c (mono_class_is_assignable_from): Another try at fixing 
8187         #73469 without breaking anything.
8188
8189 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8190
8191         * class.c: (mono_class_is_assignable_from): Revert the last changes
8192         since they don't work with generics.
8193         
8194         * class.c (mono_class_is_assignable_from): Fix build bustage.
8195
8196         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8197         the managed IsAssignableFrom method. Fixes #73469.
8198
8199         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8200         function.
8201
8202 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8203
8204         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8205         memory when the remoting callback does not sets the out arguments.
8206         Fixes #73007.
8207
8208         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8209         by mistake.
8210
8211         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8212
8213         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8214
8215         * appdomain.c: Bump corlib version.
8216
8217 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8218
8219         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8220         function.
8221
8222         * threads.c (mono_thread_attach): Detect threads which are not started
8223         by the GC pthread wrappers.
8224
8225 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8226
8227         * icall.c: Added new icall for RNG.
8228         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8229         single handle on Linux to access /dev/urandom and fix #73183.
8230
8231 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8232
8233         * object.c: setting the new vtable in a transparent proxy object must
8234         not change the GC descriptor.
8235
8236 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8237
8238         * object.c: fixed compilation without GCJ support.
8239         * reflection.c: for runtime-created types ensure klass->has_references
8240         is correct (bug #73215).
8241
8242 2005-03-02  Martin Baulig  <martin@ximian.com>
8243
8244         * class.c (mono_class_is_assignable_from): Make this work if
8245         `oklass' is a generic instance; fixes #72831.
8246
8247 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8248
8249         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8250         with hasthis set.
8251         
8252         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8253
8254         * marshal.c: Reorganize native->managed marshalling code to also use
8255         the emit_marshal_... functions.
8256
8257 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8258
8259         * object.c: typed allocs have issues with bitmap sizes > 30,
8260         so check for max_set >= 30.
8261
8262 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8263
8264         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8265         managed code. Fixes #73012.
8266
8267         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8268
8269         * metadata.c reflection.c: Load/Emit elem_mult as well.
8270         
8271         * metadata.h (MonoMarshalSpec): Add comment.
8272
8273         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8274
8275         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8276         num_elem to -1 if not given.
8277
8278         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8279
8280         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8281         given values.
8282
8283 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8284
8285         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8286
8287 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8288
8289         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8290
8291         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8292
8293 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8294
8295         * object.c: generalized the reference bitmap creation
8296         and added hooks for the new GC.
8297         * class-internals.c: removed the gc_bitmap field from MonoClass.
8298
8299 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8300
8301         * domain.c: help the compiler to produce better code
8302         in mono_jit_info_table_find ().
8303
8304 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8305
8306         * object.c: make all allocations look typed.
8307
8308 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8309
8310         * socket-io.c: load Mono.Posix if it's not loaded already
8311         (fixes bug#73033).
8312
8313 2005-02-24  Martin Baulig  <martin@ximian.com>
8314
8315         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8316         * reflection.c (dup_type): Likewise.
8317
8318 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8319
8320         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8321         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8322
8323 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8324
8325         * domain.c, threads.c, object-internals.h: make the critical thread
8326         local vars use the fast access mode (even when we're compiled in
8327         a lib). Provide accessors to be used by the jit during codegen.
8328
8329 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8330
8331         * appdomain.c: Changed hook functios behavior to include
8332         support for the reflection only assemblies. Some icalls were changed
8333         to support the mentioned assemblies too. Signatures of static methods
8334         try_assembly_resolve and real_load now have an additional parameter:
8335         refonly.
8336
8337         * assembly.c: General changes to mono_assembly_ methods to support
8338         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8339         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8340         suffix, to support an additional gbool parameter to specify whether
8341         the assembli is reflection only or not. Created some new hook functions 
8342         to add support for reflection only assemblies. Signatures of static 
8343         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8344         have now an additional parameter: refonly.
8345
8346         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8347         indicating whether the assembly is reflection only or not.
8348
8349         * exception.c: Add mono_get_exception_invalid_operation.
8350
8351         * icall.c: Throw an InvalidOperationException when trying to invoke
8352         a property/method/event, or trying to set/get the value of a field.
8353         Also add an icall to retrieve the ref_only flag to the
8354         MonoReflectionAssembly.
8355
8356 2005-02-23  Chris Toshok  <toshok@ximian.com>
8357
8358         Part of fix for #72827.
8359         * mono-debug.c (mono_debug_add_method): add lexical block data to
8360         the info we write.  Kind of a hack at the moment - we copy the
8361         lexical block info from the MonoDebugMethodInfo to the
8362         MonoDebugMethodJitInfo here, before writing it.
8363         (mono_debug_read_method): read the lexical block info.
8364
8365         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8366
8367         * debug-mono-symfile.h: add lexical block support.
8368
8369         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8370         support.
8371
8372 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8373
8374         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8375
8376         * object.c (mono_runtime_free_method): Call mono_free_method () and
8377         put the TODOs there.
8378
8379         * loader.c (mono_free_method): Free up most memory allocated for 
8380         dynamic methods.
8381
8382 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8383
8384         * reflection.c: properly flag a Type argument to a
8385         named custom attr value (bug #72248).
8386
8387 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8388
8389         * reflection.c: reduce code duplication in named custom
8390         attribute encoding.
8391
8392 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8393
8394         * reflection.c: properly encode custom attrs of type object
8395         (bug #72649).
8396
8397 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8398
8399         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8400
8401 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8402
8403         * socket-io.c: load System.dll if it's not loaded already
8404         (bug #72850 and #70477).
8405
8406 2005-02-21  Martin Baulig  <martin@ximian.com>
8407
8408         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8409         generic instances.
8410
8411 2005-02-21  Martin Baulig  <martin@ximian.com>
8412
8413         * reflection.c (mono_image_build_metadata): We also need to
8414         "fixup" the MethodImpl table after we computed the final method
8415         indices.  Call fixup_methodimpl() to do that.
8416         (fixup_methodimpl): New private method.
8417
8418 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8419
8420         * assembly.c: special case mscorlib.dll (bug#72536),
8421         patch from Carlos Alberto Cortez.
8422
8423 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8424
8425         * threads-types.h threads.c: Fix build bustage.
8426
8427         * threads.c: Use a union for long<->double conversions.
8428
8429         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8430         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8431
8432         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8433         containing the checkpoint call with NOT_TAKEN.
8434         
8435         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8436         checkpoint before pushing the arguments, so they won't have to be
8437         spilled to stack.
8438
8439 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8440
8441         * domain.c, assembly.c, domain-internals.h: make some data
8442         const and relocation-free.
8443
8444 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8445
8446         * object.c, appdomain.c, class-internals.h: introduce the
8447         MonoClassRuntimeInfo structure to hold the info needed to
8448         use a class at runtime. Made mono_class_vtable() lock-free
8449         for all the appdomains.
8450
8451 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8452
8453         * metadata-internals.h, image.c: introduce a per-image mempool to
8454         be used for memory that has the same lifetime as the image.
8455
8456 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8457
8458         * domain.c: In mono_init_internal(), instead of selecting the first
8459         runtime version supported by an executable, get a list of all
8460         supported versions and select the one for which an mscorlib exists
8461         (since even if the runtime supports a given version, it doesn't mean
8462         that the framework for that version is installed).
8463         Modified get_runtimes_from_exe to support this behavior.
8464         In supported_runtimes, added information about additional system
8465         assembly versions.
8466         
8467         * assembly.c: Added support for more than one system assembly version
8468         per runtime version. Updated the assembly list.
8469         In mono_assembly_remap_version, removed the initial version check,
8470         since we don't know to which version we need to compare until we
8471         get the version set on which the assembly is based.
8472         Moved the code for loading corlib into the new method
8473         mono_assembly_load_corlib(), so it can be used by the initialization
8474         code.
8475         
8476         * domain-internals.h: Updated data structures and added declaration
8477         for mono_assembly_load_corlib.
8478
8479 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8480
8481         * reflection.c (resolve_object): Fix the creation of the signature in 
8482         the SignatureHelper case.
8483
8484         * assembly.c (mono_assembly_remap_version): Fix binary search.
8485         
8486 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8487  
8488         * class.c: Added inheritance check when a method is overloaded (from a
8489         virtual method or when implementing an interface) and when a class is
8490         inherited. Added functions to set a failure for a class and to 
8491         retreive the exception from a failure.
8492         * class-internals.h: Added fields to MonoClass to keep the exception
8493         information status for inheritance (or other exceptions) to be thrown
8494         later (i.e. not at load time).
8495         * object.c: Throw the inheritance SecurityException when a type is to 
8496         be created with either class or method inheritance violations.
8497         * reflection.c|h: Fix when getting declsec from a class. Removed 
8498         unrequired code for class. Improved sanity in parameter naming.
8499         * security-manager.c|h: Added functions to check for class and method
8500         inheritance.
8501
8502 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8503
8504         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8505         and has_finalize in dynamic types as well.
8506
8507 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8508
8509         * culture-info-table.h : fixed currency format for en-GB (and so on).
8510
8511 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8512
8513         * gc.c: ensure the GC handles never have 0 as a value.
8514
8515 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8516
8517         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8518         a pointer to a struct to unmanaged code. Fixes #72625.
8519
8520 2005-02-16  Martin Baulig  <martin@ximian.com>
8521
8522         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8523
8524 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8525
8526         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8527
8528 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8529
8530         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8531
8532         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8533         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8534         etc. Fixes #71471.
8535
8536         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8537
8538         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8539
8540 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8541
8542         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8543         changes to make the current context a field in MonoThread.
8544
8545 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8546
8547         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8548         the last change.
8549         
8550         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8551         extracted from mono_marshal_get_native_wrapper.
8552
8553         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8554         to create wrappers around native functions.
8555
8556         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8557         delegates for arbitrary function pointers. Fixes #71472.
8558
8559 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8560
8561         * threads.c: cleaned up the code a little.
8562
8563 2005-02-15  Martin Baulig  <martin@ximian.com>
8564
8565         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8566         the data table.
8567
8568         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8569         allocate larger chunks if needed.
8570
8571 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8572
8573         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8574         in by mistake.
8575
8576 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8577
8578         * domain.c: keep the domains in an array and ensure the domain ids
8579         are kept small, so they can be used as indexes to domain-specific data
8580         with a small memory overhead.
8581
8582 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8583
8584         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8585
8586 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8587
8588         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8589
8590 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8591
8592         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8593
8594         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8595         values.
8596
8597         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8598         
8599 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8600
8601         * domain-internals.h: add the hashtable here.
8602
8603         * class-internals.h: Remove `info' from MonoMethod
8604
8605         * domain.c: Add a new hashtable, jit_trampoline_hash
8606
8607 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8608
8609         * object.c: don't set the value of static fields
8610         (fixes bug#72494).
8611
8612 2005-02-11  Martin Baulig  <martin@ximian.com>
8613
8614         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8615         (mono_debug_add_method): Silently ignore the method if it's too big.
8616         (mono_debug_add_type): Likewise.
8617
8618 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8619
8620         * threads.c, appdomain.c: remove #ifdefs from the code.
8621
8622 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8623
8624         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8625         common security informations. This allows us to stay in unmanaged code
8626         when doing LinkDemand and it's special cases (except for the first 
8627         time for initialization). The flags a very much used with --security.
8628         * reflection.c|h: Added code to get declarative security attributes 
8629         for LinkDemand and InheritanceDemand. This required to refactor the
8630         existing code for Demand.
8631         * security-manager.c|h: Added new method fields for the special cases
8632         of LinkDemand.
8633
8634 2005-02-10  Martin Baulig  <martin@ximian.com>
8635
8636         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8637         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8638
8639 2005-02-10  Martin Baulig  <martin@ximian.com>
8640
8641         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8642         debugging code; this is almost a complete rewrite.
8643
8644         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8645
8646 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8647
8648         * domain.c, object.h: expose mono_string_equal () and 
8649         mono_string_hash ().
8650         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8651         it's implemented in managed code.
8652
8653 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8654
8655         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8656         lo leak objects between appdomains.
8657
8658 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8659
8660         * assembly.c: old compilers compilation fix from 
8661         robertj@gmx.net (Robert Jordan).
8662
8663 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8664
8665         * class-internals.h: Little reminder for the future.
8666
8667         * debug-helpers.c: Fix up wrapper_type_names
8668
8669 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8670
8671         * image.c, metadata-internals.h: when loading an image from a file,
8672         mmap all of it and use the same codepaths as when using a
8673         in-memory image: the code is simpler and we use less memory
8674         (both writable and readonly).
8675
8676 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8677
8678         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8679         API to alloc runtime data structures that need to be tracked by the
8680         GC and contain pointers.
8681         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8682         make the code more readable and eventually use a different GC.
8683
8684 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8685
8686         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8687         for out arguments.
8688         
8689 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8690
8691         * object.c: In release_type_locks(), don't release the cctor lock
8692         if it has already been released. This fixes a crash in the
8693         thread5 test.
8694
8695 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8696
8697         * gc.c, marshal.c, icall.c: register a delegate for finalization
8698         only when the native function pointer has been allocated for it.
8699
8700 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8701
8702         * object.c: cleaned up some code, allocate objects that are
8703         pointer free with the atomic malloc variant. Allocate memory
8704         for static data from the mempool if it's pointer-free.
8705         Allocate the bounds array at the end of the array data, when needed.
8706         * object-internals.h, object.h: move a private function in a private
8707         header.
8708         * class.c: handle missing case in tracking references in fields.
8709
8710 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8711
8712         * class.c, class-internals.h: keep track if a type has
8713         reference fields in either the instance or static fields.
8714
8715 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8716
8717         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8718         and renamed to MonoRuntimeInfo. Added fields to store the expected
8719         framework assembly version. Changed mono_get_framework_version and
8720         mono_get_runtime_version for a single mono_get_runtime_info method.
8721         
8722         * assembly.c: Added method to remap system assembly versions to the
8723         current executing runtime version. Removed old mapping code.
8724         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8725         
8726         * icall.c, reflection.c: Track api changes.
8727
8728 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8729
8730         * loader.c (method_from_memberref): Improve error reporting,
8731         produce the class name instead of the typeref/typedef index. 
8732
8733 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8734
8735         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8736
8737 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8738
8739         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8740         stdcall and charset name mangling.  Reorganize the code and add
8741         some tracing stuff.
8742
8743 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8744
8745         * monodiet.c: More iters!
8746
8747         * marshal.c: Iter usage.
8748
8749         * icall.c: Iter usage.
8750
8751         * object.c: Use iters.
8752
8753         * debug-helpers.c: More iters
8754
8755 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8756
8757         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8758         under win32.
8759
8760 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8761
8762         * mono-debug-debugger.c: use iters
8763
8764         * class.c, class-internals.h: mono_class_setup_events is static
8765         now
8766
8767         * All callers: use iters
8768
8769 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8770
8771         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8772         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8773
8774 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8775
8776         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8777
8778         * marshal.h: Add prototypes for ldfld/stfld_remote.
8779
8780         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8781         this is called during startup.
8782         
8783 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8784
8785         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8786         MonoThreadsSync struct private in monitor.c. Changed the way
8787         MonoThreadsSync is allocated so it's faster and there is no
8788         need to keep track of it with a finalizer and it uses less memory.
8789         This also finally allows us to allocate mono objects as ptrfree when
8790         there are no reference fields.
8791
8792 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8793
8794         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8795         disappearing link to the GC interface and use them to simplify
8796         the gchandles code.
8797
8798 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8799
8800         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8801         stfld_remote which call mono_load/store_field_new. This allows methods
8802         calling ldfld/stfld wrappers to be AOTed.
8803
8804         * console-io.c: Include sys/filio.h under solaris.
8805         
8806         * console-io.c: Include curses.h if needed correctly.
8807
8808 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8809         
8810         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8811         method->klass as well.
8812
8813         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8814
8815         * class.c (mono_class_init): Switch on lazy initialization of 
8816         methods.
8817
8818         * class.c (mono_class_get_finalizer): Handle the case when the 
8819         finalizer is inherited.
8820
8821 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8822
8823         * console-io.c: <curses.h> is needed by term.h on solaris.
8824
8825 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8826
8827         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8828         mono_class_setup_properties where possible. Remove this ftn from
8829         the header file, and make it static.
8830
8831 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8832
8833         * loader.c: Add missing setup_... call.
8834
8835         * class.c: Add missing setup_... calls.
8836
8837         * class.c (mono_class_init): Switch on lazy initialization of 
8838         the generic vtable.
8839         
8840         * class.c (mono_class_init): Fix generics broken by the recent changes.
8841
8842         * monodiet.c (handle_type): Add missing setup_... calls.
8843
8844         * class.c: Back out garbage in previous patch.
8845         
8846         * class.c: Add missing setup_... calls.
8847
8848         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8849         mono_class_setup_methods () if possible.
8850
8851         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8852
8853         * class-internals.h (MonoCachedClassInfo): New structure.
8854
8855         * class.c: Initialize properties and events fields of MonoClass lazily.
8856
8857         * class.c: Add infrastructure for lazily initializing the methods and
8858         vtable fields of MonoClass. Not yet used.
8859
8860         * class.c (mono_class_get_finalizer): New helper function.
8861
8862         * class.c: Add infrastructure for loading some class related data from
8863         an AOT file.
8864
8865         * object.c: Add infrastructure for initializing the vtable from data
8866         in the AOT file.
8867
8868         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8869
8870         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8871         appropriate initialization function before accessing parts of the
8872         MonoClass structure.
8873
8874         * marshal.c: Fix warnings.
8875         
8876         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8877
8878         * mono-debug-debugger.c (get_exception_message): Use 
8879         mono_class_get_method_from_name_flags ().
8880
8881 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8882
8883         * reflection.c, appdomain.c: Replace a few manual searches that
8884         Zoltan missed. (Paolo approved this part of my initial patch).
8885
8886 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8887
8888         * profiler.c: disable recording statistical events at report time.
8889
8890 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8891
8892         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8893         to byteswap arrays of enum values, too (bug #72080).
8894
8895 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8896
8897         * appdomain.c (set_domain_search_path): Allow this to be called if
8898         domain->setup is not yet set.
8899
8900         * loader.c (mono_method_get_index): New helper function.
8901
8902         * loader.c reflection.c: Use mono_method_get_index ().
8903
8904         * class.c (mono_class_get_method_from_name_flags): New helper method.
8905
8906         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8907         this.
8908
8909         * class.c (mono_class_get_cctor): New helper method.
8910
8911         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8912         mono_class_get_method () to look up methods.
8913
8914 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8915
8916         * console-io.c: Fix the build, this should work on Windows.
8917
8918 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8919
8920         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8921         be set to null to keep things valid
8922
8923 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8924
8925         * icall.c: added Console 2.0 icalls.
8926         * Makefile.am: added console-io.[ch]
8927         * console-io.[ch]: internal calls for Console 2.0 API.
8928
8929 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8930
8931         * class.c: make sure we consider all the interfaces
8932         when calculating max_interface_id (bug found by
8933         Jeroen Frijters running ikvm).
8934
8935 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8936
8937         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8938         valuetype fields to null.
8939
8940         * object.c (set_value): Ditto. Fixes #71669.    
8941
8942 2005-01-31  Martin Baulig  <martin@ximian.com>
8943
8944         * metadata.c (mono_metadata_has_generic_params): New public
8945         function; checks whether something is a generic method.
8946
8947 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8948
8949         * appdomain.c: fix infinite recursion when adding assemblies.
8950
8951 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8952
8953         * object.c: Fix small typo to return all items for Environment.
8954         GetCommandLineArgs.
8955
8956 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8957
8958         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8959         reflection.c: more domain and assembly-unload related fixes
8960         and memory leaks plugs.
8961
8962 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8963
8964         * 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.
8965
8966 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8967
8968         * loader.c (mono_method_signature): Make this method lazy
8969         (mono_get_method_from_token): Don't computate the signature here.
8970
8971         Doing this saves quite a bit of memory. I got 90 kb on starting up
8972         monodoc. It should also save some disk reads on startup.
8973
8974         * *: MonoMethod->signature might be NULL now. You *MUST* use
8975         mono_method_signature.
8976
8977 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8978
8979         * object.c (mono_runtime_get_main_args): Return an array from the
8980         current domain here. Fixes #71938.
8981
8982 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8983
8984         * monitor.c: formatting changes to comply with the
8985         mono coding style and remove #ifdefs from the code.
8986
8987 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8988
8989         * metadata.c, private.h: remove some unneeded data
8990         and use a more compact representation for table schemas.
8991
8992 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8993
8994         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8995         to get a better distribution in hash tables.
8996         * *.c: use mono_aligned_addr_hash() where appropriate.
8997         * assembly.c: make var static.
8998
8999 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9000
9001         * domain-internals.h: Put MonoJitInfo on a diet.
9002
9003         * domain.c: Fix a warning.
9004
9005 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9006
9007         * gc.c: rework the gc handles code to reuse handles
9008         when freed.
9009
9010 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9011
9012         * domain.c: fixed long standing bug in mono_string_equal() which
9013         was brought to light with the ldstr changes.
9014
9015 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9016
9017         * reflection.c: Remove warning by adding missing include for marshal.h
9018
9019 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9020
9021         * domain.c, object.c: change the ldstr_table to hold
9022         MonoString* as keys: makes the runtime isinterned lookup
9023         faster and simplifies memory management.
9024
9025 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9026  
9027         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9028         possible to add imperative security checks before calling the icall.
9029         * reflection.c: Return security attributes on the original MonoMethod
9030         (and not the wrapped one). This fix permissions on icalls.
9031
9032 2005-01-25  Dick Porter  <dick@ximian.com>
9033
9034         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9035         the check for mktime() support actually test the mktime() return
9036         value.  "Fixes" bug 71682, though the output is still different to
9037         MS.
9038
9039 2005-01-25  Martin Baulig  <martin@ximian.com>
9040
9041         * class.c (mono_class_is_assignable_from): Make this work for
9042         generic instances.
9043
9044 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9045
9046         * marshal.c (mono_string_utf8_to_builder)
9047         (mono_string_builder_to_utf16): We might not have ownership of the
9048         string. In thise case, we need to create a new buffer.
9049
9050         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9051         be null, in which case, use the default capacity.
9052
9053 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9054
9055         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9056         GC events to the profiler.
9057
9058 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9059
9060         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9061         if you don't want the GC to run.
9062
9063 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9064
9065         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9066         start providing a GC API and keeping different implementations in
9067         their own file.
9068         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9069
9070 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9071
9072         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9073         mmap rather than allocating a huge buffer.
9074         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9075         above.
9076
9077 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9078
9079         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9080         and CheckExecutionRights.
9081         * reflection.c|h: Keep the index of the declarative security to be 
9082         used, instead of the pointer, when AOT compiler is used. Also add 
9083         class initialization when requesting demands.
9084         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9085         CheckExecutionRights. Both properties are now FALSE by default, and
9086         unmodifiable, unless the --security option is used.
9087
9088 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9089
9090         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9091         reflection.c: properly refcount images and assemblies, many leaks fixed.
9092
9093 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9094
9095         * threadpool.c: increase the timeout for threads in the thread pool to
9096         10s.  Fixes bug #67159.
9097
9098 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9099
9100         * class-internals.h: Sun's compiler insists on explicit
9101         signed on bit fields to handle then correctly.
9102
9103 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9104
9105         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9106         Make the size of the array fit only the number of invalid path
9107         chars that we have.
9108
9109         * class.c (_mono_class_get): Improve the error reporting when a
9110         class referenced is not found, to assist debugging. 
9111
9112 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9113
9114         * threads.c: fix off-by-one error.
9115         * domain.c: free data allocated in the domain.
9116
9117 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9118
9119         * reflection.c (mono_method_body_get_object): Fill out exception info
9120         as well.
9121
9122         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9123         structure.
9124         
9125 2005-01-19  Martin Baulig  <martin@ximian.com>
9126
9127         * loader.c (mono_get_method_constrained): Make this work again.
9128
9129 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9130
9131         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9132         guint16 to match the managed side.
9133
9134         * reflection.c (mono_reflection_body_get_object): Fill out local
9135         variables array.
9136
9137         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9138         as well.
9139
9140         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9141         'local_var_sig_token'.
9142
9143 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9144
9145         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9146         System.Drawing.
9147
9148         * reflection.c (mono_method_body_get_object): Handle abstract and
9149         runtime methods.
9150
9151 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9152
9153         * marshal.c, loader.c, class-internals.h, reflection.c:
9154         store the emthod data for a wrapper in an array instead of a list.
9155
9156 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9157
9158         * marshal.c: change the code to allocate memory more
9159         conservatively for method wrappers.
9160
9161 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9162
9163         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9164         fields from MonoClass to the marshal info structure where they belong.
9165
9166 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9167
9168         * class.c, object.c, class-internals.h, marshal.c: rearrange
9169         some fields and tweak some types to lower memory usage.
9170
9171 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9172
9173         * threads.c (signal_thread_state_change): Handle the case when the
9174         target thread is the current thread.
9175
9176         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9177
9178         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9179         emit_ptr_to_object_conv. 
9180
9181         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9182         marshalling. Fixes #71352.
9183
9184 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9185
9186         * metadata.h, blob.h: move table enum to blob.h so it can be included
9187         in any header.
9188         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9189         cut the size of MonoImage/MonoDynamicImage.
9190
9191 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9192
9193         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9194
9195 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9196
9197         * reflection.c, reflection.h, icall.c: add a function to check
9198         if an attribute type is defined for a metadata object.
9199
9200 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9201
9202         * object-internals.h: Added some needed fields from StringBuilder class.
9203         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9204
9205 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9206
9207         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9208         threads before shutting down the runtime.
9209
9210         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9211
9212 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9213
9214         * object-internal.h, threads.c: implement stacksize and 
9215         parameterized thread start functionality (requires
9216         matching corlib). Marked broken code for later removal.
9217
9218 2005-01-12  Martin Baulig  <martin@ximian.com>
9219
9220         * class-internals.h (MonoGenericClass): Moved the `initialized'
9221         flag to MonoDynamicGenericClass, removed `init_pending'.
9222         (MonoGenericInst): Added `is_reference' flag.
9223
9224 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9225
9226         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9227         inside the MSDOS header. Fixes #71201.
9228
9229         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9230         gc thread.
9231         (mono_domain_finalize): Ditto.
9232
9233 2005-01-12  Martin Baulig  <martin@ximian.com>
9234
9235         * class.c (mono_get_shared_generic_class): Use the cache for
9236         non-dynamic generic classes.
9237
9238         * class-internals.h (mono_class_create_generic_2): Removed
9239         function prototype, this function is now static inside class.c.
9240
9241         * class.c (mono_class_create_generic_2): Made this static, only
9242         call it from mono_class_init() and mono_class_setup_parent().
9243         (collect_implemented_interfaces_aux): Call mono_class_init() on
9244         the interfaces we collect.
9245         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9246
9247 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9248
9249         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9250         it a real thread handle.
9251
9252         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9253         MonoJitExceptionInfo, since each catch clause needs its own variable.
9254         
9255 2005-01-11  Dick Porter  <dick@ximian.com>
9256
9257         * image.c (mono_pe_file_open): New variant on mono_image_open()
9258         that does not set up the CLI metadata; used for FileVersionInfo so
9259         it can get the data for windows binaries too.
9260         
9261         * process.c (process_read_string_block): Don't read off the end of
9262         the StringTable block.
9263
9264         These both fix bug 70766.
9265
9266 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9267
9268         * gc.c: set some fields to NULL at GC cleanup time.
9269         * threads.c: if we quit the main thread, call exit ().
9270
9271 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9272
9273         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9274
9275 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9276
9277         * threads.h, threads.c, object.c: added accessor and settor for
9278         main_thread. Handle it specially when exiting from it: wait
9279         for other foreground threads to exit.
9280
9281 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9282
9283         * process.c, verify.c: remove some bloat.
9284
9285 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9286
9287         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9288         the calling convention to cdecl under win32.
9289
9290 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9291
9292         * object.c (mono_object_get_size): New function to get the size of
9293         an object instance.
9294
9295         * profiler.c (simple_allocation): Use above.
9296
9297 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9298
9299         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9300         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9301         get an appdomain by it's id and we can't assume the root's id is 0).
9302         * domain-internals.h: Change the function prototype to match.
9303         * icall.c: Change the icall table for AppDomain.
9304
9305 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9306
9307         * locales.c (string_invariant_compare_char): Only compute
9308         GUnicodeTypes in the case where we need them.  Test for ordinality
9309         first and return if so.
9310
9311         From the commit:
9312
9313                 /*
9314                  * FIXME: here we must use the information from c1type and c2type
9315                  * to find out the proper collation, even on the InvariantCulture, the
9316                  * sorting is not done by computing the unicode values, but their
9317                  * actual sort order.
9318                  */
9319
9320 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9321
9322         * loader.c: for P/Invoke methods, allow the "Internal" shared
9323         library name to refer to the calling process symbol namespace.
9324
9325 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9326
9327         * Makefile.am: Add the security manager to the build.
9328         * security-manager.c|h: New. Initialization of the security manager.
9329
9330 2005-01-07  Dick Porter  <dick@ximian.com>
9331
9332         * threads.c: 
9333         * monitor.c: Update thread state during Monitor and WaitHandle
9334         waits.  Fixes bug 71031.
9335
9336 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9337
9338         * reflection.c (property_encode_signature): Correctly handle when the
9339         property has no methods.
9340
9341 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9342
9343         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9344         
9345         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9346         fields from mb, not rmb. Fixes #71017.
9347
9348         * marshal.c (emit_ptr_to_str_conv): Add support for 
9349         ByValTStr -> string conversion. Fixes #71015.
9350
9351         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9352
9353         * mempool.c (mono_mempool_contains_addr): New helper function.
9354
9355 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9356
9357         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9358         HasSematics encoded fields.
9359         
9360         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9361         invalid string marshalling.
9362
9363         * metadata.c: Fix warnings.
9364         
9365 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9366
9367         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9368         profiler support.
9369
9370 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9371
9372         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9373         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9374         tests.
9375
9376 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9377
9378         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9379         so methods containing these can be AOTed.
9380
9381 2005-01-03  Martin Baulig  <martin@ximian.com>
9382
9383         * loader.c (find_method): Removed the hack for generic instances.
9384         (method_from_memberref): If our parent is a generic instance, pass
9385         its generic type definition to find_method() and then inflate the
9386         method.
9387         (mono_get_method_constrained): Pass the generic type definition to
9388         find_method() and inflate the method later.
9389
9390         * class-internals.h (MonoStats): Added `generic_class_count'.
9391
9392         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9393         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9394
9395         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9396         generic type definitions.
9397
9398 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9399
9400         * loader.c icall.c: Fix warnings.
9401
9402 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9403
9404         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9405         blittable types. Fixes #70864.
9406
9407 2004-12-29  Martin Baulig  <martin@ximian.com>
9408
9409         * icall.c
9410         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9411
9412         * reflection.c (mono_method_get_object): Create a
9413         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9414         call mono_get_inflated_method().
9415
9416         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9417
9418 2004-12-27  Martin Baulig  <martin@ximian.com>
9419
9420         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9421         (MonoMethodInflated): Added `inflated' field.
9422
9423         * class.c (mono_class_inflate_generic_method): Don't really
9424         inflate the method here; just set the `is_inflated' flag in the
9425         MonoMethod.
9426         (mono_class_get_inflated_method): Actually inflate the method here
9427         if it's not already inflated; we use the MonoMethodInflated's new
9428         `inflated' field as a cache.
9429
9430 2004-12-26  Martin Baulig  <martin@ximian.com>
9431
9432         * class.c
9433         (inflate_generic_class): Moved some code out of inflate_generic_type().
9434         (mono_class_inflate_generic_method): If we're already inflated,
9435         inflate the context and use the declaring method; ie. make sure
9436         the declaring method of an inflated method is always the generic
9437         method definition.
9438         (mono_class_create_from_typedef): Create
9439         `class->generic_container->context->gclass'.
9440
9441 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9442
9443         * metadata-internals.h, marshal.c, reflection.c: More
9444         MonoGHashTable->GHashTable.
9445
9446         * domain-internals.h, class.c: Change MonoGHashTable's into
9447         GHashTables for some cases where no gc stuff is used
9448
9449         All users: update apis
9450
9451 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9452
9453         * metadata.c (builtin_types): Make this `const'. Makes this get
9454         put into the shareable section.
9455         (mono_metadata_init): Casts to make gcc happy.
9456
9457 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9458
9459         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9460
9461 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9462
9463         * icall.c: Added an internal call to retrieve the position and length
9464         of assembly-level declarative security attributes (RequestMinimum, 
9465         RequestOptional and RequestRefuse). This is used by the Assembly class
9466         to re-create the corresponding permission sets.
9467
9468 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9469
9470         * marshal.c: fix the stelemref wrapper to be type correct
9471         (and faster).
9472
9473 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9474
9475         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9476         to do key & 0x7fffffff. Hashtable already does this. It just
9477         results in longer code.
9478
9479 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9480
9481         * appdomain.c: Bump corlib version.
9482         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9483         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9484         * reflection.c|h: Add functions to get declarative security infos
9485         (blob position and length) for assemblies, classes and methods.
9486
9487 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9488
9489         * reflection.c: sort the constant table (bug #70693).
9490
9491 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9492
9493         * object-internals.h, threads.c, domain.c: add accessors for
9494         the MonoThread and MonoDomain tls keys.
9495
9496 2004-12-18  Martin Baulig  <martin@ximian.com>
9497
9498         * class.c (inflate_generic_type): If we're inflating a generic
9499         instance, set `ngclass->context->container = context->container';
9500         ie. the container we inflated into.
9501
9502         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9503         inflate_generic_type() changes.
9504
9505 2004-12-17  Martin Baulig  <martin@ximian.com>
9506
9507         * class-internals.h
9508         (MonoGenericClass): Replaced `MonoType *generic_type' with
9509         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9510         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9511         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9512
9513 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9514
9515         * exception.c (mono_exception_from_token): New helper function.
9516
9517 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9518
9519         * assembly.c (mono_assembly_load_with_partial_name): Call 
9520         mono_assembly_loaded before invoking the preload hooks. Fixes
9521         #70564.
9522
9523         * object-internals.h (MonoThread): Change culture_info and 
9524         ui_culture_info into an array.
9525
9526         * threads.c: Cache culture info objects from more than one appdomain.
9527
9528         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9529         current UI culture.
9530
9531 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9532
9533         * threads.h threads.c appdomain.c: Clear the culture_info field of
9534         all threads during unloading if they point to an object in the dying
9535         appdomain.
9536
9537 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9538
9539         * culture-info.h (TextInfoEntry): New struct
9540         * object-internals.h: sync with managed
9541         * locales.c: fill the `text_info_data' field
9542         * culture-info-tables.h: update
9543
9544 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9545
9546         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9547         collector.
9548
9549 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9550
9551         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9552         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9553
9554 2004-12-12  Martin Baulig  <martin@ximian.com>
9555
9556         * mono-debug-debugger.c (write_type): If we're an enum and the
9557         builtin types have already been initialized, call mono_class_init().
9558
9559 2004-12-11  Martin Baulig  <martin@ximian.com>
9560
9561         * metadata.c (mono_metadata_load_generic_params): Added
9562         `MonoGenericContainer *parent_container' argument; automatically
9563         compute `container->is_method'; pass the correct owner to
9564         get_constraints().      
9565
9566         * reflection.c (compare_genericparam): Sort the GenericParam table
9567         according to increasing owners. 
9568
9569 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9570
9571         * profiler.c: allow disabling the default profiler.
9572
9573 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9574
9575         * decimal.c, icall.c: allow disabling System.Decimal support.
9576
9577 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9578
9579         * reflection.c: Add support for null attribute arguments.
9580
9581 2004-12-09  Martin Baulig  <martin@ximian.com>
9582
9583         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9584         names to get rid of compiler warnings.
9585
9586 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9587
9588         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9589         mono_marshal_load_type_info (). Fixes #69625.
9590         (mono_marshal_get_ptr_to_struct): Likewise.
9591
9592 2004-12-08  Martin Baulig  <martin@ximian.com>
9593
9594         * mono-debug.h: Bumped version number to 47.
9595
9596         * mono-debug-debugger.c
9597         (mono_debugger_event_handler, mono_debugger_event): Take two
9598         guint64 arguments insteed of a gpointer and a guint32.  
9599
9600 2004-12-08  Martin Baulig  <martin@ximian.com>
9601
9602         * debug-mono-symfile.h
9603         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9604         `address' to `native_offset'.
9605
9606 2004-12-08  Martin Baulig  <martin@ximian.com>
9607
9608         * class.c (mono_class_create_from_typespec): Only inflate if we
9609         either have `context->gclass' or `context->gmethod'.
9610
9611 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9612
9613         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9614
9615         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9616
9617         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9618
9619         * reflection.c (mono_assembly_get_object): Remove the workaround put
9620         in for the release.
9621         
9622         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9623
9624         * appdomain.c: Bump corlib version.
9625
9626         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9627         be visible in other appdomains.
9628
9629 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9630
9631         * threads.c: Interlocked inc and dec for longs were messed up,
9632         use a KISS based impl for this. Fixes 70234
9633
9634 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9635
9636         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9637
9638 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9639
9640         * icall.c: fix to follow policy not to allow struct
9641         arguments in icalls.
9642
9643 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9644
9645         * process.c: make the patch that handles spaces in file paths work
9646         on mono/windows too.
9647
9648 2004-12-06  Martin Baulig  <martin@ximian.com>
9649
9650         * class.c (mono_class_create_generic): Call
9651         mono_class_setup_supertypes() if we're dynamic.
9652         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9653
9654 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9655
9656         * object-internals.h: Add new fields to MonoThread.
9657
9658         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9659
9660         * icall.c threads-types.h threads.c: Add new icalls.
9661
9662         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9663
9664         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9665         managed side.
9666
9667         * appdomain.c: Bump corlib version.
9668
9669         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9670         internal assemblies. Fixes #69181.
9671
9672 2004-12-05  Martin Baulig  <martin@ximian.com>
9673
9674         * class.c (mono_class_inflate_generic_signature): Make this a
9675         no-op if `context' is NULL or we don't have any type parameters;
9676         also copy `sentinelpos'.        
9677
9678 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9679
9680         * image.c: Add unbox_wrapper_cache.
9681
9682         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9683
9684         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9685         function generator.
9686         
9687         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9688         Fixes #70173.
9689
9690         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9691         
9692 2004-12-04  Martin Baulig  <martin@ximian.com>
9693
9694         * loader.c (mono_method_get_signature_full): New public function;
9695         like mono_method_get_signature(), but with an additional
9696         `MonoGenericContext *' argument.
9697
9698         * class.c (mono_class_inflate_generic_signature): Formerly known
9699         as inflate_generic_signature(); make this public.
9700
9701 2004-12-04  Martin Baulig  <martin@ximian.com>
9702
9703         * metadata.c
9704         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9705         instead of a `MonoGenericContainer *'.  
9706         (mono_metadata_parse_array_full): Likewise.
9707         (mono_metadata_parse_signature_full): Likewise.
9708         (mono_metadata_parse_method_signature_full): Likewise.
9709         (mono_metadata_parse_generic_inst): Likewise.
9710         (mono_metadata_parse_generic_param): Likewise.
9711         (mono_metadata_parse_mh_full): Likewise.
9712         (mono_type_create_from_typespec_full): Likewise.
9713
9714 2004-12-03  Martin Baulig  <martin@ximian.com>
9715
9716         * class-internals.h (MonoGenericContainer): Replaced the
9717         `MonoGenericContext * pointer with a `MonoGenericContext'
9718         structure and made it the first element.
9719
9720 2004-12-03  Martin Baulig  <martin@ximian.com>
9721
9722         * class.c
9723         (inflate_generic_type): Set the `context->container' when creating
9724         a new MonoGenericContext.
9725         (mono_class_inflate_generic_method): Likewise.
9726         (mono_class_create_from_typespec): Just use `context->container'
9727         to get the container.
9728
9729         * loader.c (method_from_methodspec): Set `context->parent' from
9730         `context->container' - and if that's a method container, use its
9731         parent.  Also set the `context->container' when creating a new
9732         MonoGenericContext.
9733         (mono_get_method_from_token): Use just `context->container' to get
9734         the container.
9735
9736         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9737         `gclass->context->container'.
9738
9739         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9740         the `context->container' when creating a new MonoGenericContext.
9741
9742 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9743
9744         * reflection.c (compare_genericparam): Sort params with identical
9745         owner by their number. Fixes gen-111 on sparc.
9746
9747 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9748
9749         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9750         around the domain changes.
9751
9752         * appdomain.c (mono_domain_unload): Handle the case when the thread
9753         calling Unload is itself being aborted during unloading. Fixes #70022.
9754
9755         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9756
9757         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9758         checkpoint_func as an icall so it gets a wrapper.
9759         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9760         in the cross-appdomain wrappers too.
9761
9762         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9763
9764         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9765
9766         * reflection.c: Fix some memory leaks.
9767         
9768 2004-12-02  Martin Baulig  <martin@ximian.com>
9769
9770         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9771
9772         * metadata.c (generic_class_cache): New static hashtable.
9773         (mono_metadata_lookup_generic_class): New public method.
9774
9775 2004-12-02  Martin Baulig  <martin@ximian.com>
9776
9777         * class.c (mono_class_create_from_typedef): Call
9778         mono_class_setup_parent() and mono_class_create_mono_type() before
9779         parsing the interfaces.
9780
9781 2004-12-02  Martin Baulig  <martin@ximian.com>
9782
9783         * metadata.c (generic_inst_cache): New static hashtable.
9784         (mono_metadata_lookup_generic_inst): New public function.
9785         (mono_metadata_inflate_generic_inst): New public function.
9786         (mono_metadata_parse_generic_inst): New public function.
9787         (do_mono_metadata_parse_generic_class): Use the new
9788         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9789         since this'll also use the cache.
9790
9791         * reflection.c (mono_reflection_bind_generic_method_parameters):
9792         Use mono_metadata_lookup_generic_inst() to use the new cache.
9793
9794         * class.c (inflate_mono_type): Use
9795         mono_metadata_inflate_generic_inst() to inflate a generic
9796         instance; this'll also use the new cache.
9797
9798         * loader.c (method_from_methodspec): Use
9799         mono_metadata_parse_generic_inst() and
9800         mono_metadata_inflate_generic_inst() rather than parsing it
9801         manually, so we can use the new cache.
9802
9803 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9804
9805         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9806         the wait times out.
9807
9808 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9809
9810         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9811         iter->args based on whether parameters are passed in registers (i.e.
9812         MONO_ARCH_REGPARMS is defined)
9813
9814 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9815
9816         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9817         the exception message. Fixes #70070.
9818         (method_from_methodspec): Fix warnings.
9819
9820 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9821
9822         * process.c: (complete_path) return the path quoted
9823
9824 2004-12-01  Martin Baulig  <martin@ximian.com>
9825
9826         * class-internals.h (MonoGenericInst): New structure.
9827         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9828         `is_open' with `MonoGenericInst *inst'.
9829         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9830         `is_open' with `MonoGenericInst *inst'.
9831
9832 2004-11-30  Martin Baulig  <martin@ximian.com>
9833
9834         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9835
9836         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9837         to `generic_class_cache'.
9838
9839         * metadata.c
9840         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9841         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9842         (mono_generic_inst_is_valuetype): Renamed to
9843         mono_generic_class_is_valuetype().
9844
9845         * class-internals.h
9846         (MonoGenericInst): Renamed to MonoGenericClass.
9847         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9848         (MonoClass): Renamed `generic_inst' to `generic_class'.
9849         (MonoGenericContext): Renamed `ginst' to `gclass'.
9850
9851         * object-internals.h
9852         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9853
9854         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9855         mono_reflection_generic_class_initialize().
9856
9857         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9858         now known as "System.Reflection.MonoGenericClass".
9859         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9860
9861 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9862
9863         * class-internals.h: Added a flag field to MonoClass to cache the
9864         declarative security attributes actions associated with the class.
9865         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9866         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9867         applicable to the JITted method.
9868         * reflection.c|h: Added functions to extract (as flags) which security
9869         actions are available (declaratively) for a method, class or assembly.
9870         * metadata.c|h: Added functions to search the declarative security
9871         table in the metadata.
9872         
9873 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9874
9875         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9876         EXPORTEDTYPES are already in the class name cache, so there is no
9877         need to add extra code here to look at them. Just removes a bit of
9878         cruft.
9879
9880         (ves_icall_System_Environment_get_TickCount): No need for #if
9881         WINDOWS. We already have the code in io-layer.
9882
9883 2004-11-28  Martin Baulig  <martin@ximian.com>
9884
9885         * loader.c
9886         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9887         Fixes gen-112.cs.
9888
9889 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9890
9891         * assembly.c (do_mono_assembly_open): Instead of having a
9892         conditional WITH_BUNDLE, incorporate support for bundles here, by
9893         having a global `bundles' variable holding a pointer to the actual
9894         bundles. 
9895
9896         (mono_register_bundled_assemblies): New API call used by the
9897         bundle code. 
9898
9899         See mkbundle.1 for details.
9900         
9901 2004-11-27  Martin Baulig  <martin@ximian.com>
9902
9903         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9904         the vtable for generic methods.
9905
9906 2004-11-26  Martin Baulig  <martin@ximian.com>
9907
9908         * metadata.c
9909         (mono_metadata_generic_method_hash): New public function.
9910         (mono_metadata_generic_method_equal): Likewise.
9911
9912         * class-internals.h
9913         (MonoGenericContainer): Added `GHashTable *method_hash'.
9914
9915         * reflection.c (ReflectionMethodBuilder): Added
9916         `MonoGenericContainer *generic_container'.
9917         (reflection_methodbuilder_to_mono_method): Don't create a new
9918         MonoGenericContainer each time we're called.
9919         (mono_reflection_bind_generic_method_parameters): Use
9920         `container->method_hash' to cache the results so we don't create a
9921         different method if we're called several times with the same
9922         arguments.
9923
9924         * loader.c (method_from_methodspec): Use the new
9925         `container->method_hash' here, too.
9926
9927 2004-11-26  Martin Baulig  <martin@ximian.com>
9928
9929         * class.c (inflate_generic_signature): Correctly compute
9930         `res->has_type_parameters'.
9931         (mono_class_vtable): Use the `has_type_parameters' flag to
9932         determine whether we're a generic method.
9933
9934         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9935
9936 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9937
9938         * object.c (mono_runtime_run_main): Fix a small memory leak.
9939
9940 2004-11-25  Martin Baulig  <martin@ximian.com>
9941
9942         * class.c (set_generic_param_owner): Fixed the loop.
9943
9944 2004-11-25  Martin Baulig  <martin@ximian.com>
9945
9946         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9947         generic methods.
9948
9949 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9950
9951         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9952         names. Fixes #69787.
9953
9954 2004-11-24  Martin Baulig  <martin@ximian.com>
9955
9956         * class.c (mono_class_create_generic_2): If we don't have a
9957         `ginst->parent', inflate `gklass->parent' to get our parent.
9958
9959 2004-11-24  Martin Baulig  <martin@ximian.com>
9960
9961         * reflection.c (compare_genericparam): Correctly sort the
9962         GenericParam table; fixes #69779.
9963
9964 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9965
9966         * reflection.c: When writing a PE file, don't create a huge
9967         buffer in memory. Just write the arrays we have to the file.
9968         This reduces memory usage.
9969
9970         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9971         globally.
9972
9973 2004-11-17  Martin Baulig  <martin@ximian.com>
9974
9975         * class.c (mono_class_init): Don't setup `class->parent' for
9976         dynamic instances; moved this to mono_class_generic_2().
9977         (mono_class_create_generic): Also set `klass->inited' for dynamic
9978         generic instances.
9979         (mono_class_create_generic_2): Don't do anything for dynamic
9980         generic instances.  Set `klass->parent' here and also call
9981         mono_class_setup_parent() here. 
9982
9983         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9984         `MonoType *parent' argument; set `ginst->parent' before calling
9985         mono_class_create_generic_2(), so we set the correct parent.
9986
9987 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9988
9989         * reflection.c: allow getting attributes from ModuleBuilder
9990         (used by ikvm).
9991
9992 2004-11-17  Martin Baulig  <martin@ximian.com>
9993
9994         * class.c (mono_class_create_from_typedef): If a type parameter is
9995         inherited from an outer class, set its owner to that class.
9996
9997 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9998
9999         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10000           for (int*) written size. This fixes bug #69592.
10001
10002 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10003
10004         * icall.c: Added IsAuthenticodePresnet internal call.
10005         * image.c|h: New function that check a MonoImage for an Authenticode
10006         signature in the certificate PE data directory.
10007         * security.c|h: New internal call to ask the runtime if an 
10008         Authenticode signature seems referenced in the PE header.
10009
10010 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10011
10012         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10013
10014         * reflection.c (mono_image_create_pefile): Free the assembly streams
10015         after writing out the assembly file.
10016
10017         * object.c (mono_runtime_run_main): Fix small memory leak.
10018
10019         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10020         property access modifiers. Fixes #69389.
10021
10022 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10023
10024         * domain.c, object.c, object-internals.h, domain-internals.h,
10025         object.h, marshal.c: keep dynamic code info per domain.
10026
10027 2004-11-15  Martin Baulig  <martin@ximian.com>
10028
10029         * class.c (mono_type_get_name_recurse): Put type arguments in
10030         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10031         see bug #68387.
10032
10033 2004-11-15  Martin Baulig  <martin@ximian.com>
10034
10035         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10036         (mono_class_setup_vtable): When computing `the_cname' for a
10037         generic instance, don't include the namespace since we'd otherwise
10038         add it twice.
10039
10040 2004-11-15  Martin Baulig  <martin@ximian.com>
10041
10042         * class.c (mono_class_create_generic): Changed return type to void.
10043         (mono_class_create_generic_2): New public function; setup
10044         `class->method', `class->field' and `class->interfaces' here
10045         instead of in mono_class_init().
10046
10047         * class.h (mono_class_create_generic): Moved to class-internals.h.
10048
10049 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10050
10051         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10052         rather than writing to memory, write to this file. Right now,
10053         we are just writting into a buffer, and copying that. However
10054         we can avoid the buffer later.
10055
10056         (mono_dynamic_stream_reset): new function
10057
10058         * icall.c, object-internals.h: update for the above.
10059
10060 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10061
10062         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10063         have been using gc'd memory. First it is slower, unlikely
10064         the comment in the source code said, secondly, it increases
10065         our footprint to do it in the gc.
10066
10067         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10068         the method so that it does not have to copy to managed code.
10069
10070 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10071
10072         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10073
10074 2004-11-12  Martin Baulig  <martin@localhost>
10075
10076         * reflection.c (mono_image_create_token): Allow generic method
10077         definitions here, since they may appear in an `.override'; see
10078         gen-98/gen-99 for an example.
10079
10080 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10081
10082         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10083         #69365.
10084
10085         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10086         descriptive.
10087
10088 2004-11-11  Martin Baulig  <martin@ximian.com>
10089
10090         * class.c (mono_class_setup_vtable): In an explicit interface
10091         implementation, the method name now includes the arity.
10092
10093 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10094
10095         * object.c (mono_array_full_copy): Fix warning.
10096
10097 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10098
10099         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10100         mono_class_get_method_from_name() instead.
10101         
10102         * class-internals.h: Added two new types of wrappers. 
10103         Added MonoRemotingTarget enum. Added new trampoline function type, which
10104         takes an additional MonoRemotingTarget value as parameter, so it is
10105         possible to request a trampoline for a specific target.
10106         
10107         * class.c: Added new mono_class_get_method_from_name() method.
10108         
10109         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10110         general remoting sinks and one specific for cross domain calls.
10111         
10112         * debug-helpers.c: Added new wrapper names.
10113         
10114         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10115         of a remote class.
10116         
10117         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10118         
10119         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10120         with several other methods (mono_marshal_get_xappdomain_dispatch,
10121         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10122         and others) can generate a fast remoting wrapper for cross domain calls.
10123         More information can be found in docs/remoting.
10124         Other changes: Removed mono_find_method_by_name, and used
10125         mono_class_get_method_from_name instead.
10126         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10127         is stored in the remoting invoke hashtable.
10128         
10129         * marshal.h: published the new method for getting the xdomain wrapper,
10130         and also added a method for getting the adequate wrapper for a given
10131         method and target.
10132         
10133         * object-internals.h, object.c: Added a couple of methods for capying and
10134         cloning arrays.
10135         Modified mono_install_remoting_trampoline, which takes the new remoting
10136         trampoline that has a remoting target as parameter.
10137         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10138         will return the most suitable vtable for the target.
10139         Added mono_remote_class_vtable, which returns the vtable of a remote class
10140         (which can be the normal remoting vtable or the xdomain vtable).
10141         
10142         * threads.c: the xdomain invoke and dispatch wrappers must also be
10143         protected against interruptions.
10144
10145 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10146
10147         * icall.c: use memmove in BlockCopyInternal when the source and
10148         destination arrays are the same.
10149
10150 2004-11-09  Martin Baulig  <martin@ximian.com>
10151
10152         * class-internals.h (MonoGenericContainer): Removed `method' and
10153         `signature', replaced them with `is_method' and `is_signature'
10154         flags.  Added `context'.
10155
10156         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10157         instead of a `MonoGenericContainer *'.
10158
10159         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10160         for dynamic type parameters.
10161         (mono_metadata_load_generic_params): Setup `container->context'.
10162
10163         * reflection.c (mono_reflection_setup_generic_class): Setup
10164         `tb->generic_container->context'.
10165         (do_mono_reflection_bind_generic_parameters): Use
10166         mono_class_inflate_generic_type() to correctly inflate types,
10167         rather than using our own hack just for MONO_TYPE_VAR.
10168
10169 2004-11-09  Martin Baulig  <martin@ximian.com>
10170
10171         * class.c (mono_class_inflate_generic_method): Small fix; don't
10172         crash here.
10173
10174         * icall.c
10175         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10176         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10177         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10178         (ves_icall_Type_BindGenericParameters): Likewise.
10179         (ves_icall_Type_get_IsGenericInstance): Likewise.
10180         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10181         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10182         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10183         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10184
10185 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10186
10187         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10188         assembly versions and public key tokens. Fixes #69113.
10189
10190 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10191
10192         * metadata.c: fix bug introduced with the type cache changes
10193         on 2004-11-06.
10194
10195 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10196
10197         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10198         the MonoClass pointer instead of the token in exception clauses.
10199         * reflection.c: updates for the above and make the code not depend
10200         on the structure of MonoExceptionClause.
10201
10202 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10203
10204         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10205         Add support for dynamic assemblies. Fixes #69114.
10206
10207         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10208
10209 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10210
10211         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10212         since most only those methods use it. the code member of
10213         MonoMethodPInvoke was dead, so that can be removed too. Also,
10214         remove inline_count (again, not used), and move slot so that it
10215         can share bits with some other flags. This saves 8 bytes in the
10216         structure and gives us about 50 kb back for mcs helloworld.cs
10217
10218         * *.[ch]: Do naming changes for the above.
10219
10220         * loader.c (mono_method_get_header): Lazily init the header
10221         on first access.
10222         (mono_get_method_from_token): don't init the header here
10223         (mono_free_method): the header may never be allocated
10224
10225         Overall, this saves 150 kb of unmanaged allocations
10226         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10227         memory at runtime.
10228         
10229         * loader.c, loader.h (mono_method_get_header): new accessor.
10230
10231         * *.[ch]: use the above method. Prepares us to lazily load
10232         the header.
10233
10234         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10235         three warnings, which are actual bugs (see 69206).
10236
10237         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10238         unused. Saves a cool 4 bytes / method.
10239
10240 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10241
10242         * metadata.c (builtin_types): Add types for System.Object here.
10243         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10244         for a class or valuetype from klass->this_arg or klass->byval_arg.
10245
10246         On mcs for a hello world, this gets us down from 21836 MonoType's
10247         to 14560.
10248
10249         (mono_metadata_free_type): Account for the above change.
10250
10251 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10252
10253         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10254         exception instead of asserting if name is null.
10255         (ves_icall_System_AppDomain_GetData): Ditto.
10256
10257 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10258
10259         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10260         EnumBuilder.
10261
10262         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10263         Return NULL when the domain does not have entry_assembly set.
10264
10265         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10266         Add a 'resource_modules' argument.
10267         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10268
10269         * reflection.c (mono_reflection_create_runtime_class): Move setting
10270         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10271         for enums too.
10272
10273         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10274         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10275         Throw an ArgumentNullException if 'ptr' is null.
10276
10277         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10278         assemblies here. Fixes #69020.
10279
10280 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10281
10282         * reflection.c (build_compressed_metadata): Fix the previous patch for
10283         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10284         the stack.
10285
10286 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10287
10288         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10289         the cultures is false. Fixes #69090.
10290
10291         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10292         detected by valgrind.
10293         
10294         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10295         TypeResolve multiple times for the same type. Fixes #65577.
10296
10297 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10298
10299         * marshal.c: Avoid using ldftn to call managed functions. It is
10300         much slower than just a call.
10301
10302         * reflection.c (mono_module_get_object): free the basename we
10303         allocate here from glib.
10304         
10305         * reflection.c (ensure_runtime_vtable): make sure to free
10306         overrides.  Also, we were allocating an array of MonoMethod not an
10307         array of MonoMethod*.
10308
10309         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10310
10311         * image.c (mono_image_close): free image->guid here.
10312
10313 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10314
10315         * reflection.c: Fix some spec conformance issues with the PE file
10316         structures so mcs compiled apps run on the Net 2.0 beta.
10317
10318 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10319
10320         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10321         Implement this. Fixes #67264.
10322
10323         * debug-helpers.h debug-helpers.c marshal.c: Move 
10324         mono_find_method_by_name to debug-helpers.c.
10325
10326 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10327
10328         * object.c (mono_release_type_locks): type_initialization_hash is
10329         a GHashTable.
10330
10331         * reflection.c object.c object-internals.h: Fix warnings.
10332
10333         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10334         without accessors. Fixes #61561.
10335
10336         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10337         application base from the root domain if not set. Fixes #65641.
10338         (mono_runtime_init): Fix warning.
10339
10340 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10341
10342         * appdomain.c: call mono_thread_pool_init.
10343         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10344         of worker threads based on the number of CPUs and the environment
10345         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10346         for non-windows (windows) systems.
10347
10348 2004-10-27  Chris Toshok  <toshok@ximian.com>
10349
10350         * mono-debug-debugger.c (write_class): don't call mono_class_init
10351         here, as even with the check for (!klass->init_pending), we get
10352         into a situation where we're hitting cycles in class
10353         initialization.  Fixes #68816.
10354
10355 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10356
10357         * image.c: Avoid overwriting values in the loaded_images_hash when an
10358         assembly is loaded multiple times. Fixes #61152.
10359
10360         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10361         so multiple satellite assemblies for the same name can be loaded.
10362         Fixes #68259.
10363
10364         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10365         not NULL.
10366
10367         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10368         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10369
10370         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10371         pending finalizers are not invoked after the appdomain has been 
10372         unloaded. Fixes #67862.
10373
10374 2004-10-22  Martin Baulig  <martin@ximian.com>
10375
10376         * mono-debug-debugger.c
10377         (mono_debugger_runtime_invoke): Don't box valuetypes.
10378
10379 2004-10-22  Chris Toshok  <toshok@ximian.com>
10380
10381         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10382         don't hide private methods.
10383
10384 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10385
10386         * icall.c: Allows the runtime to "share" (when known) the public key
10387         token of an assembly. This avoid the need to recalculate the token 
10388         (from the public key) in managed code.
10389
10390 2004-10-21  Chris Toshok  <toshok@ximian.com>
10391
10392         * debug-helpers.c (append_class_name): argh, revert last patch.
10393         
10394 2004-10-21  Chris Toshok  <toshok@ximian.com>
10395
10396         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10397         not '/', so that it matches what the debugger uses to look up
10398         methods.
10399
10400 2004-10-21  Martin Baulig  <martin@ximian.com>
10401
10402         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10403         public method; this is called each time an exception is thrown and
10404         allows the debugger to use exception catch points.
10405
10406 2004-10-21  Martin Baulig  <martin@ximian.com>
10407
10408         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10409         the stack pointer and the exception object in some struct and pass
10410         that to the debugger.
10411
10412 2004-10-21  Chris Toshok  <toshok@ximian.com>
10413
10414         * mono-debug-debugger.c (do_write_class): add instance/static
10415         event support.  We don't expose "raise" or "other" yet.
10416         (event_is_static): new method.
10417
10418 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10419
10420         * mono-debug-debugger.c
10421         (mono_debugger_handle_exception): Remove
10422         bogus return value for fussy compilers.
10423
10424 2004-10-20  Martin Baulig  <martin@ximian.com>
10425
10426         * mono-debug-debugger.c
10427         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10428         (mono_debugger_handled_exception): Likewise.
10429
10430 2004-10-20  Martin Baulig  <martin@ximian.com>
10431
10432         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10433         MONO_DEBUGGER_EVENT_EXCEPTION.
10434
10435         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10436         public function to send the debugger a notification for an
10437         exception and inform it about a catch/finally clause.
10438
10439 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10440
10441         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10442         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10443         fix 2.95 build. 
10444
10445         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10446
10447 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10448
10449         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10450         marshalled as [In,Out]. Fixes #58325.
10451
10452 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10453
10454         * reflection.c (mono_method_body_get_object): Implement some fields.
10455
10456 2004-10-12  Martin Baulig  <martin@ximian.com>
10457
10458         * reflection.c (mono_reflection_bind_generic_parameters): Small
10459         fix, correctly retrieve our parent from a generic instance.
10460
10461 2004-10-12  Martin Baulig  <martin@ximian.com>
10462
10463         * metadata.c (mono_metadata_generic_param_equal): We always have
10464         an owner.
10465
10466         * class.c
10467         (mono_class_from_generic_parameter): We need to have an owner.
10468         (my_mono_class_from_generic_parameter): Likewise.
10469
10470         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10471         mono_reflection_create_generic_class() and added a new
10472         mono_reflection_setup_generic_class().  
10473         (mono_reflection_initialize_generic_param): If we're a nested
10474         generic type and inherited from the containing class, set our
10475         owner to the outer class.
10476
10477 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10478
10479         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10480
10481         * reflection.c (mono_method_body_get_object): New function to create
10482         a MethodBody object.
10483
10484         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10485
10486 2004-10-11  Martin Baulig  <martin@ximian.com>
10487
10488         * metadata.c (_mono_metadata_type_equal): Renamed to
10489         do_mono_metadata_type_equal() and made static.
10490
10491 2004-10-11  Martin Baulig  <martin@ximian.com>
10492
10493         * appdomain.c: Bump corlib version number to 28.
10494
10495 2004-10-10  Martin Baulig  <martin@ximian.com>
10496
10497         * class-internals.h
10498         (MonoGenericInst): Added `MonoGenericContainer *container'.
10499         (MonoGenericMethod): Likewise.
10500         (MonoGenericContext): Likewise.
10501         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10502
10503         * metadata.c
10504         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10505         (do_mono_metadata_parse_generic_inst): Likewise.
10506         (mono_metadata_parse_type_full): New public method.  This is the actual
10507         mono_metadata_parse_type() implementation - with an additional
10508         `MonoGenericContainer *' argument.
10509         (mono_metadata_parse_array_full): Likewise.
10510         (mono_metadata_parse_signature_full): Likewise.
10511         (mono_metadata_parse_method_signature_full): Likewise.
10512         (mono_metadata_parse_mh_full): Likewise.
10513         (mono_type_create_from_typespec): Likewise.
10514         (mono_metadata_interfaces_from_typedef_full): New public method;
10515         this is similar to the other _full() methods, but we take a
10516         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10517         (mono_metadata_parse_generic_param): Take an additional
10518         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10519         from that container.
10520         (mono_metadata_generic_param_equal): New static method to compare
10521         two type parameters.
10522         (_mono_metadata_type_equal): New static method; takes an
10523         additional `gboolean signature_only' argument - if true, we don't
10524         compare the owners of generic parameters.
10525         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10526         with a TRUE argument - do a signature-only comparision.
10527
10528         * loader.c: Use the new _full() methods and pass the
10529         MonoGenericContainer to them.
10530
10531         * object-internals.h (MonoReflectionTypeBuilder): Added
10532         `MonoGenericContainer *generic_container' field.
10533         (MonoReflectionMethodBuilder): Likewise.
10534
10535 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10536
10537         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10538         case initial images of dynamic assemblies.
10539
10540         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10541
10542         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10543
10544         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10545         length of event->other array.
10546         (typebuilder_setup_events): Ditto.
10547
10548         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10549         'assembly_by_name' and add an 'assemblies' list.
10550
10551         * assembly.h assembly.c: Add a new search hook for determining whenever
10552         an assembly is already loaded. Use this instead of searching in the
10553         loaded_assemblies list.
10554
10555         * domain.c appdomain.c: Implement the new search hook so loaded 
10556         assemblies are now scoped by appdomain. Fixes #67727.
10557
10558 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10559
10560         * threads.c (mono_thread_attach): Initialize synch_lock field so
10561         mono_thread_detach works again.
10562
10563         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10564         'lib' too. Fixes #63130.
10565
10566 2004-10-06  Jackson Harper  <jackson@ximian.com>
10567
10568         * culture-info-tables.h: regenerated.
10569
10570 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10571
10572         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10573         implemented by other interfaces in the result. Fixes #65764.
10574         
10575         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10576         Handle unloadable modules without crashing.
10577
10578         * image.c (load_modules): Revert the previous patch since modules must
10579         have a fixed index inside the array.
10580         
10581         * image.c (load_modules): Don't include native modules in the modules
10582         array.
10583
10584 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10585
10586         * reflection.h: Add param_defaults field.
10587
10588         * reflection.c: Add support for parameter defaults in dynamic methods.
10589         Fixes #64595.
10590
10591         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10592         an empty string when a type has no namespace. Fixes #64230.
10593
10594 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10595
10596         * tabledefs.h: Added "internal" security actions to support non-CAS
10597         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10598         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10599
10600 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10601
10602         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10603         constructor of abstract class. Fixes #61689.
10604
10605 2004-10-04  Martin Baulig  <martin@ximian.com>
10606
10607         * class-internals.h (MonoGenericContainer): New type.
10608         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10609         `MonoGenericContainer *generic_container'.
10610         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10611         `MonoGenericContainer *generic_container'.
10612
10613         * metadata.c (mono_metadata_load_generic_params): Return a
10614         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10615         removed the `num' argument.
10616
10617 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10618
10619         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10620         for dynamic images.
10621
10622         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10623         machine fields.
10624
10625         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10626
10627         * reflection.c: Save pe_kind and machine values into the generated
10628         image file.
10629
10630         * appdomain.c: Bump corlib version number.
10631
10632         * object-internals.h: Reorganize layout of LocalBuilder.
10633
10634         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10635         New helper function.
10636
10637         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10638         created MonoType for dynamic types. Fixes #66180.
10639
10640 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10641
10642         * threadpool.c: the ares hashtable needs a critical section around it.
10643         this prevents some nasty segfaults
10644
10645 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10646
10647         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10648         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10649         bug 67324).
10650         
10651 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10652
10653         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10654         
10655 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10656
10657         * image.c: Always canonicalize image file names, to avoid loading
10658         the same assembly twice when referenced using a relative path.
10659
10660 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10661
10662         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10663
10664         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10665
10666         * marshal.c: Fix warnings.
10667
10668 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10669
10670         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10671         attempting to marshal the delegate_trampoline as the method_addr.
10672         This patch has a static hashtable of marshalled delegates so that 
10673         we can map delegate_trampoline addresses back to delegates.  This
10674         allows a delegate passed to managed code to be passed back into native
10675         code.  Fixes #67039
10676
10677 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10678
10679         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10680
10681         * reflection.c (method_encode_code): Align method headers properly.
10682         Fixes #66025.
10683
10684 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10685
10686         * marshal.c: In the runtime invoke wrapper, reset the abort
10687         exception if it is cached. This avoids the automatic rethrowal of 
10688         the exception after the catch of the wrapper. Also check for pending
10689         interruptions before calling the managed method. This is done using
10690         the new method emit_thread_force_interrupt_checkpoint, since the
10691         normal checkpoint method is ignored when running the invoke wrapper.
10692         * object.c: If the abort exception is rethrown, set the abort_exc
10693         field of the thread, so it will be rethrown aftere every catch.
10694         * threadpool.c: Only run an interruption checkpoint if what has been
10695         requested is a stop of the thread (aborts will be ignored).
10696         * threads.c: By default, a thread will now never be interrumped while
10697         running the runtime invoke wrapper (this ensures that runtime_invoke
10698         will always return to the caller if an exception pointer is provided).
10699         There is a new special method mono_thread_force_interruption_checkpoint()
10700         to force an interruption checkpoint even if running a protected
10701         wrapper, which is used by the same runtime invoke wrapper to do a check
10702         at a safe point.
10703
10704 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10705
10706         * object.c, object-internals.h: Implemented mono_release_type_locks,
10707         which releases the cctor locks held by a thread.
10708         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10709         by a thread. Added mono_thread_exit() method to be used to safely stop
10710         a thread.
10711
10712 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10713
10714         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10715         Move null check before dereference.  Avoid indexing beyond the end
10716         of the 'modules' array.
10717
10718 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10719
10720         * metadata-internals.h (MonoImage): Add module_count field.
10721         * image.c (load_modules): Set image->module_count.
10722         (mono_image_load_file_for_image): Use image->module_count.
10723         * reflection.c (mono_image_load_module): Append to image->modules array 
10724         of dynamic assembly.
10725         (mono_module_get_object): Fix loop to actually increment index.
10726         Use image->module_count.
10727         * assembly.c (mono_assembly_load_references): Use image->module_count.
10728         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10729         Likewise.
10730
10731 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10732
10733         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10734         Avoid assert on generic types.
10735
10736 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10737
10738         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10739
10740         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10741
10742         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10743         function to convert a MarshalSpec structure to its managed counterpart.
10744
10745         * reflection.c: Fix warnings.
10746         
10747         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10748         field.
10749
10750         * icall.c (mono_create_icall_signature): Fix build.
10751
10752 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10753
10754         * icall.c: Add MakePointType icall.
10755
10756         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10757         warnings.
10758
10759 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10760
10761         * threadpool.c: reuse allocated slots in the queue.
10762
10763 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10764
10765         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10766
10767         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10768
10769         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10770         previous change.
10771
10772         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10773         ThrowOnUnmappableChar.
10774
10775         * icall.c (ves_icall_Type_GetPacking): New icall.
10776
10777 2004-09-24  Martin Baulig  <martin@ximian.com>
10778
10779         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10780
10781 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10782
10783         * appdomain.c:
10784         (mono_domain_set): allow setting a domain that is being unloaded.
10785         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10786         being unloaded.
10787
10788 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10789
10790         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10791         the GetCustomAttributes icall.
10792
10793 2004-09-23  Martin Baulig  <martin@ximian.com>
10794
10795         * object-internals.h (MonoReflectionGenericParam): Replaced
10796         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10797         with `guint32 attrs'.
10798
10799 2004-09-23  Martin Baulig  <martin@ximian.com>
10800
10801         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10802
10803 2004-09-23  Martin Baulig  <martin@ximian.com>
10804
10805         * object-internals.h (GenericParameterAttributes): New enum.
10806
10807 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10808
10809         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10810         
10811         * class.c (init_events): Fill out event->other field.
10812
10813         * class.c: Fix warnings.
10814
10815         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10816
10817 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10818
10819         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10820         walk which doesn't supply the IL offset.
10821
10822 2004-09-22  Martin Baulig  <martin@ximian.com>
10823
10824         * reflection.c (mono_reflection_setup_internal_class): If we're
10825         System.ValueType, System.Object or System.Enum, set
10826         `klass->instance_size' and create the vtable.
10827         (mono_reflection_create_internal_class): If we're an enum type,
10828         get the base class from our current corlib.
10829
10830 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10831
10832         * reflection.h (MonoResolveTokenError): New type.
10833
10834         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10835         icall.
10836
10837         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10838
10839 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10840
10841         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10842         Support also calling constructors, but only for already allocated objects.
10843
10844 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10845
10846         * reflection.c (type_get_qualified_name): If the klass is null
10847         return the typename to avoid a NullRefEx.
10848         (encode_cattr_value): Get the qualified name of the boxed type,
10849         not the underlying enumtype.  Fixes #62984.
10850
10851 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10852
10853         * marshal.c: Fix problems with previous checkin.
10854
10855 2004-09-21    <vargaz@freemail.hu>
10856
10857         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10858         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10859
10860         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10861
10862 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10863
10864         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10865         should only return a type for pointers, arrays, and passbyref types.
10866         Fixes bug #63841.
10867
10868 2004-09-21  Martin Baulig  <martin@ximian.com>
10869
10870         * domain.c (mono_debugger_check_runtime_version): New public
10871         function.
10872
10873         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10874
10875 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10876
10877         * reflection.c: Added missing sort to the declarative security 
10878         attributes table. MS implementation stops seeing the attributes if the
10879         token number regress in the table (as shown by ildasm and permview).
10880
10881 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10882
10883         * object-internals.h (MonoReflectionModule): Add 'token' field.
10884         
10885         * reflection.c (mono_reflection_get_token): Add support for Module
10886         and Assembly.
10887         (mono_module_get_object): Set 'token' field.
10888         (mono_module_file_get_object): Set 'token' field.
10889
10890         * icall.c: Add new Assembly and Module icalls.
10891
10892         * appdomain.c: Bump corlib version.
10893
10894 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10895
10896         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10897         tokens of metadata objects.
10898
10899         * reflection.h reflection.c (mono_reflection_get_token): New function
10900         to obtain the token of a metadata object.
10901
10902         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10903
10904 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10905
10906         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10907         
10908         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10909
10910 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10911
10912         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10913         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10914         AssemblyBuilder to access the permissions set in the class lib.
10915         * reflection.c: Added security attributes encoding step in 
10916         mono_image_build_metadata.
10917         * tabledefs.h: Added new security actions defined in 2.0:
10918         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10919
10920 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10921
10922         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10923         macro parameter.
10924
10925 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10926  
10927         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10928           finalized. There where random SIGSEVs at program termination, when
10929           an object being finalized was trying to do a string comparison and
10930           the current culture was already finalized.
10931  
10932 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10933
10934         * threads.c: call thread_cleanup before finishing the thread if we get
10935         there.
10936
10937 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10938
10939         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10940         assemblies from the parent. Fixes #65665.
10941
10942 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10943
10944         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10945         modifiers.
10946
10947 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10948
10949         * reflection.h: add prototype for mono_get_dbnull_object
10950         * reflection.c: add prototypes for get_default_param_value_blobs 
10951         and mono_get_object_from_blob for fussier compilers
10952
10953 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10954  
10955         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10956         false deadlock checks in class initialization.
10957  
10958 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10959
10960         * image.c (mono_image_addref): Fix comment.
10961
10962         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10963         possible.
10964
10965 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10966
10967         * reflection.c (mono_param_get_objects): Modified to return
10968         ParameterInfo.DefaultValue object.
10969
10970         (get_default_param_value_blobs):
10971         (mono_get_object_from_blob):
10972         (mono_get_dbnull_object): New helper routines. 
10973
10974         * object.c (mono_get_constant_value_from_blob): New helper routine
10975         carved out from get_default_field_value ()
10976
10977         * object-internals.h (mono_get_constant_value_from_blob): Added
10978         function declaration.
10979
10980 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10981
10982         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10983         referenced assemblies. Fixes #62135.
10984
10985         * exception.h exception.c (mono_get_exception_file_not_found2): New
10986         helper function.
10987
10988 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10989
10990         * class.h class.c: Add mono_type_get_underlying_type ().
10991
10992 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10993
10994         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10995         Fix GetTypes() to support dynamically created assemblies.
10996
10997 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10998
10999         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11000         
11001         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11002         previous patch.
11003
11004         * reflection.h reflection.c loader.c: Allow dynamic construction of
11005         pinvoke methods. Fixes #65571.
11006         
11007         * reflection.c (mono_reflection_get_type): Revert previous change since
11008         it causes regressions.
11009
11010 2004-09-08  Martin Baulig  <martin@ximian.com>
11011
11012         * class.c (class_compute_field_layout): Don't call
11013         mono_class_layout_fields() for open generic instances.
11014
11015 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11016         * threads.c appdomain.c: fix typo in GC macro
11017
11018 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11019
11020         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11021         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11022
11023 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11024
11025         * image.c (mono_image_close): Applied patch from 
11026         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11027         assembly is loaded multiple times from data.
11028         
11029         * image.c (mono_image_open): Fix warning.
11030
11031 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11032
11033         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11034         once. Fixes #58334.
11035         
11036         * reflection.c (mono_reflection_create_runtime_class): Initialize
11037         klass->nested_classes. Fixes #61224.
11038
11039 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11040
11041         * threads.c: sched_yield() on exit, to allow threads to quit.
11042
11043 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11044
11045         * object.c (mono_unhandled_exception): Remove leftover debug code.
11046
11047 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11048
11049         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11050
11051 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11052
11053         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11054         
11055         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11056
11057 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11058
11059         * marshal.c (emit_marshal_array): Null terminate string arrays.
11060         
11061         * marshal.c (raise_auto_layout_exception): Fix warning.
11062
11063         * reflection.c (mono_param_get_objects): Initialize the default value
11064         with DBNull.Value, not null. Fixes #62123.
11065
11066 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11067
11068         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11069         throw an exception with a cute explanation.
11070
11071 2004-09-06  Dick Porter  <dick@ximian.com>
11072
11073         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11074         Close the new process's thread handle, as we don't use it.  The
11075         handle stays around forever otherwise.
11076
11077 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11078
11079         * object.c (arith_overflow): Fix warning.
11080
11081         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11082         calling conventions in method refs. Fixes #65352.
11083
11084         * reflection.c: Fix warnings.
11085
11086 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11087
11088         * icall.c: Add a new icall for Array.Clear
11089
11090 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11091
11092         * object.c: When allocating an array, we have to throw
11093         an overflow exception if any of the lengths are < 0.
11094
11095 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11096
11097         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11098         properly. Also move implementation of string array marshalling to 
11099         managed code. Fixes #42316.
11100
11101 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11102
11103         * assembly.c: provide more information when loading an assembly fails.
11104
11105 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11106
11107         * filewatcher.c: don't expect the development fam package to be
11108         installed.
11109
11110 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11111
11112         * marshal.c: Make a copy of the signature cookie since it will be
11113         freed by the caller.
11114         
11115         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11116
11117         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11118
11119         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11120         marshal specs.
11121
11122         * marshal.c: More refactoring.
11123         
11124         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11125         smaller functions.
11126
11127 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11128
11129         * object.c: In mono_message_invoke, fill the output parameter array after
11130           calling the managed method (it was done before the call). This fixes
11131           bug #59299.
11132
11133 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11134
11135         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11136         as well.
11137
11138 2004-09-02  Martin Baulig  <martin@ximian.com>
11139
11140         * class.c (mono_class_instance_size): Don't allow generic type
11141         definitions or open generic instances.
11142         (mono_class_array_element_size): If we're a value type, call
11143         mono_class_instance_size() on the original class.
11144
11145         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11146         handle generic instances.
11147
11148         * mono-debug-debugger.c (write_type): Handle generic instances
11149         like classes.
11150
11151 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11152
11153         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11154         the allocation request fails. Fixes #65089.
11155
11156         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11157         
11158         * object.c (mono_runtime_free_method): New function to free a dynamic
11159         method.
11160
11161         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11162         delegate trampoline.
11163
11164         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11165         with hasthis as dynamic,
11166
11167         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11168
11169         * domain.c (mono_jit_info_table_remove): New function to remove an
11170         entry from the jit info table.
11171
11172         * class-internals.h (MonoMethod): Add 'dynamic' field.
11173
11174         * loader.c: Fix warnings.
11175
11176 2004-09-01  Martin Baulig  <martin@ximian.com>
11177
11178         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11179         instead of mono_debugger_lock() because the latter one is a no-op
11180         unless running in the debugger.
11181
11182 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11183
11184         * class.c (class_compute_field_layout): Classes with auto-layout or
11185         reference fields are not blittable.
11186         
11187 2004-09-01  Dick Porter  <dick@ximian.com>
11188
11189         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11190         mono_image_get_filename() to get the assembly location.
11191
11192         * icall.c:
11193         * metadata.h: Fix compile warnings
11194
11195 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11196
11197         * class.c (class_compute_field_layout): System.Object is blittable.
11198
11199         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11200         as in/out. Fixes #59909.
11201
11202 2004-09-01  Martin Baulig  <martin@ximian.com>
11203
11204         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11205         mono_metadata_generic_inst_is_valuetype() if we're a generic
11206         instance to check whether our underlying type is a reference type.
11207
11208 2004-09-01  Martin Baulig  <martin@ximian.com>
11209
11210         * metadata.c (mono_type_size): If we're a generic instance, call
11211         mono_class_value_size() for value types.
11212
11213 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11214
11215         * marshal.c: Implement more custom marshalling functionality. Fixes
11216         #64915.
11217
11218 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11219
11220         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11221
11222 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11223
11224         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11225
11226         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11227
11228         * icall.c: Fix some warnings.
11229
11230         * threads.c (abort_appdomain_thread): Fix unref errors.
11231         (mono_thread_current): Fix THREAD_DEBUG define.
11232
11233 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11234
11235         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11236
11237         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11238
11239 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11240
11241         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11242         string arrays.
11243
11244 2004-08-28  Martin Baulig  <martin@ximian.com>
11245
11246         * metadata.c
11247         (mono_metadata_generic_inst_is_valuetype): New public function.
11248
11249         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11250         mono_metadata_generic_inst_is_valuetype() if we're a generic
11251         instance to check whether our underlying type is a valuetype.
11252
11253 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11254
11255         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11256         #63768.
11257
11258 2004-08-25  Martin Baulig  <martin@ximian.com>
11259
11260         * loader.c (mono_get_method_from_token): Abstract methods can also
11261         be generic and thus have type parameters.
11262
11263         * metadata-internals.h
11264         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11265
11266         * reflection.c (mono_image_get_generic_param_info): Don't create a
11267         metadata row, just add an entry to the `gen_params' array.
11268         (build_compressed_metadata): Sort the `gen_params' array and then
11269         actually create the metadata.
11270
11271 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11272
11273         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11274
11275 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11276
11277         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11278
11279 2004-08-24  Martin Baulig  <martin@ximian.com>
11280
11281         * class.cs (mono_class_is_subclass_of): Like an interface, a
11282         generic instance also derives from System.Object.
11283
11284 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11285
11286         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11287         custom modifiers to be in any order. Fixes #61990.
11288
11289 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11290
11291         * object.c: Register mono_object_new_fast icall.
11292         
11293         * object.c (mono_class_get_allocation_ftn): Return to calling
11294         mono_object_new_fast, since it seems faster to compute the object 
11295         size in unmanaged code than passing it as a parameter.
11296
11297         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11298
11299         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11300         this function with Boehm as the oom handler, so we don't have to check
11301         the result of GC_malloc.
11302
11303         * object.c: Remove checks for oom.
11304
11305         * object.h object.c (mono_class_get_allocation_ftn): New function to
11306         return the icall which can be used to allocate an instance of a given
11307         class. 
11308
11309         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11310
11311         * class-internals.h: Add 'enabled' field.
11312
11313 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11314
11315         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11316
11317 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11318         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11319         value 0x0010.
11320
11321 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11322
11323         * appdomain.c: use the Tls function for appdomain too,
11324         at Zoltan's request. Actually return in mono_context_get
11325
11326         * appdomain.c, profiler.c, threads.c: use __thread
11327
11328 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11329
11330         * appdomain.c threads.c: Call GC_CreateThread on windows.
11331
11332         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11333         multiple libraries since this don't work on windows.
11334
11335 2004-08-18  Martin Baulig  <martin@ximian.com>
11336
11337         * class-internals.h
11338         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11339         MonoMethodHeader.
11340
11341         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11342         MonoMethodNormal since we also need it for abstract and interface
11343         methods.
11344
11345         * reflection.c
11346         (build_compressed_metadata): Sort the GenericParam table.
11347         (mono_image_create_token): Added `gboolean create_methodspec'
11348         argument; this is false when generating a MethodImpl token.
11349         (reflection_methodbuilder_to_mono_method): Abstract and interface
11350         methods may also have generic parameters.
11351
11352 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11353
11354         * appdomain.c: thread local alloc
11355
11356 2004-08-17  Martin Baulig  <martin@ximian.com>
11357
11358         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11359
11360         * icall.c
11361         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11362         argument.
11363
11364         * class.c (mono_type_get_full_name): New public function.
11365         (mono_type_get_name): Don't include the type arguments.
11366
11367 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11368
11369         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11370         for inclusion into the mono executable.
11371
11372 2004-08-16  Martin Baulig  <martin@ximian.com>
11373
11374         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11375         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11376
11377 2004-08-14  Martin Baulig  <martin@ximian.com>
11378
11379         * class.c (dup_type): Also copy the `byref' field.
11380
11381 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11382
11383         * reflection.c (create_dynamic_mono_image): Revert the last change 
11384         since it breaks bootstrap.
11385
11386 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11387
11388         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11389
11390         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11391         not free them with g_free.
11392
11393 2004-08-11  Martin Baulig  <martin@ximian.com>
11394
11395         * reflection.c (mono_reflection_setup_internal_class): Also call
11396         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11397
11398 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11399
11400         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11401         called during default (first) AppDomain creation. Keep track of
11402         Evidence when loading assemblies.
11403
11404 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11405
11406         * opcodes.c, opcodes.h: reduce runtime relocations.
11407
11408 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11409
11410         * culture-info.h, locales.c: fixes and chages to sue the new
11411         optimized format of the locale data.
11412         * culture-info-tables.h: regenerated.
11413
11414 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11415         
11416         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11417
11418 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11419
11420         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11421         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11422         * domain-internals.h: icall declaration.
11423         * icall.c: icall registration.
11424         * object-internals.h: New fields in MonoAssembly for CAS.
11425
11426 2004-08-05  Duncan Mak  <duncan@ximian.com>
11427
11428         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11429         CEE_LDELEM_ANY.
11430
11431 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11432
11433         * reflection.c: fix to deal with object[] arrays in custom ctors
11434         (bug #62550).
11435
11436 2004-08-05  Martin Baulig  <martin@ximian.com>
11437
11438         * class.c (mono_class_array_element_size): Added support for
11439         generic instances and correctly handle "recursive" types.
11440
11441 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11442
11443         * assembly.c: Fix warnings.
11444
11445 2004-08-04  Martin Baulig  <martin@ximian.com>
11446
11447         * class.c
11448         (mono_type_get_name_recurse): Added `gboolean include_arity'
11449         argument specifying whether or not we should include the generic
11450         arity in the type name.
11451         (_mono_type_get_name): New static function.
11452         (mono_class_setup_vtable): If we're a generic instance, don't
11453         include the generic arity in the names of explicit method
11454         implementations.        
11455
11456 2004-08-03  Martin Baulig  <martin@ximian.com>
11457
11458         * class.c (mono_type_get_name_recurse): Enclose the generic type
11459         arguments in `<', '>'.
11460
11461 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11462
11463         * gc.c: make GC warning messages use the trace API, they are just
11464         noise to most of the users.
11465
11466 2004-08-03  Martin Baulig  <martin@ximian.com>
11467
11468         * debug-mono-symfile.c (read_string): Correctly read the string.
11469
11470 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11471
11472         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11473         
11474         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11475         icalls.
11476         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11477
11478 2004-07-30  Martin Baulig  <martin@ximian.com>
11479
11480         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11481         Reflect latest symbol writer changes.   
11482
11483 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11484
11485         * object.c: always create an object if null is passed
11486         to Invoke() where a valuetype is expected.
11487
11488 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11489
11490         * marshal.c (mono_marshal_init): make managed
11491         signatures match native ones better for 64bits.
11492
11493 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11494
11495         * appdomain.c: hack to build correctly the private bin path on windows.
11496         Fixes bug #61991.
11497
11498 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11499
11500         * assembly.c: Load mscorlib from the correct framework directory
11501           (mono/<version>/mscorlib.dll).
11502         * appdomain.h: Added prototypes for new functions.
11503         * internals.h: Added some prototypes.
11504         * domain.c: When initializing the runtime, get from the executable and
11505           the configuration files the runtime version that the app supports.
11506           Added support methods for reading app.exe.config. Added list of versions
11507           supported by the JIT. Added two new methods: mono_init_from_assembly,
11508           which initializes the runtime and determines the required version from
11509           the provided exe file, and mono_init_version, which initializes
11510           the runtime using the provided version.
11511         * icall.c: Get machine.config from version-specific directory.
11512         * reflection.c: When generating an image, embed the version number
11513           of the current runtime.
11514
11515 2004-07-28  Dick Porter  <dick@ximian.com>
11516
11517         * socket-io.c
11518         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11519         returned sockaddr size before creating the remote address object.
11520         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11521         61608.
11522
11523 2004-07-28  Dick Porter  <dick@ximian.com>
11524
11525         * locales.c (string_invariant_compare_char): Fix invariant char
11526         compares between upper and lower cases.  Fixes bug 61458.
11527
11528 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11529         
11530         * marshal.c: actually cache stelem.ref wrappers.
11531         
11532 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11533
11534         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11535         sections and remove the mono_cli_rva_map () function.
11536
11537 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11538
11539         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11540         by Geoff Norton (<gnorton@customerdna.com>).
11541
11542 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11543
11544         * class.c: fix class loads for pointer types (typeof(int) !=
11545         typeof(int*)).
11546
11547 2004-07-27  Martin Baulig  <martin@ximian.com>
11548
11549         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11550         reading the debugging information from an external ".mdb" file.
11551
11552 2004-07-24  Martin Baulig  <martin@ximian.com>
11553
11554         * reflection.c (mono_image_get_type_info): Only write a class
11555         layout entry if we actually have a size or a packing size.
11556
11557 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11558
11559         * reflection.c (type_get_fully_qualified_name): 
11560         insert cast to get type checking of ?: with non-gcc compilers
11561
11562 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11563
11564         * rand.c: use g_getenv for both lookups of
11565         MONO_EGD_SOCKET
11566
11567 2004-07-17  Martin Baulig  <martin@ximian.com>
11568
11569         * reflection.c (mono_reflection_bind_generic_method_parameters):
11570         Set `gmethod->reflection_info'.
11571
11572 2004-07-17  Martin Baulig  <martin@ximian.com>
11573
11574         * class.c (mono_class_create_from_typedef): Insert the newly
11575         created class into the hash table before computing the interfaces
11576         since we could be called recursively.
11577
11578 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11579
11580         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11581         function to implement stelem.ref in managed code
11582         * class-internals.h, debug-helpers.c: a new wrapper type
11583         for the above.
11584
11585 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11586
11587         * gc.c: allow GC handles to work even when no GC is compiled in.
11588         Fix part of bug #61134 (GetAddrOfPinnedObject).
11589
11590 2004-07-13  Peter Williams  <peter@newton.cx>
11591  
11592         * process.c (complete_path): Make sure we don't attempt to execute
11593         directories.
11594  
11595 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11596
11597         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11598           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11599           and will add/subtract the hour if needed
11600
11601 2004-07-12  Martin Baulig  <martin@ximian.com>
11602
11603         * reflection.c (mono_field_get_object): If we have
11604         `field->generic_info', take the attributes from
11605         `field->generic_info->generic_type'.    
11606
11607 2004-07-12  Martin Baulig  <martin@ximian.com>
11608
11609         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11610         This function must be called before initializing the runtime.
11611         (mono_debug_init_1): New function; call this after initializing
11612         the runtime, but before loading the assembly.  It tells the
11613         debugger to load corlib and the builtin types.
11614
11615         * mono-debug-debugger.c: Did some larger changes in the debugging
11616         code; support recursive class declarations, make sure we actually
11617         add all classes.
11618
11619 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11620
11621         * debug-helpers.c: undo my previous patch and fixed the real issue in
11622         ../mini/exceptions-x86.c
11623
11624 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11625
11626         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11627         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11628         called from other .cctors.
11629
11630 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11631
11632         * loader.c: Removed the mono_loader_wine_init hack now that we are
11633         doing a managed version of Windows.Forms.
11634
11635 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11636
11637         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11638         threadpool.c, threads.c: remove static data from rootset.
11639
11640 2004-07-09  Dick Porter  <dick@ximian.com>
11641
11642         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11643         Don't do any more processing if the matched length was 0.  It was
11644         increasing the size of the string before.  Fixes bug 61167.
11645
11646 2004-07-09  Dick Porter  <dick@ximian.com>
11647
11648         * socket-io.h:
11649         * socket-io.c
11650         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11651         Add support for SO_PEERCRED if its available.
11652
11653 2004-07-09  Peter Bartok <pbartok@novell.com>
11654         * loader.c: winelib.exe.so error message is now only displayed if
11655         MONO_DEBUG is set. To help us avoid questions when people are trying
11656         out the new Managed.Windows.Forms.
11657
11658 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11659
11660         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11661         for isinst and castclass wrappers.
11662
11663         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11664         to libmetadata from the JIT, so they could be used by the marshalling
11665         code and the interpreter.
11666
11667         * marshal.c: Register marshalling related JIT icalls here instead of
11668         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11669         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11670
11671         * metadata.h: Remove unneeded marshalling conversions.
11672
11673         * opcodes.c: Update for new opcodes.
11674         
11675 2004-07-08  Martin Baulig  <martin@ximian.com>
11676
11677         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11678         (mono_debug_get_domain_data): Make this function static.
11679
11680 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11681
11682         * gc.c, object.h: add nice GC handle API for embedders.
11683
11684 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11685
11686         * reflection.c: more changes for the new api
11687
11688         * object.c: When we reflect on a field w/ a constant value, it
11689         will not have a memory location, so we must access metadata. Also,
11690         allow easier reading of strings so that we can read them from
11691         the constant data.
11692
11693         * class.c (mono_class_layout_fields): no need for literal fields here.
11694
11695         * class-internals.h: api changes for const fields
11696
11697         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11698
11699 2004-07-06  Martin Baulig  <martin@ximian.com>
11700
11701         * mono-debug.h: Increment version number to 44.
11702
11703         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11704         now a gpointer, rewrote this whole method.
11705
11706         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11707         function.  Add information about the wrapper in a new "misc table".
11708
11709         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11710         for the new misc table.
11711
11712 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11713
11714         * metadata-internals.h image.c: Add a cache for helper signatures.
11715
11716         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11717
11718 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11719
11720         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11721         delegates from a delegate. Fixes #61033.
11722         
11723         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11724         marshalling of stringbuilder arrays. Fixes #59900.
11725
11726 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11727
11728         * icall.c: Add EnumBuilder:setup_enum_type icall.
11729
11730 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11731
11732         * icall.c: Added a new icall for the property version of
11733         OffsetOfStringData.
11734
11735 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11736
11737         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11738         it has a constant size across platforms.
11739
11740         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11741         stack trace.
11742
11743 2004-06-29  Martin Baulig  <martin@ximian.com>
11744
11745         * mono-debug.c (mono_debug_add_method): Protect the whole function
11746         in mono_debugger_lock(), not just parts of it.
11747
11748 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11749
11750         * reflection.c: make sure padding bytes in heaps are zeroed.
11751
11752 2004-06-24  David Waite  <mass@akuma.org>
11753
11754         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11755         image.c, loader.c, locales.c, marshal.c, metadata.c,
11756         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11757         string-icalls.c, threads.c: change to C90-style comments from C99 /
11758         C++ -style
11759
11760 2004-06-24  Dick Porter  <dick@ximian.com>
11761
11762         * threads.c
11763         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11764         return createdNew.  Fixes bug 60412.
11765
11766         * threads-types.h: 
11767         * icall.c: Add createdNew parameter to CreateMutex icall
11768
11769 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11770
11771         * reflection.c, object-internals.h: save default value in params.
11772
11773 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11774
11775         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11776         no need to build a new path combining that with the application base.
11777         Fixes bug #60442.
11778
11779 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11780
11781         * reflection.c: fixed minor standard compliance issues.
11782
11783 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11784
11785         * reflection.c: fixed issue with encoding some custom attributes
11786         (arrays in properties and fields, bug #60411).
11787
11788 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11789
11790         * reflection.c: fix start address when copying the public key token.
11791
11792 2004-06-23  Martin Baulig  <martin@ximian.com>
11793
11794         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11795         the `exc' object in a static object to put it into the GC's root set.
11796
11797 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11798
11799         * reflection.c: make mono_reflection_setup_internal_class ()
11800         callable a second time to setup a new parent class.
11801
11802 2004-06-23  Dick Porter  <dick@ximian.com>
11803
11804         * threads.c: Check for WAIT_IO_COMPLETION return values.
11805
11806 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11807
11808         * appdomain.c: Removed the g_free on the public key token. Now copy 
11809         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11810         * assembly.c: Added public key token string value when loading 
11811         assemblies. Fix bug #60439.
11812         * icall.c: Added missing informations (like public key) in 
11813         GetReferencedAssemblies. Fix #60519.
11814         * image.h: Changed definition for public key token from const char*
11815         public_tok_value to guchar public_key_token [17];
11816         * reflection.c: Updated for changes to public key token.
11817
11818 2004-06-22  Lluis Sanchez Gual
11819
11820         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11821         for the field in base classes.
11822
11823 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11824
11825         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11826         mark headers as not supported, they are installed only for use by the
11827         debugger.
11828
11829 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11830
11831         * *.c, *.h: avoid namespace pollution in public headers.
11832
11833 2004-06-21  Martin Baulig  <martin@ximian.com>
11834
11835         * exception.c (mono_get_exception_security): It's in
11836         "System.Security", not in "System".
11837
11838         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11839         the exception classes.
11840
11841 2004-06-21  Martin Baulig  <martin@ximian.com>
11842
11843         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11844         Protect the exception object from being finalized.
11845
11846 2004-06-21  Martin Baulig  <martin@ximian.com>
11847
11848         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11849         public function.
11850
11851 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11852
11853         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11854         if it was not loaded before. Fix parts of #60439.
11855
11856 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11857
11858         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11859         code that was broken since Ben's change: wrappers are now
11860         dependent on the method signature only again.
11861
11862 2004-06-21  Martin Baulig  <martin@ximian.com>
11863
11864         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11865         added interface support.
11866
11867 2004-06-21  Martin Baulig  <martin@ximian.com>
11868
11869         * class.c (mono_vtable_get_static_field_data): New public method.
11870
11871 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11872
11873         * filewatcher.c : Windows build fix to be compliant with API changes.
11874
11875 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11876
11877         * class.h, class.c: more accessors.
11878         * metadata.h, metadata.c: prepare for hiding MonoType and
11879         MonoMethodSignature: people should use the accessors from now on
11880         outside of the tree.
11881
11882 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11883
11884         * *.c, *.h: more API cleanups.
11885
11886 2004-06-18  Jackson Harper  <jackson@ximian.com>
11887
11888         * assembly.c: Trace loading assemblies.
11889         * loader.c: Trace loading native libraries.
11890         * mono-config.c: Trace loading config files.
11891         
11892 2004-06-18  Dick Porter  <dick@ximian.com>
11893
11894         * locales.c: Tell ICU the lengths of strings, it can cope with
11895         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11896
11897 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11898
11899         * image.c: swapped name/filename;
11900
11901 2004-06-18  Martin Baulig  <martin@ximian.com>
11902
11903         * mono-debug-debugger.c (write_class): Write the parent class at
11904         the end of the header.
11905
11906 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11907
11908         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11909
11910 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11911
11912         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11913         (bundle_obj): New conditional define.
11914         (BUILT_SOURCES): Remove.
11915         ($(bundle_srcs)): Make parallel-make safe.
11916         (libmonoruntime_la_LIBADD): Make unconditional.
11917         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11918         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11919
11920 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11921
11922         * culture-info-tables.h: It was inconsistent with the latest
11923           supp info files.
11924
11925 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11926
11927         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11928         be loaded.
11929
11930         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11931         with gcc 2.95.
11932
11933 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11934
11935         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11936         cleaned up public header threads.h.
11937
11938 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11939
11940         * Makefile.am, *.c, *.h: more API cleanups.
11941
11942 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11943
11944         * Makefile.am: removed monosn from compilation.
11945         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11946         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11947         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11948         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11949         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11950         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11951
11952 2004-06-15  Jackson Harper  <jackson@ximian.com>
11953
11954         * assembly.c: Make locales lower case when searching the GAC for
11955         assemblies. gacutil will always make locales lowercase when
11956         installing so this effectively makes them case insensitive.
11957         
11958 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11959
11960         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11961         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11962           parameter which allows to choose whether the wait can be interrupted or 
11963           not. Also added the method mono_monitor_enter(), which locks the monitor
11964           using an infinite wait and without allowing interruption.
11965           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11966           interrupted.
11967         * object.h: Added new fields in MonoThread. suspend_event holds the event
11968           used to susped/resume the thread. synch_lock is the lock object to use for
11969           modifying the thread state.
11970         * threads.c: Use the new synch_lock object for locking, instead of "this",
11971           which can generate deadlocks.
11972           Moved thread state change in Thread.Sleep and Thread.Join from managed
11973           to unmanaged code. This avoids a deadlock when the thread was suspended
11974           just after acquiring the thread lock.
11975           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11976           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11977           which is not fully implemented in the io-layer.
11978         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11979
11980 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11981
11982         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11983         threads-types.h: more API cleanups.
11984
11985 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11986
11987         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11988         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11989         threadpool.c, threads.c: first pass at the exported API cleanup.
11990
11991 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11992
11993         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11994
11995 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11996
11997         * icall.c: added internalGetHome.
11998
11999 2004-06-14  Dick Porter  <dick@ximian.com>
12000
12001         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12002         possible to return successfully when '.' or '..' were the only
12003         entries in a directory, but were skipped.  The MonoIOStat was not
12004         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12005         Fixes bug 59574.
12006
12007 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12008
12009         * reflection.c: make binaries run on .Net 1.1 by default.
12010
12011 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12012
12013         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12014
12015 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12016
12017         * marshal.c: keep track of struct size with explicit layout
12018         (bug #59979).
12019
12020 2004-06-12  Martin Baulig  <martin@ximian.com>
12021
12022         * mono-debug-debugger.c: Comment out a debugging g_message().
12023
12024 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12025
12026         * reflection.c, reflection.h: do not free custom attrs that are cached.
12027         * icall.c: use braces to make code clearer.
12028
12029 2004-06-11  Martin Baulig  <martin@ximian.com>
12030
12031         * class.h (MonoInflatedField): New type.
12032         (MonoClassField): Replaced `MonoType *generic_type' with
12033         `MonoInflatedField *generic_info'.
12034
12035         * icall.c
12036         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12037
12038 2004-06-11  Martin Baulig  <martin@ximian.com>
12039
12040         * reflection.c (mono_image_create_method_token): Correctly encode
12041         varargs methods.
12042
12043 2004-06-11  Martin Baulig  <martin@ximian.com>
12044
12045         * metadata.c (mono_metadata_parse_method_signature): When parsing
12046         a MethodDef which has VarArgs, also set sentinelpos if we don't
12047         have any parameters.
12048
12049 2004-06-11  Martin Baulig  <martin@ximian.com>
12050
12051         * verify.c (mono_method_verify): In CEE_CALL, use
12052         mono_method_get_signature() to get the method's signature, unless
12053         we're a PInvoke method.
12054
12055 2004-06-10  Jackson Harper  <jackson@ximian.com>
12056
12057         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12058         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12059         logical name as the supplied path is just a prefix to the gac not
12060         the direct path to it.
12061         
12062 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12063
12064         * reflection.c: make the token for a created method match
12065         the token of the MethodBuilder it was created from
12066         (IKVM requires this behaviour now).
12067
12068 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12069
12070         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12071         reflection.c, socket-io.c: leak fixes.
12072
12073 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12074
12075         * icall.c: handle sentinel pos in vararg methods in position different
12076         from 0.
12077
12078 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12079
12080         * culture-info-tables.h: freshly generated.
12081
12082 2004-06-09  Martin Baulig  <martin@ximian.com>
12083
12084         * loader.c (mono_get_method_constrained): Call `mono_class_init
12085         (constrained_class)'.   
12086
12087 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12088
12089         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12090         any methods. Fixes #59629.
12091
12092 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12093
12094         * culture-info-tables.h: reflecting locale-builder updates.
12095
12096 2004-06-08  Dick Porter  <dick@ximian.com>
12097
12098         * object.h:
12099         * locales.c: Fixed compile warnings, including a real bug in
12100         CompareInfo_internal_compare.
12101         
12102 2004-06-08  Dick Porter  <dick@ximian.com>
12103
12104         * locales.c
12105         (ves_icall_System_Globalization_CompareInfo_internal_index):
12106         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12107         Double-check the resuls of usearches, because ICU currently
12108         ignores most of the collator settings here.  Fixes bug 59720.
12109         
12110 2004-06-08  Dick Porter  <dick@ximian.com>
12111
12112         * locales.c
12113         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12114         Fix memory leak and segfault-causing typo.  No idea how this one
12115         lasted so long without being noticed.
12116
12117 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12118
12119         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12120         any methods. Fixes #59629.
12121
12122 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12123
12124         * assembly.c:
12125         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12126         own the critical section before). Removed dead code (that's done
12127         in the preload hook).
12128
12129         (mono_assembly_load_with_partial_name): call the preload hook.
12130
12131 2004-06-08  Martin Baulig  <martin@ximian.com>
12132
12133         * metadata.c (mono_metadata_signature_alloc): Default
12134         `sentinelpos' to -1.
12135
12136         * reflection.c (mono_image_get_array_token): Likewise.
12137
12138 2004-06-08  Martin Baulig  <martin@ximian.com>
12139
12140         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12141
12142         * metadata.c (mono_metadata_parse_method_signature): When parsing
12143         a MethodDef which has VarArgs, set sentinelpos.
12144
12145         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12146         `gint16' since we're using -1 for non-varargs methods.
12147
12148         * reflection.c
12149         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12150         (method_encode_signature): Added varargs support.
12151         (method_builder_encode_signature): Likewise.
12152         (mono_image_get_varargs_method_token): New static method.
12153         (mono_image_create_method_token): New public method; this is
12154         called via an icall instead of mono_image_create_token() when
12155         calling a varargs method.       
12156
12157 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12158
12159         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12160
12161 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12162
12163         * culture-info-tables.h : Reflecting the latest locale-builder that
12164           fixed empty array representation ({} to {0}).
12165
12166 2004-06-07  Jackson Harper  <jackson@ximian.com>
12167
12168         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12169         looking up extra gac paths. This allows MONO_GAC_PATH to act
12170         exactly like a prefix.
12171         
12172 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12173
12174         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12175         type name before modifying it. Fixes #59405.
12176
12177 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12178
12179         * culture-info.h: added fields for "all datetime patterns".
12180         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12181           _construct_datetime_format ()): fill xxx_patterns fields.
12182         * object.h: added fields for "all datetime patterns" to
12183           MonoDateTimeFormatInfo.
12184         * culture-info-tables.h: reflecting locale-builder updates.
12185
12186 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12187
12188         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12189         the event has no add and remove methods. Fixes #59629.
12190
12191 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12192
12193         * object.c: Fixed possible integer overflow when allocating large
12194         strings.
12195
12196 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12197
12198         * culture-info-tables.h: reflecting locale-builder updates.
12199
12200 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12201
12202         * culture-info-tables.h: reflecting locale-builder updates.
12203
12204 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12205
12206         * culture-info-tables.h: reflecting locale-builder updates.
12207
12208 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12209
12210         * threads.c: Made Thread.Sleep abortable.
12211
12212 2004-06-02  Martin Baulig  <martin@ximian.com>
12213
12214         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12215
12216         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12217
12218 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12219
12220         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12221
12222 2004-05-30  Jackson Harper  <jackson@ximian.com>
12223
12224         * reflection.c: Do not hardcode assembly versions or public key
12225         tokens anymore. All of this except the corlib section was dead
12226         code anyways.
12227         
12228 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12229
12230         * object.c (mono_runtime_invoke_array): Automatically create boxed
12231         objects for byref valuetypes if needed. Fixes #59300.
12232         
12233         * object.c (mono_method_return_message_restore): Handle 
12234         MONO_TYPE_OBJECT as well.
12235
12236 2004-05-28  Jackson Harper  <jackson@ximian.com>
12237
12238         * reflection.c: The modified type encoding was causing build
12239         problems. Reverted for now.
12240         
12241 2004-05-28  Jackson Harper  <jackson@ximian.com>
12242
12243         * reflection.c/h: Take an assembly ref so that we dont create
12244         fully qualified names when encoding types in the same assembly as
12245         the custom attribute being emitted.
12246         * appdomain.c: Increment version number.
12247         
12248 2004-05-26  Duncan Mak  <duncan@ximian.com>
12249
12250         * icall.c
12251         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12252         Set the full version number (major, minor, build, revision).
12253
12254 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12255
12256         * marshal.c (emit_struct_conv): increment src/dst after blit
12257         (mono_marshal_get_managed_wrapper,
12258         mono_marshal_get_native_wrapper): make sure we have marshalling
12259         info before marshalling params (info computation affects
12260         blittable)
12261
12262         * class.c (class_compute_field_layout): correctly deal with
12263         blittable
12264         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12265         value types (as per what windows dows by default)
12266         (mono_class_setup_mono_type): System.ValueType is blittable
12267         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12268         blittable
12269
12270         * marshal.c (mono_marshal_load_type_info): flag types  as
12271         non-blittable if the native layout doesn't match the managed
12272         layout
12273
12274 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12275
12276         * appdomain.c: don't add stuff in the private search path that is
12277         above the application base. If application base is not set, there's
12278         no private search path.
12279
12280 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12281
12282         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12283         byref struct arguments in native->managed marshalling.
12284
12285 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12286
12287         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12288         cache methods using signature (special case for methods
12289         that are value type or string class)
12290         
12291         * image.c (mono_image_close): clean up allocated GSList's
12292         in runtime_invoke_cache.
12293
12294 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12295
12296         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12297         there's no MONO_CFG_DIR environment variable defined.
12298
12299 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12300
12301         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12302
12303 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12304
12305         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12306           is interrumped.
12307         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12308           before waiting for it, and call CloseHandle after the wait to unref it.
12309           This will make sure that handles are not disposed too early.
12310
12311 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12312
12313         * appdomain.c:
12314         * appdomain.h:
12315         * icall.c: removed
12316         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12317         needed now.
12318
12319         * object.c: se the application_base only for the domain that runs
12320         Main. Fixes bug #59216,
12321
12322 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12323
12324         * appdomain.c:
12325         * object.c: only the domain in which Main is run have
12326         SetupInformation.ConfigurationFile set, so moved a few lines from
12327         appdomain.c to object.c.
12328
12329 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12330
12331         * appdomain.c: we tried to load [name].(dll|exe), but according
12332         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12333         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12334         There's a test case attached to bug #58922.
12335
12336 2004-05-27  Dick Porter  <dick@ximian.com>
12337
12338         * icall.c:
12339         * file-io.c: Implemented icalls for locking and unlocking regions
12340         in a file.
12341         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12342         FALSE on error (fixes both compiler warning and real bug.)
12343
12344 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12345
12346         * culture-info-tables.h: reflecting locale-builder updates.
12347
12348           (Added missing ChangeLog entry for 05/26)
12349
12350 2004-05-27  Jackson Harper  <jackson@ximian.com>
12351
12352         * locales.c: Fix some cut and paste errors.
12353         
12354 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12355
12356         * mono-config.c: set the correct path for config. directory on windows.
12357
12358 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12359
12360         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12361           on win32.
12362
12363 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12364
12365         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12366         from pinvoke functions.
12367         
12368         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12369
12370 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12371
12372         * culture-info-tables.h: reflecting locale-builder updates.
12373
12374 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12375
12376         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12377         #59086.
12378
12379 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12380
12381         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12382         * icall.c: Modified icalls for RNG.
12383         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12384         Windows (CryptoAPI).
12385
12386 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12387
12388         * locales.c: Fix build.
12389
12390 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12391
12392         * culture-info-tables.h: reflecting locale-builder updates.
12393
12394 2004-05-25  Jackson Harper  <jackson@ximian.com>
12395
12396         * locales.c: When creating the current culture use the $LANGs
12397         specific culture. So DateTimeFormat and NumberFormat entries are created.
12398         
12399 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12400
12401         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12402         a char array as parameter.
12403
12404 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12405
12406         * image.c: In mono_image_open(), always use an absolute path name to
12407           look for already loaded images.
12408
12409 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12410
12411         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12412         missing in the windows build (like older cygwin include files).
12413
12414 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12415
12416         * icall.c: Fixed check for possible integer overflow in Buffer_
12417         BlockCopy icall. Replaced comments style // by /* */.
12418
12419 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12420
12421         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12422         
12423         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12424         check after MONO_VTADDR. Fixes pinvoke2.exe.
12425
12426         * marshal.h marshal.c metadata.h: Add beginnings of support for
12427         ftnptr -> delegate marshalling.
12428
12429 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12430
12431         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12432         * threads.c: Fix warnings.
12433
12434 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12435
12436         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12437         * icall.c: Registered icalls for Suspend and Resume.
12438         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12439           Thread.Abort.
12440         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12441         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12442         * process.c: Use WaitForSingleObjectEx.
12443         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12444           checkpoints.
12445         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12446           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12447           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12448           background threads. Added basic support for Abort in Windows.
12449           Start new threads using a managed delegate invoke wrapper. This wrapper
12450           has an interruption checkpoint that is needed since an interruption
12451           can be requested before the thread leaves the unmanaged code that starts 
12452           the thread.
12453         * marshal.c: Added interruption checkpoint after every native call, and
12454           also before managed calls for wrappers called from unmanaged code to
12455           go into managed code.
12456         * object.h: Added new field in MonoThread to keep track of interruption
12457           requests.
12458
12459 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12460
12461         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12462         calls.
12463
12464 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12465
12466         * appdomain.c:
12467         * assembly.c:
12468         * gc.c:
12469         * locales.c:
12470         * mono-config.c:
12471         * rand.c: getenv -> g_getenv (windows!)
12472
12473         * process.c: complete_path is also used on non-windows platforms.
12474
12475 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12476
12477         * icall.c: new signature for Process_Start.
12478
12479         * process.[ch]: new signature for Process_Start. If we're on windows
12480         and UseShellExecute is false, we have to search for the program by
12481         ourselves if we don't get a full path.
12482
12483 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12484
12485         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12486         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12487
12488 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12489
12490         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12491         Fixes bug #58373.
12492
12493 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12494
12495         * process.c: use double quotes to quote program name and arguments on
12496         windows. Fixes bug #58575.
12497
12498 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12499
12500         * file-io.c: don't return "." and ".." when using windows Find*File.
12501
12502 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12503
12504         * marshal.c: Don't pass wrappers to message init because method 
12505         addressed used to lookup metadata. part of remoting[2|3] fix.
12506
12507 2004-05-15  Jackson Harper  <jackson@ximian.com>
12508
12509         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12510         path is essentially the same as MONO_PATH except that it points to
12511         GACs instead of lib directories.
12512         * loader.h: The user gac is gone so we dont need function to
12513         enable/disable it.
12514         * mono-config.c: user gac option is now gone.
12515         
12516 2004-05-15  Jackson Harper  <jackson@ximian.com>
12517
12518         * culture-info.h: Make defines more consistent, add calendar data
12519         to the culture info table.
12520         * culture-info-tables.h: Add basic calendar data. Basically
12521         everyone gets default gregorian until all the data is
12522         updated.
12523         * locales.c: Use the new consistent defines. Set calendar data for
12524         culture info objects.
12525         * object.h: add a field for calendar data to CultureInfo
12526         
12527 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12528
12529         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12530         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12531         a signature.
12532         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12533         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12534         an extra param that is the pointer of the method to invoke. The IL for
12535         the invoke method is no longer specific to the method, but to the
12536         signature of the method. Thus, we can share the same code for multiple
12537         methods. This reduces the number of methods that have to be compiled.
12538
12539 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12540
12541         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12542
12543         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12544
12545         * icall.c: Optimize Buffer.BlockCopy.
12546
12547 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12548
12549         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12550         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12551         quote). Changed them to "MMMM yyyy".
12552
12553 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12554
12555         * rand.c
12556         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12557
12558 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12559
12560         * reflection.h: Updated after changes to managed structures.
12561
12562         * appdomain.c: Bump corlib version.
12563
12564 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12565
12566         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12567         windows.
12568
12569 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12570
12571         * Makefile.am: link to ../os/libmonoos.la on windows.
12572
12573         * assembly.c:
12574                 -If MONO_DEBUG, warn about non-existing directories in
12575                 MONO_PATH.
12576                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12577                 compile time variable.
12578                 -Removed init_default_path and call mono_set_rootdir from
12579                 libmonoos.a instead (windows only).
12580
12581         * assembly.h: declare mono_assembly_getrootdir().
12582
12583         * domain.c:
12584         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12585
12586         * loader.c: s/getenv/g_getenv/
12587
12588 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12589
12590         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12591
12592         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12593
12594         * metadata.h: Add new marshalling conversions.
12595
12596         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12597         function.
12598
12599         * reflection.c (mono_reflection_get_type): Lookup the type in all
12600         modules of a multi-module assembly. Fixes #58291.
12601
12602 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12603
12604         * threads.c: Before aborting a background, set the StopRequested
12605         state.  This avoids throwing the Abort exception.
12606         In mono_thread_manage, don't continue with the shutdown until all
12607         aborted threads have actually stopped.
12608
12609 2004-05-10  Jackson Harper  <jackson@ximian.com>
12610
12611         * locales.c: Remove the modifier from culture names.
12612         
12613 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12614
12615         * Makefile.am: monosn is not installed any more. It has been deprecated
12616         in favor of sn.
12617
12618 2004-05-07  Jackson Harper  <jackson@ximian.com>
12619
12620         * locales.c
12621         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12622         Fix array construction, add bailout if the length is 0.
12623
12624 2004-05-07  Dick Porter  <dick@ximian.com>
12625
12626         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12627         machine doesn't have a DNS entry.  Patch by Urs Muff
12628         (umuff@quark.com), fixes bug 57928.
12629
12630 2004-05-06  Jackson Harper  <jackson@ximian.com>
12631
12632         * reflection.c: Handle null PublicTokens properly. alloc mem for
12633         assembly names culture so we dont crash when freeing it.
12634         
12635 2004-05-06  Jackson Harper  <jackson@ximian.com>
12636
12637         * assembly.c: Check the usergac when loading with partial names.
12638         
12639 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12640
12641         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12642         does nothing for now (not required for Linux/Windows) but the class
12643         library can call it (and a newer or modified runtime could need it).
12644         * icall.c: Registred icall.
12645
12646 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12647
12648         * loader.c: prints a message on module loading error we set MONO_DEBUG
12649         environment variable.
12650
12651 2004-05-05  Jackson Harper  <jackson@ximian.com>
12652
12653         * appdomain.c: Handle PublicKeyToken=null properly.
12654         
12655 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12656
12657         * environment.c|h: Added icall ves_icall_System_Environment_
12658         GetOSVersionString to get the current OS version as a string.
12659         * icall.c: Registred icall.
12660
12661 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12662
12663         * object.c: in mono_object_get_virtual_method(), take into account that
12664         non-virtual methods don't have a slot in the vtable. Check needed when
12665         the object is a proxy.
12666
12667 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12668
12669         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12670         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12671
12672         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12673
12674         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12675         passed when a valuetype is expected.
12676
12677         * object.c (mono_unhandled_exception): Only set the exit code if the
12678         exception happens in the main thread. Fixes thread5.exe.
12679
12680         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12681         invalid names. Fixes #58047.
12682
12683 2004-05-03  Jackson Harper  <jackson@ximian.com>
12684
12685         * assembly.c: This line was committed accidently and is unneeded.
12686         
12687 2004-05-03  Jackson Harper  <jackson@ximian.com>
12688
12689         * icall.c: Add new icall for Assembly::LoadWithPartialName
12690         * assembly.c/.h: new function that probes the GAC to load partial
12691         assembly names by Paolo Molaro.
12692         
12693 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12694
12695         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12696         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12697         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12698         full type name.
12699
12700 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12701
12702         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12703         * reflection.c: fix bug when parsing a full type name and Version is not
12704         the last thing in the string.
12705
12706 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12707
12708         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12709         crashes when it is freed.
12710
12711 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12712
12713         * assembly.c: print the compat warning to stderr.
12714
12715 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12716
12717         * assembly.c (mono_assembly_load_references): Add a compatibility
12718         hack to run old applications that might be still referencing the
12719         3300-based assemblies, only do this for System.xxx.
12720
12721 2004-05-01  Jackson Harper  <jackson@ximian.com>
12722
12723         * appdomain.c: If the culture is neutral we set it to "".
12724         
12725 2004-04-29  Jackson Harper  <jackson@ximian.com>
12726
12727         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12728
12729 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12730  
12731         * string-icalls.c: added low overhead function for copying chars
12732         * icall.c: added needed icall for the above function
12733  
12734 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12735
12736         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12737         Environment.GetLogicalDrives.
12738
12739 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12740
12741         * rand.c: try and talk to egd or prngd
12742         for random bytes if opening devices fail.
12743
12744 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12745
12746         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12747         alignment for the type using the native alignment of its members 
12748         instead of using klass->min_align.
12749
12750         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12751
12752 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12753
12754         * file-io.c:
12755         * socket-io.c: added check for sys/aio.h.
12756
12757 2004-04-28  Dick Porter  <dick@ximian.com>
12758
12759         * threads.c: Don't abort a thread thats already aborting, when
12760         terminating everything.
12761
12762 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12763
12764         * icall.c: added 2 new async calls for Socket.
12765
12766         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12767         IO on *nix systems.
12768
12769         * threadpool.c: removed unused variable.
12770
12771 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12772
12773         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12774
12775 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12776
12777         * locales.c: put back string_invariant_tolower () and
12778         string_invariant_toupper ().
12779
12780 2004-04-26 David Waite <mass@akuma.org>
12781
12782         * file-io.h:
12783         * socket-io.h:
12784         * threads.h:
12785         * unicode.h: remove comma from end of enumeration declarations
12786
12787 2004-04-26 David Waite <mass@akuma.org>
12788
12789         * debug-mono-symfile.h:
12790         * decimal.c:
12791         * mono_debug.h:
12792         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12793
12794
12795 2004-04-26  Jackson Harper  <jackson@ximian.com>
12796
12797         * appdomain.c: Increment version number.
12798         
12799 2004-04-26  Jackson Harper  <jackson@ximian.com>
12800
12801         * appdomain.c: Set assembly references public token value when
12802         PublicKeyToken is specified, not the hash_value. Free public token
12803         values when free assembly name data. Previously the public key
12804         token was hex decoded, however we are using hex encoded public key
12805         tokens, so this is not neccasary.
12806         * assembly.c: Lookup assemblies in the gac if their public token
12807         value is set. Add function to allow enabling user gac
12808         lookups. Specify whether or not the assembly was loaded from the
12809         GAC. Compare full assembly names when checking the cache for
12810         assemblies (Temporarily disabled see comment in code). Remove
12811         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12812         specifies trace-loader they get extra info to stdout on the
12813         loading of assemblies.
12814         * image.h: Add a field for an assembly references public token
12815         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12816         whether an assembly has been loaded from the GAC.
12817         * image.c: Remove a corlib -> mscorlib name mapping.
12818         * loader.h: Add function to enable/disable the user gac.
12819         * mono-config.c: Check if the usergac is enabled in the config
12820         file.
12821         * icall.c: New icall to determine whether or not an assembly has
12822         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12823         * tabldefs.h: Add constant for assemblyref flag that specifies a
12824         full public key is used instead of a public token.
12825         * reflection.c: Remove mscorlib -> corlib mappings. Set
12826         PublicTokenValue instead of hash value. This value is a hex
12827         string so it does not need to be expanded.
12828
12829 2004-04-26  Martin Baulig  <martin@ximian.com>
12830
12831         * mono-debug-debugger.c (mono_debugger_initialize): Set
12832         `mono_debugger_initialized' before calling mono_debug_lock().
12833
12834 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12835
12836         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12837           InternalToUpper/InternalToLower.
12838         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12839           removed invariant culture shortcut.  This is now done in managed code.
12840         * locales.c: (string_invariant_toupper/tolower) removed.
12841
12842 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12843
12844         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12845         Added Poll internal call.
12846
12847         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12848         call for Poll. Select was too heavy for polling a single socket.
12849
12850         * threadpool.[ch]: added mono_threadpool_cleanup.
12851         * threads.c: use it. Don't use Thread_Abort on windows.
12852
12853 2004-04-23  Martin Baulig  <martin@ximian.com>
12854
12855         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12856
12857 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12858
12859         * icall.c: Registred new icalls for key pair protection and added an
12860         icall for Environment.GetFolderPath on Windows.
12861         * security.c|h: Added new icalls for key pair protection.
12862
12863 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12864
12865         * socket-io.c: don't display the non-supported family warning for known
12866         families. Now this is not displayed on windows when checking support
12867         for IPv4/IPv6.
12868
12869 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12870
12871         * class.c: don't display the layout warning for static fields.
12872
12873 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12874
12875         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12876         * locales.c, locales.h: Added new icalls for culture-specific
12877         Char.ToLower and Char.ToUpper.
12878
12879 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12880
12881         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12882         by David Waite.
12883
12884 2004-04-20  Martin Baulig  <martin@ximian.com>
12885
12886         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12887         of the type name before passing it to mono_reflection_type_from_name().
12888
12889 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12890
12891         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12892         encodings here. Fixes #56965.
12893
12894 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12895
12896         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12897         fix test on strstr result not that I can see anything that
12898         relies on the result.
12899
12900 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12901
12902         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12903         Fixes #57081.
12904
12905         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12906
12907         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12908         function to determine which marshalling to use for strings. Fixes
12909         #56965.
12910
12911         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12912
12913         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12914
12915 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12916
12917         * icall.c: #include mono-config.h
12918
12919 2004-04-15  Jackson Harper  <jackson@ximian.com>
12920
12921         * culture-info-tables.h: Fix date formats for en-US culture.
12922         
12923 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12924
12925         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12926         ThreadPool.SetMinThreads.
12927         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12928         ThreadPool.SetMinThreads.
12929
12930 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12931
12932         * mono-config.c: also load the .config file in the directory
12933         where the assembly was found.
12934
12935 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12936
12937         * assembly.c: load per-assembly config files.
12938         * icall.c: decrapified code to get the config dir and moved to
12939         mono-config.c.
12940         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12941         per-assembly config files. When doing a dll map lookup give precedence
12942         to the per-assembly data.
12943
12944 2004-04-14  Martin Baulig  <martin@ximian.com>
12945
12946         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12947         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12948         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12949
12950         * mono-debugger-debugger.c: While the debugger is locked, remember
12951         whether the symbol tables have changes and send one single
12952         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12953
12954 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12955
12956         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12957
12958         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12959         function.
12960
12961         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12962         account when marshalling string arrays. Fixes #56965.
12963
12964 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12965
12966         * icall.c: Add new icalls mapping for security.
12967         * security.c|h: Add internal calls for WindowsIdentity,
12968         WindowsImpersonationContext and WindowsPrincipal.
12969
12970 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12971
12972         * class.c: Added comment to ensure the System.MonoDummy class
12973         is removed when no longer necessary
12974
12975 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12976
12977         * appdomain.c: Pass arguments to the bootstraping exceptions to
12978         minimize JITed methods at boot
12979
12980         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12981         second string to be null.
12982
12983         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12984         Change the protocol to minimize the JIT methods at startup.  Now
12985         it Returns the internal codepage, if the value of "int_code_page"
12986         is 1 at entry, and we can not compute a suitable code page
12987         number, returns the code page as a string.
12988
12989 2004-04-13  Jackson Harper  <jackson@ximian.com>
12990
12991         * culture-info-tables.h: Fix number of decimal digits for all
12992         english locales.
12993
12994 2004-04-13  Jackson Harper  <jackson@ximian.com>
12995
12996         * icall.c: Clairfy out of sync error message. It is not always
12997         your corlib that is out of sync.
12998
12999 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13000
13001         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13002         properties when only the set accessor is overriden. Fixes #55874.
13003
13004 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13005
13006         * assembly.c (mono_assembly_load_references): Make this thread safe.
13007         Fixes #56327.
13008
13009 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13010
13011         * monosn.c: Add missing initialization calls.
13012
13013 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13014
13015         * locales.c:
13016         ves_icall_System_Globalization_CultureInfo_construct_number_format
13017         Fix g_assert so it compiles on fussier compilers re int/ptr
13018         mismatch
13019
13020 2004-04-08  Dick Porter  <dick@ximian.com>
13021
13022         * socket-io.h:
13023         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13024         53992.  Also rearrange the code so that the internal calls return
13025         an error value and exceptions are thrown from managed code.
13026
13027         * icall.c: Add type info to the socket icalls.
13028
13029 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13030
13031         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13032         owes me a beer.
13033
13034 2004-04-07  Martin Baulig  <martin@ximian.com>
13035
13036         * class.c (mono_class_from_generic_parameter): Don't default
13037         `klass->parent' to `mono_defaults.object_type'.
13038
13039 2004-04-07  Martin Baulig  <martin@ximian.com>
13040
13041         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13042         `param->pklass->reflection_info'.       
13043
13044 2004-04-07  Jackson Harper  <jackson@ximian.com>
13045
13046         * culture-info-tables.h: Fix date separator symbol.
13047         
13048 2004-04-07  Martin Baulig  <martin@ximian.com>
13049
13050         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13051         from System.Type to System.MonoType.
13052
13053 2004-04-07  Martin Baulig  <martin@ximian.com>
13054
13055         * reflection.h
13056         (MonoReflectionGenericParam): Added `has_reference_type' and
13057         `has_value_type' fields.
13058
13059         * reflection.c (mono_image_get_generic_param_info): Encode the
13060         correct flags if we have the `class' or `struct' constraint.
13061
13062 2004-04-07  Martin Baulig  <martin@ximian.com>
13063
13064         * reflection.h
13065         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13066
13067 2004-04-07  Jackson Harper  <jackson@ximian.com>
13068
13069         * appdomain.c: Revert extra patches, just wanted to bump the
13070         version number.
13071         
13072 2004-04-07  Jackson Harper  <jackson@ximian.com>
13073
13074         * Makefile.am: Add culture-info private headers.
13075         * icall.c: Add new icalls for contructing locales.
13076         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13077         * locales.h: Declare new culture info construction methods.
13078         * object.h: Add new fields used to avoid the CultureMap to
13079         MonoCultureInfo.
13080         * culture-info.h: Definition of structs used in the culture info
13081         tables.
13082         * culture-info-tables.h: Autogenerated tables that contain culture
13083         info data. This file was generated with the locale-builder tool.
13084         * appdomain.c: Incement corlib version number.
13085         
13086 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13087
13088         * appdomain.c: (mono_runtime_init) move mono_thread_init
13089         to before mono_object_new calls so critical sections
13090         are initialized before use.
13091
13092 2004-04-07  Martin Baulig  <martin@ximian.com>
13093
13094         * icall.c
13095         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13096         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13097         (ves_icall_MonoGenericParam_initialize): Removed.
13098         (monogenericparam_icalls): Removed.
13099         (generictypeparambuilder_icalls): Added new table for
13100         System.Reflection.Emit.GenericTypeParameterBuilder.
13101
13102         * reflection.c
13103         (mono_reflection_define_generic_parameter): Removed.
13104         (mono_reflection_initialize_generic_parameter): This is now called
13105         from GenericTypeParameterBuilder's .ctor.
13106
13107 2004-04-06  Martin Baulig  <martin@ximian.com>
13108
13109         * class.c (mono_class_init): Don't inflate nested classes in a
13110         generic instance.
13111         (mono_type_get_name_recurse): Include the generic arguments for
13112         generic instances and generic type declarations.
13113         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13114         (_mono_class_get_instantiation_name): Removed.
13115         (mono_class_create_generic): Always use `gklass->name' as our name.
13116
13117         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13118
13119         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13120         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13121         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13122         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13123         closed generic methods here.
13124
13125         * reflection.c
13126         (mono_reflection_generic_inst_get_nested_types): Removed.
13127         (inflate_mono_method): Copy the generic parameters from the
13128         MonoMethodHeader into out MonoGenericMethod.
13129
13130 2004-04-06  Martin Baulig  <martin@ximian.com>
13131
13132         * row-indexes.h
13133         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13134
13135         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13136
13137         * reflection.c (build_compressed_metadata): If we have any entries
13138         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13139         set the header version to 1.1.
13140
13141 2004-04-06  Martin Baulig  <martin@ximian.com>
13142
13143         * class.c (mono_class_init): If we're a generic instance,
13144         initialize our nested classes, too.
13145         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13146         suffix. 
13147
13148 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13149
13150         * process.c: quote the argument passed to the shell on windows.
13151
13152 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13153
13154         * threads.c (mono_alloc_special_static_data): Allow this to be
13155         called during startup.
13156
13157 2004-04-02  Martin Baulig  <martin@ximian.com>
13158
13159         * icall.c
13160         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13161
13162 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13163
13164         * icall.c: Fix build.
13165
13166 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13167
13168         * Makefile.am: Added security.c|h.
13169         * icall.c: Added icall for get_UserName;
13170         * security.c: New file for security related icalls. Added function
13171         get_UserName for System.Environment (fix #56144).
13172         * security.h: New. Header file for security.c
13173
13174 2004-04-02  Dick Porter  <dick@ximian.com>
13175
13176         * icall.c: Deleted the icalls that were obsoleted some time ago
13177         by the ICU string code, and which were mixed into the icall
13178         rearranging.  Fixes bug 55969.
13179
13180         * string-icalls.h: 
13181         * string-icalls.c: Deleted the code that those icalls reference.
13182
13183 2004-04-01  Martin Baulig  <martin@ximian.com>
13184
13185         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13186
13187         * class.c (mono_class_from_generic_parameter): Don't set 
13188         TYPE_ATTRIBUTE_INTERFACE.
13189         (my_mono_class_from_generic_parameter): Likewise.
13190
13191 2004-04-01  Martin Baulig  <martin@ximian.com>
13192
13193         * loader.c (find_method): Added an optional `MonoClass *ic'
13194         argument to search in a specific interface.
13195         (mono_get_method_constrained): New public function.
13196
13197 2004-04-01  Martin Baulig  <martin@ximian.com>
13198
13199         * reflection.c (mono_image_get_generic_field_token): Use the
13200         `handleref' cache here.
13201
13202 2004-04-01  Martin Baulig  <martin@ximian.com>
13203
13204         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13205
13206         * reflection.c (create_generic_typespec): Use the `typespec' hash
13207         here, not the `typeref' one.    
13208
13209 2004-04-01  Martin Baulig  <martin@ximian.com>
13210
13211         * class.c (mono_class_inflate_generic_type): Moved the
13212         functionality into a new static inflate_generic_type() which
13213         returns NULL if it didn't do anything.  Only increment the
13214         `mono_stats.inflated_type_count' if we actually inflated
13215         something.
13216         (mono_class_get_full): Check the classes type to see whether we
13217         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13218
13219 2004-04-01  Jackson Harper  <jackson@ximian.com>
13220
13221         * reflection.c: Set culture for assembly references.
13222         
13223 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13224
13225         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13226
13227 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13228
13229         * assembly.c:
13230         (do_mono_assembly_open): the critical section also covers
13231         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13232
13233 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13234
13235         * threads.c:
13236         (mono_manage_threads): abort the background threads when finishing.
13237         Fixes bug #47232.
13238
13239 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13240
13241         * gc.c: only close the done_event handle if there was no timeout.
13242         C-ified comments.
13243
13244 2004-03-30  Martin Baulig  <martin@ximian.com>
13245
13246         * icall.c (icall_entries): It's called "System.Activator", not
13247         "System.Activation".    
13248
13249 2004-03-30  Martin Baulig  <martin@ximian.com>
13250
13251         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13252         (mono_class_create_from_typespec): Likewise.
13253
13254 2004-03-30  Martin Baulig  <martin@ximian.com>
13255
13256         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13257         `has_ctor_constraint' and `initialized'.
13258
13259 2004-03-30  Martin Baulig  <martin@ximian.com>
13260
13261         * reflection.c (encode_new_constraint): New static function to add
13262         the constructor constraint attribute to a type parameter.
13263         (encode_constraints): Call encode_new_constraint() if necessary.
13264
13265         * reflection.h
13266         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13267
13268         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13269         
13270 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13271
13272         * reflection.c, icall.c: add support for pinning variables. 
13273
13274 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13275
13276         * marshal.c (mono_marshal_get_managed_wrapper):
13277         init bool local with zero rather than null.
13278
13279 2004-03-29  Martin Baulig  <martin@ximian.com>
13280
13281         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13282         the "official" behavior here.
13283         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13284
13285 2004-03-29  Martin Baulig  <martin@ximian.com>
13286
13287         * icall.c: Reflect latest API changes.
13288
13289 2004-03-29  Martin Baulig  <martin@ximian.com>
13290
13291         * loader.c (mono_get_method_from_token): Also call
13292         mono_metadata_load_generic_params () for abstract and interface
13293         methods; replace the type arguments in the method signature with
13294         the ones which are loaded from the metadata.
13295
13296 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13297
13298         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13299         of the lock is not the current thread. MS.NET don't do it, in spite of
13300         what the documentation says. See bug #56157.
13301
13302 2004-03-28  Martin Baulig  <martin@ximian.com>
13303
13304         * class.c (mono_class_init): Don't call init_properties() and
13305         init_events() for generic instances; set `prop->parent' when
13306         inflating properties.
13307
13308         * reflection.c (mono_generic_inst_get_object): Call
13309         `mono_class_init (ginst->klass)'.
13310         (mono_type_get_object): Only create a MonoGenericInst if your
13311         generic type is a TypeBuilder.
13312         (do_mono_reflection_bind_generic_parameters): Only set
13313         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13314
13315 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13316
13317         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13318         Fixes #56091.
13319
13320 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13321
13322         * icall.c: added Kill_internal icall.
13323         * process.[ch]: added Kill_internal icall.
13324
13325 2004-03-25  Martin Baulig  <martin@ximian.com>
13326
13327         * class.h (MonoStats): Added `generic_instance_count',
13328         `inflated_method_count', `inflated_type_count' and
13329         `generics_metadata_size'.       
13330
13331 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13332
13333         * reflection.c: no warnings now.
13334
13335 2004-03-25  Martin Baulig  <martin@ximian.com>
13336
13337         * class.c (mono_class_get_full): New public function; does a
13338         mono_class_get(), but also takes a `MonoGenericContext *'.
13339
13340         * loader.c (mono_field_from_memberref): Renamed to
13341         `field_from_memberref', made static and added `MonoGenericContext *'
13342         argument.
13343         (mono_field_from_token): Added `MonoGenericInst *' argument.
13344         (method_from_memberef): Likewise.
13345         (mono_get_method_from_token): Likewise.
13346         (mono_get_method_full): New public function; does a
13347         mono_get_method(), but also takes a `MonoGenericContext *'.
13348
13349         * verify.c (mono_method_verify): Get the method's generic context
13350         and pass it to mono_field_from_token(), mono_get_method_full() and
13351         mono_class_get_full().
13352
13353 2004-03-25  Martin Baulig  <martin@ximian.com>
13354
13355         * class.c (mono_class_inflate_generic_type): Take a
13356         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13357         `MonoGenericMethod *'.
13358
13359 2004-03-25  Martin Baulig  <martin@ximian.com>
13360
13361         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13362         instead of the MonoGenericMethod here.
13363
13364 2004-03-25  Martin Baulig  <martin@ximian.com>
13365
13366         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13367         each time we create a new MonoGenericInst, we also create a new
13368         context which points back to us.
13369
13370         * class.c (inflate_method): Use `ginst->context' instead of
13371         creating a new context.
13372
13373         * loader.c (method_from_memberref): Use
13374         `klass->generic_inst->context' instead of creating a new context.
13375
13376 2004-03-25  Martin Baulig  <martin@ximian.com>
13377
13378         * class.h (MonoGenericContext): New struct.
13379         (MonoGenericMethod): Removed `generic_inst'.
13380
13381         * class.c (mono_class_inflate_generic_method): Take a
13382         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13383
13384 2004-03-25  Martin Baulig  <martin@ximian.com>
13385
13386         * loader.h (MonoMethodInflated): New typedef.
13387
13388         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13389         `generic_param_count' consume just 30 bits, added `is_inflated'
13390         and `has_type_parameters' flags (one bit each).
13391
13392         * class.c (mono_class_inflate_generic_method): Create a
13393         MonoMethodInflated instead of a MonoMethodNormal and set
13394         `is_inflated' in the method signature.
13395
13396         * class.h (MonoGenericMethod): Removed `generic_method'.
13397
13398 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13399
13400         * image.c: Make sure the name of a MonoImage is always an absolute path.
13401           This fixes bug #54415.
13402
13403 2004-03-24  Martin Baulig  <martin@ximian.com>
13404
13405         * class.c (mono_class_setup_vtable): If we're a generic instance,
13406         use our generic type's vtable size.
13407
13408 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13409
13410         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13411         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13412         problems.
13413
13414 2004-03-23  Martin Baulig  <martin@ximian.com>
13415
13416         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13417         `MonoEvent *events'.
13418
13419         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13420         (typebuilder_icalls): Added "get_event_info"; calls
13421         mono_reflection_event_builder_get_event_info(). 
13422
13423         * reflection.c (mono_reflection_generic_inst_initialize): Added
13424         `MonoArray *events'.
13425         (mono_reflection_event_builder_get_event_info): New function.
13426
13427 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13428
13429         * object.h: add mono_type_initialization_init
13430
13431         * object.c (mono_runtime_class_init): 
13432         implement class constructor synchronization rules
13433         to cope with threading issues.  
13434         add mono_type_initialization_init
13435
13436         * appdomain.c (mono_runtime_init): call 
13437         mono_type_initialization_init
13438
13439         * class.h: removing initializing field from MonoVTable
13440
13441 2004-03-23  Martin Baulig  <martin@ximian.com>
13442
13443         * class.c (my_mono_class_from_generic_parameter): Use
13444         `param->name' if it's not NULL. 
13445
13446 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13447
13448         * class.c: do not insert non-virtual methods in the vtable.
13449         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13450         that means the method is non-virtual. This never would have
13451         happened before.
13452
13453 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13454
13455         * profiler.c: Added lock for accessing coverage_hash.
13456
13457 2004-03-22  Martin Baulig  <martin@ximian.com>
13458
13459         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13460         `method->method->signature->generic_param_count != 0' to make it
13461         work for interface methods.
13462
13463 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13464
13465         * process.c: quote the string passed to the shell using g_shell_quote.
13466
13467 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13468
13469         * threads.c:
13470         (mono_threads_manage): don't remove the finalizer thread and self
13471         from the threads hash table so that mono_thread_manage can be called
13472         more than once.
13473
13474 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13475
13476         * process.c: quote the arguments when UseShellExecute is true. Fixes
13477         bug #55790.
13478
13479 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13480
13481         * threads.c: set mono_thread_detach as a cleanup routine for every
13482         thread. This way it's always executed upon thread termination, either
13483         aborted or finished normally. No more xsp hangs!
13484
13485 2004-03-17  Martin Baulig  <martin@ximian.com>
13486
13487         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13488         `int count_nested' and a `MonoType **nested'.
13489
13490         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13491         most of the functionality into a new static
13492         do_mono_reflection_bind_generic_parameters() and don't take a
13493         `MonoType *nested_in' argument any more.  Don't compute nested
13494         types here.
13495         (mono_reflection_generic_inst_get_nested_types): New public method
13496         to get nested types.
13497
13498         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13499         we're a nested class.
13500
13501         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13502         mono_reflection_generic_inst_get_nested_types() to compute the
13503         nested types.
13504
13505 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13506
13507         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13508         descriptive error message under windows.
13509         
13510 2004-03-17  Martin Baulig  <martin@ximian.com>
13511
13512         * class.c (dup_type): Added `const MonoType *original' argument;
13513         copy the attrs from the original type.
13514
13515 2004-03-17  Martin Baulig  <martin@ximian.com>
13516
13517         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13518         `m->generic_inst_cache' here.
13519
13520 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13521
13522         * exception.h exception.c: Add stack_overflow_exception.
13523
13524 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13525
13526         * threadpool.c:
13527         (overlapped_callback): call SetEvent *after* invoking the callback.
13528         No need to call CloseHandle.
13529
13530 2004-03-16  Martin Baulig  <martin@ximian.com>
13531
13532         * reflection.c (mono_image_get_fieldref_token): Take a
13533         `MonoReflectionField *' instead of a `MonoClassField *' and a
13534         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13535
13536 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13537
13538         * appdomain.c: don't add the culture to the filename we're looking for
13539         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13540
13541 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13542
13543         * locales.c: don't ignore symbols when doing case insensitive compares.
13544         Thanks Dick! Fixes bug #54046.
13545
13546         * threads.c: surround 'threads' usage with enter/leave in
13547         mono_thread_manage.
13548
13549 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13550
13551         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13552         implicitly marshalled as [Out]. Fixes #55450.
13553
13554         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13555         an exception.
13556
13557 2004-03-16  Martin Baulig  <martin@ximian.com>
13558
13559         * class.c (mono_class_from_generic_parameter): Use the actual
13560         parameter name. 
13561
13562 2004-03-16  Martin Baulig  <martin@ximian.com>
13563
13564         * reflection.c (type_get_signature_size): New static function.
13565         Compues the size of the type in a method signature.
13566         (method_get_signature_size): New static function; calls
13567         type_get_signature_size() to compute the actual size of the
13568         method's signature.
13569         (method_encode_signature): Use method_get_signature_size() to get
13570         the signature's size rather than using `nparams * 10'.
13571
13572 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13573
13574         * file-io.h: define here WapiOverlapped on windows. I don't want the
13575         regular OVERLAPPED one.
13576
13577         * file-io.c:
13578         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13579         Disabling AIO on windows.
13580
13581 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13582
13583         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13584         bug #55385.
13585
13586 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13587
13588         * appdomain.c: upgraded corlib version.
13589
13590         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13591         and BeginWrite. Allow opening files for asynchrnous operations.
13592
13593         * file-io.h: new struct that maps FileStreamAsyncResult.
13594         * icall.c: added new icalls.
13595         * process.[ch]: support setting child process environment variables
13596         and use the SHELL or COMSPEC when UseShellExecute is true.
13597
13598         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13599         callback for async. IO is here and also BindHandle.
13600
13601         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13602         from here.
13603
13604 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13605
13606         * reflection.c (create_custom_attr): Allow len == 0.
13607
13608         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13609         computation on big-endian machines.
13610
13611 2004-03-13  Martin Baulig  <martin@ximian.com>
13612
13613         * class.h (MonoGenericInst): Added `int count_ifaces'.
13614
13615         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13616         `ginst->count_ifaces' instead `klass->interface_count' since we
13617         may get called before the vtable is created.
13618
13619         * loader.c (mono_method_get_param_names): If we're a generic
13620         instance, return and don't initialize the class.
13621
13622         * reflection.c (mono_reflection_setup_generic_class): Don't call
13623         ensure_runtime_vtable().
13624         (mono_reflection_bind_generic_parameters): Set
13625         `ginst->count_ifaces'.
13626
13627 2004-03-11  Jackson Harper <jackson@ximian.com>
13628
13629         * icall.c:
13630         * unicode.c:
13631         * unicode.h: Remove unused System.Char icalls.
13632         
13633 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13634
13635         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13636         code when we P/Invoke the first library in Windows.Forms, instead
13637         of when we first open the assembly.
13638
13639         * assembly.c: Drop the lookup from here.
13640
13641 2004-03-10  Martin Baulig  <martin@ximian.com>
13642
13643         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13644         class for properties, fields and events.  Finally fixes #54945.
13645
13646 2004-03-10  Martin Baulig  <martin@ximian.com>
13647
13648         * metadata.c (mono_metadata_class_equal): New static function;
13649         checks whether two generic instances or two generic parameters are
13650         equal.
13651         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13652         compare classes.        
13653
13654 2004-03-10  Martin Baulig  <martin@ximian.com>
13655
13656         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13657
13658         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13659         argument and write it into the `reflection_info' field.
13660
13661         * icall.c
13662         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13663         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13664
13665 2004-03-09  Jackson Harper  <jackson@ximian.com>
13666
13667         * char-conversions.h: use 8 bits for numeric data its all we need
13668         * icall.c: numeric data is only 8 bits now.
13669
13670 2004-03-09  Martin Baulig  <martin@ximian.com>
13671
13672         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13673
13674         * class.c (init_properties, init_events): Initialize the new
13675         `parent' field.
13676
13677         * reflection.c (typebuilder_setup_properties): Likewise.
13678         (typebuilder_setup_events): Likewise.
13679
13680         * reflection.h (MonoEventInfo): Replaced `parent with
13681         `declaring_type' and `reflected_type'.
13682
13683         * icall.c (ves_icall_get_property_info): Distinguish between
13684         declaring and reflected type.
13685         (ves_icall_get_event_info): Likewise.
13686
13687 2004-03-09  Martin Baulig  <martin@ximian.com>
13688
13689         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13690         (ves_icall_Type_GetField): Correctly set field->klass.
13691
13692 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13693
13694         * loader.h: Fix warning.
13695
13696 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13697
13698         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13699         library routine if present.  Notice that it will still continue
13700         executing even if its missing, for those working on the Gtk#
13701         edition of Windows.Forms.
13702
13703         * assembly.c (do_mono_assembly_open): If loading the
13704         System.Windows.Forms call mono_loader_wini_init.
13705
13706 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13707
13708         * class.h: Added MonoRemoteClass struct.
13709         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13710         function for MonoStrings.
13711         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13712         Added internal call for getting the proxy type.
13713         * marshal.c: Get the type of transparent proxies from its remote_class.
13714         Added methods that generate the IL for type checks and casts:
13715         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13716         mono_marshal_get_proxy_cancast.
13717         * marshal.h: Declaration of the previous new methods.
13718         * object.c: Added new moethods for creating and updating MonoRemoteClass
13719         instances: mono_remote_class, mono_upgrade_remote_class, 
13720         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13721         * verify.c: FIx transparent_proxy_fields layout.
13722         * appdomain.c: Bump corlib version.
13723
13724 2004-03-04  Jackson Harper  <jackson@ximian.com>
13725
13726         * icall.c: Add icall to access char conversion tables.
13727         * char-conversions.h: Character conversion tables.
13728         * Makefile.am: Add char-conversions.h private header file.
13729         
13730 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13731
13732         * appdomain.c (unload_thread_main): Increase unloading timeout to
13733         10 sec as a temporary workaround for Nant problems.
13734
13735 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13736
13737         * gc.c: Add checks for GC_enable and GC_disable.
13738
13739         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13740         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13741         (bug #54988).
13742         
13743 2004-02-27  Martin Baulig  <martin@ximian.com>
13744
13745         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13746         `MonoReflectionType *' instead of a `MonoType *'.
13747
13748 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13749
13750         * gc.c (run_finalize): Avoid finalizing the object representing the
13751         finalizer thread.
13752         (finalizer_thread): Fix warning.
13753
13754 2004-02-25  Martin Baulig  <martin@ximian.com>
13755
13756         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13757         argument for nested types.
13758         (mono_class_create_generic): Added support for nested generictypes.
13759
13760         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13761         `GList *nested'.
13762
13763         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13764
13765         * reflection.c (method_encode_signature): Increase the minimum
13766         value of `size' from 10 to 11.
13767         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13768         and `MonoType **types' arguments instead of the `MonoArray
13769         *types'; added `MonoType *nested_in'.  Recursively instantiate
13770         nested classes. 
13771
13772 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13773
13774         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13775         stack_overflow_ex members which are used by exception handling.
13776
13777         * appdomain.c (mono_runtime_init): Initialize the new members.
13778
13779         * gc.c (mono_gc_enable): New helper function.
13780         * gc.c (mono_gc_disable): New helper function.
13781
13782 2004-02-23  Martin Baulig  <martin@ximian.com>
13783
13784         * icall.c: I must have been really stupid - make it actually work
13785         this time ;-)
13786
13787 2004-02-23  Martin Baulig  <martin@ximian.com>
13788
13789         * loader.c (method_from_memberref): Only inflate the method if
13790         it's in another klass.
13791
13792 2004-02-23  Martin Baulig  <martin@ximian.com>
13793
13794         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13795         (mono_class_init): If we're a generic instance and an interface,
13796         compute `class->interface_id'; also create `class->interfaces'
13797         here and inflate them.
13798
13799         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13800         `ginst->is_open'.
13801         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13802
13803         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13804
13805 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13806
13807         * reflection.c (method_encode_code): Improved the error message
13808         generated by the exception.
13809
13810 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13811
13812         * icall.c: Martin did not do what he said in the ChangeLog for
13813         2004-02-18, but put back the changes for properties and events.
13814         Commenting those changes out again and adding comment to bug #54518.
13815         
13816         * process.c: removed warning.
13817
13818 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13819
13820         * marshal.c (emit_struct_conv): Print an error message instead of
13821         asserting when a type does not have the StructLayout attribute.
13822
13823 2004-02-20  Martin Baulig  <martin@ximian.com>
13824
13825         * reflection.c (mono_type_get_object): Also use the cache for
13826         generic instances.
13827         (mono_reflection_bind_generic_parameters): Always compute
13828         `ginst->ifaces'.        
13829
13830 2004-02-20  Martin Baulig  <martin@ximian.com>
13831
13832         * class.h (MonoGenericMethod): Removed `klass'.
13833
13834         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13835         *klass' argument.
13836
13837 2004-02-20  Martin Baulig  <martin@ximian.com>
13838
13839         * reflection.c (method_encode_methodspec): Actually use the
13840         uninflated signature for the memberref.
13841
13842 2004-02-20  Martin Baulig  <martin@ximian.com>
13843
13844         * class.h (MonoGenericMethod): Removed `declaring'.
13845
13846         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13847         is NULL, compute it here.
13848
13849 2004-02-20  Martin Baulig  <martin@ximian.com>
13850
13851         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13852
13853         * metadata.c (mono_metadata_generic_inst_hash): New method.
13854         (mono_metadata_generic_inst_equal): New method.
13855
13856         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13857         `klass->image->generic_inst_cache' cache to avoid creating
13858         duplicate MonoGenericInst's.
13859
13860         * class.c (mono_class_inflate_generic_type): Use the cache.
13861
13862 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13863
13864         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13865
13866 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13867
13868         * icall.c: added Socket.WSAIoctl icall.
13869
13870         * socket-io.[ch]: implemented
13871         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13872
13873 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13874
13875         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13876
13877 2004-02-18  Urs C Muff  <umuff@quark.com>
13878
13879         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13880         this work on PPC and other big-endian architectures.
13881
13882         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13883         fields with an underscore to make sure they're only accessed by
13884         the read32() macro.
13885
13886 2004-02-18  Martin Baulig  <martin@ximian.com>
13887
13888         * icall.c: Put the klass->refclass changes back for methods and
13889         fields, but not for properties and events.  We're currently not
13890         distinguishing between DeclaringType and ReflectedType for
13891         properties and events, that's what caused the regressions.
13892
13893 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13894
13895         * object.c:
13896         (mono_async_result_new): the handle can be NULL.
13897
13898         * threadpool.c: Use an event instead of a semaphore, don't initialize
13899         it until needed. This saves quite a few semaphores from being created
13900         when using the threadpool.
13901
13902 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13903
13904         * object.c (mono_string_is_interned_lookup): Fix interning of long
13905         strings. Fixes #54473.
13906
13907         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13908
13909         * icall.c: Revert the klass->refclass changes since they introduce
13910         regressions (bug #54518).
13911
13912 2004-02-18  Martin Baulig  <martin@ximian.com>
13913
13914         * class.c (mono_class_init): If we're a generic instance and don't
13915         come from a TypeBuilder, inflate our members here.
13916         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13917         (mono_class_create_generic): New public method.
13918         (mono_class_initialize_generic): Removed.
13919         (get_instantiation_name): Renamed to
13920         _mono_class_get_instantiation_name() and made it public.
13921
13922 2004-02-18  Martin Baulig  <martin@ximian.com>
13923
13924         * class.c (mono_class_inflate_generic_type): Clear the new
13925         instance's `nginst->klass' when inflating a generic instance.
13926         (mono_class_is_subclass_of): Added (basic) support for generic
13927         instances.
13928
13929 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13930
13931         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13932         MonoMempool to hold compiled native code.
13933
13934 2004-02-17  Martin Baulig  <martin@ximian.com>
13935
13936         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13937         `properties'.
13938
13939         * reflection.c (mono_reflection_generic_inst_initialize): Added
13940         `MonoArray *properties' argument.
13941
13942         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13943
13944 2004-02-17  Martin Baulig  <martin@ximian.com>
13945
13946         * icall.c (ves_icall_Type_GetFields): Renamed to
13947         ves_icall_Type_GetFields_internal() and added a
13948         `MonoReflectionType *rtype' argument; pass it to
13949         mono_field_get_object() to set the field's "reflected" type.
13950         (ves_icall_Type_GetConstructors): Likewise.
13951         (ves_icall_Type_GetEvents): Likewise.
13952         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13953         argument; pass it to mono_method_get_object() to set the method's
13954         "reflected" type.       
13955
13956 2004-02-17  Martin Baulig  <martin@ximian.com>
13957
13958         * class.h (MonoDynamicGenericInst): New type.
13959         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13960
13961         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13962         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13963         (ves_icall_MonoGenericInst_GetFields): New interncall.
13964
13965         * class.c (mono_class_from_generic): Don't call
13966         mono_class_initialize_generic() if this is a dynamic instance;
13967         ie. it's being created from a TypeBuilder.
13968         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13969         `class->byval_arg.type'.
13970
13971         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13972         to `inflate_method' and made static.
13973         (mono_reflection_inflate_field): Removed.
13974         (mono_reflection_generic_inst_initialize): New public method.
13975
13976         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13977         `ctors' and `fields'; added `initialized'.
13978
13979 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13980
13981         * debug-helpers.c (mono_method_full_name): Fix output for empty
13982         namespaces.
13983
13984 2004-02-12  Martin Baulig  <martin@ximian.com>
13985
13986         * class.h (MonoClassField): Added `MonoType *generic_type'.
13987
13988         * reflection.c (mono_image_get_fieldref_token): Added support for
13989         instantiated generic types.
13990         (field_encode_inflated_field): Removed.
13991         (mono_image_get_inflated_field_token): Removed.
13992         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13993
13994         * reflection.h (MonoReflectionInflatedField): Removed.
13995
13996 2004-02-12  Martin Baulig  <martin@ximian.com>
13997
13998         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13999         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14000
14001         * reflection.c (mono_image_get_methodspec_token): Take a
14002         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14003         (mono_image_create_token): Check whether we have a
14004         `method->signature->gen_method' and call
14005         mono_image_get_methodspec_token() if appropriate.
14006         (inflated_method_get_object): Removed.
14007         (mono_reflection_bind_generic_method_parameters): Return a
14008         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14009         (mono_reflection_inflate_method_or_ctor): Likewise.
14010
14011         * reflection.h (MonoReflectionInflatedMethod): Removed.
14012
14013 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14014
14015         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14016         for custom valuetype marshalling.
14017
14018         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14019
14020 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14021
14022         * icall.c: fixed WSAGetLastError_internal name.
14023
14024 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14025
14026         * threads.c (mono_thread_attach): Allow this to be called multiple
14027         times for a thread.
14028         
14029         * threads.c (build_wait_tids): Do not wait for ourselves.
14030
14031         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14032         appdomain list is empty.
14033
14034         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14035         memory returned by mono_string_builder_to_utf16, since it points into
14036         managed memory. Thanks to Bernie Solomon for noticing this.
14037
14038         * icall.c: Add AppDomainSetup icalls.
14039
14040         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14041
14042         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14043         types.
14044
14045         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14046         custom attributes to the method_aux struct. Also fix array indexes etc.
14047
14048         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14049         
14050 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14051
14052         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14053         (both static and runtime) and reduce startup time.
14054
14055 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14056
14057         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14058         AsAny marshalling conversion instead of crashing.
14059
14060         * marshal.c: Fix warnings.
14061
14062 2004-02-09  Martin Baulig  <martin@ximian.com>
14063
14064         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14065
14066         * reflection.h (MonoReflectionInflatedMethod): Removed the
14067         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14068
14069         * reflection.c (method_encode_methodspec): Removed the `method'
14070         argument; we get it from `gmethod->declaring'.
14071         (inflated_method_get_object): Removed the `declaring' argument.
14072
14073 2004-02-09  Martin Baulig  <martin@ximian.com>
14074
14075         * class.h (MonoGenericMethod): New type.
14076         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14077         `generic_method'.
14078
14079         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14080         a `MonoGenericMethod *gen_method' one.
14081
14082         * class.c (mono_class_inflate_generic_type): Take an additional
14083         `MonoGenericMethod * argument.  This is only non-NULL if we're
14084         inflating types for a generic method.   
14085         (mono_class_inflate_generic_signature): Renamed to
14086         inflate_generic_signature() and made static; take a
14087         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14088         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14089         instead of a `MonoGenericInst *' one.
14090         (mono_class_inflate_generic_method): Likewise.
14091
14092         * reflection.c (encode_generic_method_sig): Take a
14093         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14094         (method_encode_methodspec): Likewise.
14095         (inflated_method_get_object): Likewise. 
14096
14097         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14098         field with a `MonoGenericMethod *gmethod' one.  
14099
14100 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14101
14102         * class.h (mono_class_has_parent): add parens to expansion
14103         so you can ! this.
14104
14105 2004-02-08  Martin Baulig  <martin@ximian.com>
14106
14107         * image.h (MonoImage): Removed `generics_cache'.
14108
14109         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14110         instead of a `MonoType *' argument; removed the `inflate_methods'
14111         argument.  Don't inflate methods here.
14112
14113         * loader.c (find_method): If it's a generic instance, call
14114         mono_class_init() on the `sclass->generic_inst->generic_type'.
14115
14116         * metadata.c (mono_type_size): Make this work on uninitialized
14117         generic instances; call it on the `ginst->generic_type's class.
14118
14119         * reflection.c (mono_reflection_bind_generic_parameters): Call
14120         mono_class_from_generic() to create the `ginst->klass'.
14121
14122 2004-02-08  Martin Baulig  <martin@ximian.com>
14123
14124         * class.h (MonoClass): Changed type of `generic_inst' from
14125         `MonoType *' to `MonoGenericInst *'.
14126
14127 2004-02-08  Martin Baulig  <martin@ximian.com>
14128
14129         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14130         mono_type_get_object(), this is now creating a `MonoGenericInst'
14131         for MONO_TYPE_GENERICINST.
14132         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14133         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14134
14135         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14136         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14137         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14138         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14139         and reflected type.
14140
14141         * reflection.h (MonoReflectionInflatedMethod): Removed
14142         `declaring_type' and `reflected_type'.
14143
14144 2004-02-08  Martin Baulig  <martin@ximian.com>
14145
14146         * class.h (MonoGenericInst): Added `MonoType *parent' and
14147         `MonoType **ifaces'.
14148
14149         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14150         `parent' and `interfaces'.
14151
14152         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14153         `MonoType *' argument and return a `MonoType *'.
14154
14155         * icall.c
14156         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14157         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14158
14159 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14160
14161         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14162         valuetype marshalling.
14163
14164 2004-02-06  Martin Baulig  <martin@ximian.com>
14165
14166         * class.c
14167         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14168         (my_mono_class_from_generic_parameter): Likewise.
14169
14170 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14171
14172         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14173         contents of the symbol files lazily.
14174
14175         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14176
14177         * threads.h threads.c icall.c: New icalls for getting and setting the
14178         threads name.
14179
14180 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14181
14182         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14183         Raise an exception when the domain is not found.
14184
14185 2004-02-03  Martin Baulig  <martin@ximian.com>
14186
14187         * reflection.c (mono_image_get_methodspec_token): Use the
14188         uninflated signature; fixes gen-33.
14189
14190 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14191
14192         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14193         the finalizer code can use thread functionality.
14194
14195         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14196         the finalizer thread.
14197
14198         * threads.c: Make some functions more robust.
14199
14200         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14201
14202         * metadata.h: Add new marshalling conventions.
14203
14204         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14205         stringbuilder marshalling. Fixes #53700.
14206
14207         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14208
14209         * reflection.c (mono_image_get_type_info): Save declarative security
14210         info.
14211
14212         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14213         unmanaged fields as well.
14214
14215         * appdomain.c: Bump corlib version.
14216
14217 2004-02-01  Martin Baulig  <martin@ximian.com>
14218
14219         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14220         method type arguments.  
14221
14222 2004-01-30  Duncan Mak  <duncan@ximian.com>
14223
14224         * marshal.h: Add prototype for
14225         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14226         and
14227         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14228         fix the build.
14229
14230 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14231
14232         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14233         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14234
14235 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14236
14237         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14238         custom marshalling of valuetypes.
14239
14240         * marshal.c: Fix some warnings.
14241
14242 2004-01-29  Martin Baulig  <martin@ximian.com>
14243
14244         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14245         for generic method parameters.
14246
14247         * reflection.c (method_encode_methodspec): Write the uninflated
14248         signature into the methodspec table.
14249         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14250         is always the uninflated method.
14251         (reflection_methodbuilder_to_mono_method): Copy the generic
14252         parameters from the MethodBuilder into `header->gen_params'.
14253
14254 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14255
14256         * class.c (mono_class_from_generic_parameter): Fix warning.
14257
14258 2004-01-27  Martin Baulig  <martin@ximian.com>
14259
14260         * class.c (mono_class_from_generic_parameter): Don't create
14261         `klass->methods' here.  
14262
14263 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14264
14265         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14266         extension since it does not work with libraries named lib<FOO>.dll.so.
14267
14268 2004-01-25  Martin Baulig  <martin@ximian.com>
14269
14270         * class.c (mono_class_inflate_generic_type): Added support for
14271         MONO_TYPE_GENERICINST.
14272
14273         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14274         inflate methods on open constructed types.      
14275
14276 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14277
14278         * object.c: fire ProcessExit event in the root AppDomain after running
14279         Main. Fixes bug #53299.
14280
14281 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14282
14283         * socket-io.c: include the new socket-wrappers.h header.
14284         Use the wrappers instead of the unix socket functions to make the code
14285         more clear.
14286
14287 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14288
14289         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14290
14291         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14292         Fixes #22532.
14293
14294 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14295
14296         * reflection.c (mono_image_create_pefile): Handle the case when the
14297         entry point is not a MethodBuilder.
14298
14299         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14300         field to ReflectionMethod since it is not allways a builder.
14301
14302         * reflection.c (type_get_fully_qualified_name): New helper function to
14303         return the fully qualified name of a type.
14304
14305         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14306         type name for custom marshallers.
14307
14308         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14309
14310         * class.c (mono_class_setup_vtable): If a parent class already 
14311         implements an interface, use the implementing methods from that class.
14312         Fixes #53148.
14313
14314 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14315
14316         * threadpool.c: just return instead of ExitThread to allow for thread
14317         clean up earlier.
14318
14319 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14320
14321         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14322         when closing resource modules.
14323
14324         * reflection.c (mono_image_create_pefile): Handle the case when the
14325         entry point is not a MethodBuilder.
14326
14327         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14328         field to ReflectionMethod since it is not allways a builder.
14329
14330 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14331
14332         * marshal.c (mono_marshal_get_managed_wrapper): 
14333         mono_marshal_alloc takes native int so CONV_I
14334         the arg for 64bits.
14335
14336 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14337
14338         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14339         tokens in the cattr table. Fixes #53108.
14340
14341 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14342
14343         * loader.c: don't trim ".dll" before looking up in the config file.
14344         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14345
14346 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14347
14348         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14349         Return the module which contains the resource as well.
14350         (ves_icall_System_Reflection_Module_Close): New icall.
14351
14352         * appdomain.c: Bump corlib version number.
14353
14354         * image.c (mono_image_addref): New public function.
14355
14356         * assembly.c: Call mono_image_addref.
14357
14358         * reflection.c (mono_module_get_object): Increase reference count of 
14359         the image.
14360
14361         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14362         Fixes #22532.
14363
14364         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14365         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14366         proper exceptions on DllImport problems.
14367
14368 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14369
14370         * class.c, metadata.c: eliminate CSIZE macro.
14371
14372 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14373
14374         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14375         * object.h: Added async_callback field in MonoAsyncResult.
14376         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14377         * verify.c: Added async_callback in MonoAsyncResult layout.
14378
14379 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14380
14381         * reflection.c (mono_reflection_get_custom_attrs): Add support
14382         for Modules.
14383
14384 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14385
14386         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14387         marshalling.
14388         (mono_marshal_method_from_wrapper): Add null pointer check.
14389
14390 2004-01-16  Martin Baulig  <martin@ximian.com>
14391
14392         * debug-mono-symfile.h: Set version number to 36 and reflect
14393         latest symbol writer changes.
14394
14395 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14396
14397         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14398         multi-dimensional arrays.
14399         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14400         (mono_class_from_mono_type): Use bounded_array_class_get.
14401         
14402         * class.c (mono_bounded_array_class_get): New function which takes
14403         a 'bounded' bool argument to distinguish vectors from one dimensional
14404         arrays.
14405
14406         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14407         bounded_array_class_get if the array has bounds.
14408
14409         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14410         Search modules loaded using AssemblyBuilder:AddModule as well.
14411
14412 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14413
14414         * appdomain.c: increased corlib version.
14415         * filewatcher.c: removed g_print.
14416         * icall.c:
14417         (get_property_info): only allocate what is actually requested.
14418         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14419
14420 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14421
14422         * Makefile.am: added filewatcher.[ch]
14423         * filewatcher.[ch]: FileSystemWatcher runtime support.
14424         * icall.c: added new FSW icalls.
14425
14426 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14427
14428         * string-icalls.c: fix stringbuilder regression as suggested by
14429         Iain McCoy <iain@mccoy.id.au>.
14430
14431 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14432
14433         * process.c (process_read_stringtable_block): Recognize '007f' as
14434         a language neutral stringtable block.
14435
14436 2004-01-12  Patrik Torstensson
14437
14438         * object.h (MonoStringBuilder) : Changed layout to support our
14439         new stringbuilder class.
14440         * marshal.c: Change marshalling to support the new layout of 
14441         string builder.
14442         * appdomain.c: increased version number because new layout of
14443         string builder.
14444
14445 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14446
14447         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14448         assembly name as an string instead of an AssemblyName, since it is
14449         easier to extract info from it.
14450
14451         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14452         the culture subdirectories too. Fixes #52231.
14453
14454 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14455
14456         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14457         It takes 2 new parameters with an optional name for the method to look
14458         for and case ignoring info.
14459
14460         * threadpool.c: removed unused variable.
14461
14462 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14463
14464         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14465         It takes 2 new parameters with an optional name for the property to look
14466         for and case ignoring info.
14467         Fixes bug #52753.
14468
14469 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14470
14471         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14472         Fix #52451.
14473
14474 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14475
14476         * appdomain.c:
14477         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14478         Fixes bug #52630.
14479
14480 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14481
14482         * reflection.c: Add support for more than one unmanaged resource.
14483
14484         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14485         in field->def_value, as done in all other cases.
14486
14487         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14488         TypeBuilders.
14489
14490         * reflection.c (mono_reflection_create_runtime_class): Remove 
14491         errorneous assignment to klass->element_class, since it is already
14492         done in mono_reflection_setup_internal_class.
14493
14494 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14495
14496         * gc.c: added missing LeaveCriticalSection.
14497         * icall.c: indented a couple of lines.
14498         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14499         if we call EndInvoke inside a callback. Fixes bug #52601.
14500
14501 2004-01-07  Martin Baulig  <martin@ximian.com>
14502
14503         * mono-debug-debugger.h
14504         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14505
14506 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14507
14508         * appdomain.c: Use messages in NotImplementedException.
14509
14510         * exception.c (mono_get_exception_not_implemented): Now this takes
14511         a message argument.
14512
14513         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14514         exception instead of g_asserting an aborting when something is not
14515         implemented.
14516
14517         Add some inline docs.
14518
14519 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14520
14521         * reflection.h: Update after changes to object layout.
14522
14523         * reflection.c: Implement saving of unmanaged aka win32 resources.
14524
14525         * appdomain.c: Bump version number.
14526
14527         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14528         Handle missing domains gracefully.
14529
14530 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14531
14532         * file-io.c : On Windows, there are much more invalid_path_chars.
14533
14534 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14535
14536         * class.h, object.c: prepare for GetType () speedup.
14537
14538 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14539
14540         * profiler.c: workaround for --profile null reference exception on
14541           cygwin. Patch by Patrik Torstensson.
14542
14543 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14544
14545         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14546         make work for unaligned access.
14547
14548 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14549
14550         * class.c: small cleanup (class->fields [i] -> field).
14551         * image.c: check address of metadata is valid.
14552
14553 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14554
14555         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14556         search the list of loaded assemblies.
14557
14558         * reflection.c (mono_reflection_type_from_name): Use 
14559         mono_assembly_loaded instead of mono_image_loaded.
14560
14561         * reflection.c: Fix warnings.
14562
14563 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14564
14565         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14566         is dynamic. This is needed since an assembly can contain both dynamic and
14567         non-dynamic images.
14568
14569         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14570         assembly->dynamic.
14571
14572         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14573
14574         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14575         to store modules loaded using AddModule.
14576
14577         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14578         on Modules.
14579
14580         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14581
14582         * reflection.c (mono_image_fill_export_table_from_module): New function to
14583         fill out the EXPORTEDTYPES table from a module.
14584
14585         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14586         into a separate function. Also handle loaded non-dynamic modules.
14587
14588         * reflection.c (mono_image_basic_init): Fix memory allocation.
14589
14590         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14591
14592         * assembly.c (mono_assembly_load_references): Make this public.
14593
14594 2003-12-19  Martin Baulig  <martin@ximian.com>
14595
14596         * class.c (mono_class_initialize_generic): Made this static, take
14597         a `MonoGenericInst *' instead of a `MonoClass *'.
14598         (mono_class_from_generic): Call mono_class_initialize_generic()
14599         unless we're already initialized or being called from
14600         do_mono_metadata_parse_generic_inst().
14601
14602         * class.h (MonoGenericInst): Added `initialized' and
14603         `init_pending' flags.
14604
14605         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14606         `mono_class_init (gklass)' or mono_class_initialize_generic()
14607         here; set `generic_inst->init_pending' while parsing the
14608         `type_argv'.
14609
14610 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14611
14612         * locales.c: include string.h for memxxx prototypes
14613
14614 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14615
14616         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14617         constructor when accessing literal fields.
14618
14619 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14620
14621         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14622
14623         * reflection.c (assembly_add_resource_manifest): New function to fill
14624         the MANIFESTRESOURCE table.
14625
14626         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14627
14628         * reflection.h: Update to changes in class layout.
14629
14630         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14631         Reenable call to mono_runtime_is_shutting_down ().
14632
14633         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14634         determine if the runtime is shutting down.
14635
14636 2003-12-16  Jackson Harper <jackson@ximian.com>
14637
14638         * icall.c: comment out call to mono_runtime_is_shutting_down to
14639         fix build.
14640         
14641 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14642
14643         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14644         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14645
14646 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14647
14648         * reflection.c: move definition of swap_with_size
14649         to before its first call
14650
14651 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14652
14653         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14654
14655         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14656         icall.
14657
14658         * object.c: Fix warnings.
14659
14660         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14661         members if FlattenHierarchy is set.
14662
14663         * reflection.c (mono_image_add_decl_security): New function to emit
14664         declarative security.
14665
14666         * reflection.h reflection.c: Add support for declarative security.
14667
14668         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14669         
14670 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14671
14672         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14673         
14674         * appdomain.c verify.c: Moved corlib version checking into its own
14675         function in appdomain.c since it needs to create vtables etc.
14676
14677 2003-12-13  Patrik Torstensson <p@rxc.se>
14678
14679         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14680         instead of unwrapped server.
14681
14682 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14683
14684         * verify.c (check_corlib): Fix field index.
14685
14686 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14687
14688         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14689         GetGacPath icall.
14690
14691 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14692
14693         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14694         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14695         cope with sizeof(size_t) != sizeof(guint32).
14696
14697 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14698
14699         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14700         in case of failure.
14701
14702 2003-12-10  Mark Crichton <crichton@gimp.org>
14703
14704         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14705         in managed code.
14706
14707         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14708
14709 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14710
14711         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14712         marked as deleted.
14713
14714 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14715
14716         * verify.c (check_corlib): Handle the case when the version field is 
14717         initialized by a static constructor.
14718
14719 2003-12-08  Patrik Torstensson  <p@rxc.se>
14720
14721     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14722
14723 2003-12-08  Martin Baulig  <martin@ximian.com>
14724
14725         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14726         a MonoReflectionGenericParameter, also take the parameter index
14727         and name as arguments.
14728         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14729         (ves_icall_MonoGenericParam_initialize): New interncall.
14730         (ves_icall_Type_make_byref_type): New interncall.
14731
14732         * reflection.h (MonoReflectionGenericParam): Derive from
14733         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14734         `index' fields.
14735
14736         * reflection.c (mono_reflection_define_generic_parameter): Create
14737         and return a new MonoReflectionGenericParam; don't initialize the
14738         constraints here.
14739         (mono_reflection_initialize_generic_parameter): New public method;
14740         initializes the constraints and creates the `param->pklass'.
14741
14742 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14743
14744         * reflection.h reflection.c: Use the new fields 'num_types', 
14745         'num_fields' and 'num_methods' to track the number of types etc.
14746
14747         * verify.c (check_corlib): Check corlib version number.
14748
14749 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14750
14751         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14752         function works on all methods.
14753
14754 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14755
14756         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14757         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14758         the custom_type_info flag of the transparent proxy.
14759         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14760         objects that supports IRemotingTypeInfo.
14761         * object.h: Added custom_type_info field in transparent proxy.
14762
14763 2003-12-06  Martin Baulig  <martin@ximian.com>
14764
14765         * class.c (mono_class_create_from_generic): Removed.
14766         (mono_class_from_generic): Check `ginst->klass' before doing
14767         anything else.  This is important to fully support "recursive"
14768         generic types.
14769
14770         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14771         empty `generic_inst->klass' before doing anything else.
14772
14773 2003-12-06  Dick Porter  <dick@ximian.com>
14774
14775         * verify.c: 
14776         * object.h:
14777         * icall.c:
14778         * locales.c: Use C structs to access class fields.  Don't do a
14779         conversion between MonoString and UChar because both are
14780         platform-endian UTF-16.  Compare now takes startindex and count
14781         parameters.  Add a char overload for IndexOf.  Speed up the
14782         invariant string IndexOf.
14783
14784 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14785
14786         * Makefile.am (monosn_LDADD): Fix parallel build.
14787
14788 2003-12-04  Martin Baulig  <martin@ximian.com>
14789
14790         * icall.c
14791         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14792         (ves_icall_Type_make_array_type): New interncall.       
14793
14794 2003-12-04  Martin Baulig  <martin@ximian.com>
14795
14796         * locales.c: also change it in the !HAVE_ICU case.
14797
14798 2003-12-04  Dick Porter  <dick@ximian.com>
14799
14800         * icall.c:
14801         * locales.c: construct_compareinfo is now in CompareInfo, not
14802         CultureInfo.
14803
14804 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14805
14806         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14807         image->files array.
14808
14809         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14810         table as well.
14811
14812         * assembly.c (mono_assembly_load_references): Only load references
14813         once.
14814
14815         * class.c (mono_class_from_name): Avoid linear search of the 
14816         EXPORTEDTYPE table.
14817
14818         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14819
14820 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14821
14822         * image.h (MonoImage): Add 'field_cache' field.
14823
14824         * loader.c (mono_field_from_token): Cache field lookups.
14825         
14826         * reflection.c (mono_module_get_object): Fix name property.
14827
14828         * icall.c (ves_icall_get_enum_info): Update after changes to 
14829         mono_metadata_get_constant_index ().
14830
14831         * icall.c: Get rid of get_type_info icall, use a separate icall for
14832         each type property to avoid needless memory allocations. Fixes #51514.
14833
14834         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14835         to avoid needless binary searches.
14836
14837         * class.c (class_compute_field_layout): Move the initialization of
14838         field->def_value to mono_class_vtable ().
14839
14840         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14841         non-corlib types.
14842
14843         * object.c (mono_object_allocate): Make it inline.
14844
14845         * object.c (mono_object_allocate_spec): Make it inline.
14846         
14847 2003-12-02  Dick Porter  <dick@ximian.com>
14848
14849         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14850         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14851
14852 2003-12-01  Dick Porter  <dick@ximian.com>
14853
14854         * threads.c: Fix signature and call in CreateMutex and
14855         CreateEvent.
14856
14857 2003-12-01  Dick Porter  <dick@ximian.com>
14858
14859         * icall.c: 
14860         * locales.c: Implement string compares and searching
14861
14862         * object.h: Add extra Thread field
14863
14864 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14865
14866         * reflection.c (fixup_method): Add support for MonoCMethod.
14867
14868 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14869
14870         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14871
14872         * reflection.c (assembly_name_to_aname): Allow extra characters in
14873         assembly names. Fixes #51468.
14874
14875 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14876
14877         * exception.c (mono_exception_from_name_domain): New helper function.
14878
14879         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14880         exception object in the correct domain.
14881
14882         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14883         formatting + make a copy a the input data.
14884
14885         * loader.c (mono_get_method_from_token): Methods which contain
14886         native code do not have entries in the ImplMap.
14887
14888         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14889         Thanks to Gonzalo for spotting this.
14890         
14891         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14892         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14893
14894         * assembly.h (mono_assembly_load_from): Split the second part of 
14895         assembly loading into a new public function.
14896
14897         * exception.h (mono_get_exception_bad_image_format): New function.
14898
14899 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14900
14901         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14902         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14903         
14904         * icall.c: Add new icall for creating dynamic methods.
14905
14906         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14907
14908         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14909
14910         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14911         create a dynamic method.
14912
14913         * reflection.c (resolve_object): New helper function.
14914
14915         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14916         which manipulate it so they can also work on dynamic methods.
14917
14918         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14919         creating the MonoReflectionMethodAux structure if it is not needed.
14920         
14921         * reflection.h verify.c: Update after changes to object layout.
14922
14923         * reflection.c (method_builder_encode_signature): Fix compilation on
14924         gcc 2.95.x.
14925
14926 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14927
14928         * appdomain.h: Added support for context static fields. Added static_data
14929           field to MonoAppContext and renamed thread_static_fields to a more
14930           generic special_static_fields in MonoAppDomain, since it can now contain
14931           context static fields.
14932         * domain.c: Updated hashtable name.
14933         * object.c: Replaced field_is_thread_static() for a more generic
14934           field_is_special_static() which also checks for context static attribute.
14935           In mono_class_vtable(), added support for static context fields.
14936         * threads.c: Changed methods that manage thread static fields to more
14937           generic methods so they can be reused both for thread and context static
14938           data.
14939         * threads.h: Declared some new methods.
14940
14941 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14942
14943         * reflection.h: Update after changes to the managed types.
14944
14945         * reflection.c (encode_custom_modifiers): New helper function.
14946
14947         * reflection.c (method_encode_signature): Emit custom modifiers.
14948
14949         * reflection.c (field_encode_signature): Emit custom modifiers.
14950
14951 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14952
14953         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14954
14955         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14956         implementation.
14957
14958         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14959         icall.
14960
14961         * object.c (mono_field_get_value_object): New function.
14962
14963         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14964         specific.
14965
14966 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14967
14968         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14969         return a preallocated out-of-memory exception instance.
14970
14971         * object.c (out_of_memory): Use the new function.
14972
14973         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14974         flag is before the custom modifiers. Fixes #49802.
14975
14976 2003-11-16  Martin Baulig  <martin@ximian.com>
14977
14978         * class.c (mono_class_is_open_constructed_type): Implemented the
14979         MONO_TYPE_GENERICINST case.
14980
14981 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14982
14983         * assembly.c (mono_assembly_fill_assembly_name): New function to
14984         fill out the MonoAssemblyName structure.
14985         (mono_assembly_open): Use the new function.
14986
14987         * icall.c (fill_reflection_assembly_name): New helper function.
14988
14989         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14990         new function.
14991
14992         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14993
14994 2003-11-15  Martin Baulig  <martin@ximian.com>
14995
14996         * class.c (mono_class_is_open_constructed_type): New public
14997         function; checks whether a type is an open constructed type,
14998         ie. whether it still contains type parameters.
14999         (mono_class_inflate_generic_type): If we're a type parameter and
15000         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15001         type.
15002
15003         * class.h (MonoGenericInst): Added `guint32 is_open'.
15004
15005         * loader.c (method_from_methodspec): Check whether we're an open
15006         or closed constructed type and set `ginst->is_open'.
15007
15008         * reflection.c (mono_reflection_bind_generic_parameters): Check
15009         whether we're an open or closed constructed type and set
15010         `ginst->is_open'.
15011         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15012         from open constructed types.
15013
15014 2003-11-15  Martin Baulig  <martin@ximian.com>
15015
15016         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15017         a generic instance (instead of a generic type declaration) with
15018         unbound generic parameters, bind them to our actual types.
15019
15020 2003-11-14  Martin Baulig  <martin@ximian.com>
15021
15022         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15023
15024         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15025         an interface type, populate `res->interfaces' with instantiated
15026         versions of all the interfaces we inherit.
15027
15028 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15029
15030         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15031         when MONO_PATH is set but doesn't contain the install dir.
15032
15033 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15034
15035         * icall.c:
15036         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15037         it's also implemented in base classes. Fixes bug #50927.
15038
15039 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15040
15041         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15042         if this method is called from a finalizer. Fixes #50913.
15043
15044 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15045
15046         * threads.c: Implement VolatileRead/VolatileWrite
15047
15048         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15049
15050 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15051
15052         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15053         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15054         2.95.3.
15055
15056         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15057         from Peter Ross (pro@missioncriticalit.com).
15058         
15059 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15060
15061         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15062
15063 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15064
15065         * assembly.c (mono_assembly_load_references): Disable check because it
15066         triggers on older corlibs which lots of people have.
15067
15068 2003-11-12  Jackson Harper  <jackson@ximian.com>
15069
15070         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15071         load corlib.dll if mscorlib.dll is not found.
15072         * assembly.h: Remove corlib name define.
15073         * class.c:
15074         * domain.c:
15075         * image.c: Change corlib name to mscorlib.
15076         
15077 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15078
15079         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15080
15081 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15082
15083         * appdomain.h: Added loader_optimization here to sync with the C#
15084         code, and add disallow_binding_redirects field.
15085
15086 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15087
15088         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15089
15090         * reflection.c (mono_image_build_metadata): Fix crash on modules
15091         with no types.
15092
15093         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15094
15095         * icall.c (ves_icall_get_method_info): Return callingConvention as
15096         well.
15097
15098         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15099         namespaces from the EXPORTEDTYPE table as well.
15100
15101         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15102         from all modules inside the assembly.
15103         
15104 2003-11-11  Martin Baulig  <martin@ximian.com>
15105
15106         * reflection.c (mono_reflection_bind_generic_parameters): Make
15107         this work for interfaces.
15108
15109 2003-11-11  Martin Baulig  <martin@ximian.com>
15110
15111         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15112
15113 2003-11-11  Martin Baulig  <martin@ximian.com>
15114
15115         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15116         "MonoInflatedMethod" and "MonoInflatedCtor".
15117
15118 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15119
15120         * reflection.c (resolution_scope_from_image): Use the assembly table
15121         from the manifest module, since other modules don't have it.
15122
15123         * debug-helpers.c (mono_type_full_name): New helper function.
15124
15125         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15126
15127         * image.c (mono_image_load_file_for_image): New public function which
15128         is a replacement for the load_file_for_image in class.c.
15129
15130         * assembly.c (mono_assembly_load_module): A wrapper for the function
15131         above which does assembly association and reference loading too.
15132
15133         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15134
15135 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15136
15137         * appdomain.c: not all of the attributes for the full assembly name
15138         are required and the order doesn't matter. Fixes bug #50787.
15139
15140 2003-11-10  Dick Porter  <dick@ximian.com>
15141
15142         * locales.c: Use platform-endian UTF16
15143
15144 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15145
15146         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15147         
15148 2003-11-10  Martin Baulig  <martin@ximian.com>
15149
15150         * metadata.c
15151         (mono_metadata_load_generic_params): Make this actually work.
15152
15153         * reflection.c (mono_reflection_bind_generic_parameters): If our
15154         parent is a generic instance, pass all the `types' to it, no
15155         matter whether it has the same number of type parameters or not.
15156
15157 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15158
15159         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15160
15161         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15162         assignment code to this function so it gets called recursively for all
15163         modules.
15164
15165         * image.c (load_modules): Remove the assembly assignment since it is
15166         now done by mono_assembly_load_references.
15167         
15168         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15169         Add 'module' argument.
15170         (mono_module_get_types): New helper function.
15171         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15172
15173 2003-11-08  Martin Baulig  <martin@ximian.com>
15174
15175         * class.c (mono_class_inflate_generic_method): Interface method
15176         don't have a header.
15177
15178         * reflection.c (mono_image_get_methodspec_token): Take an
15179         additional `MonoGenericInst *' argument instead of reading it from
15180         the header; this is necessary to support interfaces.
15181         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15182         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15183         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15184         argument.
15185
15186         * reflection.h (MonoReflectionInflatedMethod): Added
15187         `MonoGenericInst *ginst'.
15188
15189 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15190
15191         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15192
15193 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15194
15195         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15196
15197 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15198
15199         * reflection.c 
15200         (reflection_methodbuilder_from_method_builder):
15201         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15202         initialize a ReflectionMethodBuilder structure.
15203         (mono_image_get_methodbuilder_token):
15204         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15205         tokens which point to types in another module inside the same assembly.
15206
15207         * reflection.c: Use the new helper functions.
15208         
15209         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15210
15211         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15212         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15213
15214         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15215         neccesary.
15216
15217         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15218         current module. Emit the manifest only for the main module.
15219
15220         * reflection.c (mono_image_create_token): Add assertion when a 
15221         memberref needs to be created.
15222
15223         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15224
15225         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15226         larger buffer for the custom attribute blob. Fixes #50637.
15227         
15228 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15229
15230         * threadpool.c: notify listener on async processing handles after
15231         invoking the async callback. Thanks to Zoltan.
15232
15233 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15234
15235         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15236         avoid code duplication.
15237
15238         * reflection.h (MonoDynamicImage): New type which is currently unused,
15239         but will be used through the ref.emit code in place of 
15240         MonoDynamicAssembly.
15241
15242         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15243         object layout.
15244
15245         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15246         a MonoDynamicImage instead of just a MonoImage.
15247         
15248         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15249         icalls to ModuleBuilder but keep their semantics, so they will work
15250         with moduleb->assemblyb. This will change later.
15251         
15252 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15253
15254         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15255         object layout.
15256
15257         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15258         main module, since it is now done by the managed code.
15259
15260 2003-11-03  Martin Baulig  <martin@ximian.com>
15261
15262         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15263         `ginst->klass' here.
15264         (method_encode_methodspec): Don't use the `ginst->generic_method's
15265         klass if it's a generic instance, use `ginst->klass' in this case.
15266
15267 2003-11-03  Martin Baulig  <martin@ximian.com>
15268
15269         * reflection.c (mono_image_get_generic_method_param_info):
15270         Removed, use mono_image_get_generic_param_info() instead.
15271         (mono_image_get_type_info): Write the GenericParam table before
15272         the Method table.  This is neccessary because in the GenericParam
15273         table, type parameters of the class (ie. '!0' etc.) must come
15274         before the ones from its generic methods (ie. '!!0' etc).
15275
15276 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15277
15278         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15279
15280 2003-11-02  Martin Baulig  <martin@ximian.com>
15281
15282         * reflection.c (create_generic_typespec): Take a
15283         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15284         the generic parameters from it.
15285
15286 2003-11-02  Martin Baulig  <martin@ximian.com>
15287
15288         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15289         instead of a `MonoClassField *' since we just need the type.
15290         (create_generic_typespec): New static function.  Creates a
15291         TypeSpec token for a generic type declaration.
15292         (mono_image_get_generic_field_token): New static function.
15293         (mono_image_create_token): If we're a FieldBuilder in a generic
15294         type declaration, call mono_image_get_generic_field_token() to get
15295         the token.
15296
15297 2003-11-02  Martin Baulig  <martin@ximian.com>
15298
15299         * reflection.h
15300         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15301         `MonoReflectionGenericInst *declaring_type' and
15302         `MonoReflectionGenericInst *reflected_type' fields.
15303
15304         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15305         `MonoReflectionGenericInst *declaring_type' and a
15306         `MonoReflectionGenericInst *reflected_type' argument instead of a
15307         single `MonoReflectionGenericInst *type' one.  Set
15308         `res->declaring_type' and `res->reflected_type' from them.
15309         (mono_reflection_inflate_field): Likewise.      
15310
15311 2003-11-02  Martin Baulig  <martin@ximian.com>
15312
15313         * class.c (mono_class_setup_vtable): Don't store generic methods
15314         in the vtable.  
15315
15316 2003-11-02  Martin Baulig  <martin@ximian.com>
15317
15318         * reflection.h (MonoReflectionGenericInst): Added
15319         `MonoReflectionType *declaring_type'.
15320
15321         * reflection.c (mono_reflection_bind_generic_parameters): Use
15322         `if (tb->parent)' instead of `klass->parent'.
15323
15324 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15325
15326         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15327         with an empty ASSEMBLY table.
15328
15329         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15330         variable in the inner and outer loops.
15331
15332 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15333
15334         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15335         argument.
15336
15337         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15338         
15339         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15340         icalls. Instead, do everything in managed code. This is needed since
15341         it is hard to restore the original domain etc. in unmanaged code in the
15342         presence of undeniable exceptions.
15343
15344         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15345         New icalls to push and pop appdomain refs.
15346
15347 2003-10-31  Martin Baulig  <martin@ximian.com>
15348
15349         * class.c (inflate_generic_type): Renamed to
15350         mono_class_inflate_generic_type() and made it public.
15351
15352         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15353         New interncall.
15354
15355         * loader.c (mono_field_from_memberref): Also set the retklass for
15356         typespecs.
15357
15358         * fielder.c (mono_image_get_inflated_field_token): New static
15359         method; creates a metadata token for an inflated field.
15360         (mono_image_create_token, fixup_method): Added support for
15361         "MonoInflatedField".
15362         (fieldbuilder_to_mono_class_field): New static function.
15363         (mono_reflection_inflate_field): New public function.
15364
15365         * reflection.h
15366         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15367         (MonoReflectionInflatedField): New typedef.     
15368
15369 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15370
15371         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15372         for Solaris and other platforms without s6_addr16
15373
15374 2003-10-30  Martin Baulig  <martin@ximian.com>
15375
15376         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15377         argument instead of two.
15378         (mono_class_inflate_generic_signature): Likewise.
15379         (inflate_generic_header): Likewise.
15380         (mono_class_inflate_generic_method): Likewise.  In addition, if
15381         `ginst->klass' is set, it becomes the new `method->klass'.
15382
15383         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15384         field.
15385
15386         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15387         first byte. [FIXME]
15388         (method_encode_methodspec): If we have generic parameters, create
15389         a MethodSpec instead of a MethodRef.
15390         (fixup_method): Added support for "MonoInflatedMethod" and
15391         "MonoInflatedCtor".
15392         (mono_image_create_token): Added support for "MonoInflatedMethod"
15393         and "MonoInflatedCtor".
15394         (inflated_method_get_object): New static function; returns a
15395         managed "System.Reflection.MonoInflatedMethod" object.
15396         (mono_reflection_bind_generic_method_parameters): Return a
15397         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15398         (mono_reflection_inflate_method_or_ctor): Likewise.
15399         (mono_image_get_generic_method_param_info): Initialize unused
15400         fields to zero.
15401         (mono_image_get_generic_param_info): Likewise.
15402
15403         * reflection.h (MonoReflectionInflatedMethod): New public
15404         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15405         "S.R.MonoInflatedCtor" classes.
15406
15407         * loader.c (method_from_memberref): If we're a TypeSpec and it
15408         resolves to a generic instance, inflate the method.
15409
15410 2003-10-28  Dick Porter  <dick@ximian.com>
15411
15412         * object.c (mono_runtime_run_main): Convert command-line arguments
15413         into utf8, falling back to the user's locale encoding to do so.
15414
15415 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15416
15417         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15418         at this time.
15419
15420         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15421
15422         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15423         up icalls at method definition time. Partially fixes #33569.
15424
15425 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15426
15427         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15428         marshalling of arrays. Fixes #50116.
15429
15430         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15431
15432         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15433         points to a vtable in the dying appdomain.
15434
15435         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15436         listeners into unmanaged code inside the lock.
15437
15438         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15439         domains and add some comments.
15440
15441 2003-10-25  Martin Baulig  <martin@ximian.com>
15442
15443         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15444
15445         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15446
15447         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15448         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15449         currently parsing.  Create the generic class and store it in
15450         `generic_inst->klass' before parsing the type arguments.  This is
15451         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15452         for an example.
15453         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15454         to support recursive typespec entries.
15455
15456         * class.c (mono_class_setup_parent): If our parent is a generic
15457         instance, we may get called before it has its name set.
15458         (mono_class_from_generic): Splitted into
15459         mono_class_create_from_generic() and mono_class_initialize_generic().
15460
15461 2003-10-25  Martin Baulig  <martin@ximian.com>
15462
15463         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15464         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15465         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15466         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15467
15468         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15469         (create_typespec): Likewise.
15470         (mono_reflection_bind_generic_parameters): Return a
15471         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15472         (mono_reflection_inflate_method_or_ctor): New public function.
15473
15474         * reflection.h (MonoReflectionGenericInst): New typedef.        
15475
15476 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15477
15478         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15479         inside the domain lock. Fixes #49993.
15480         
15481         * object.c (mono_class_vtable): When typed allocation is used, 
15482         allocate vtables in the GC heap instead of in the mempool, since the
15483         vtables contain GC descriptors which are used by the collector even
15484         after the domain owning the mempool is unloaded.
15485
15486         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15487
15488         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15489         reflect what it does. Also invalidate mempools instead of freeing
15490         them if a define is set.
15491
15492         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15493         of the appdomain.
15494         
15495         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15496         hold the finalizable objects in this domain.
15497
15498         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15499         appdomain.
15500
15501         * appdomain.c (mono_domain_set): New function to set the current
15502         appdomain, but only if it is not being unloaded.
15503
15504         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15505         appdomain which is being unloaded.
15506         
15507         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15508         unloading of the root appdomain.
15509
15510         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15511         icall to execute a method in another appdomain. Intended as a 
15512         replacement for InternalSetDomain, which can confuse the code 
15513         generation in the JIT.
15514
15515         * appdomain.c (mono_domain_is_unloading): New function to determine
15516         whenever an appdomain is unloading.
15517
15518         * appdomain.c (mono_domain_unload): New function to correctly unload
15519         an appdomain.
15520
15521         * assembly.c (mono_assembly_load_references): Check that an assembly
15522         does not references itself.
15523
15524         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15525         domain manually, it asks the finalizer thread to do it, then waits for
15526         the result. Also added a timeout.
15527
15528         * icall.c: Register the new icalls.
15529
15530         * threads.h threads.c: Export the mono_gc_stop_world and 
15531         mono_gc_start_world functions.
15532         
15533         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15534         function to fill out the mempool with 0x2a.
15535
15536 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15537
15538         * reflection.h (MonoReflectionMethodAux): New structure to store
15539         information which is rarely used, thus is not in the MonoMethod
15540         structure.
15541
15542         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15543         store the aux info.
15544
15545         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15546         and marshalling info into the aux structure.
15547
15548         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15549         from the aux structure.
15550
15551         * loader.c (mono_method_get_param_names): Retrieve the param names from
15552         the aux structure.
15553         
15554 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15555
15556         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15557         warning.
15558
15559 2003-10-21  Dick Porter  <dick@ximian.com>
15560
15561         * socket-io.c
15562         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15563         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15564
15565 2003-10-21  Martin Baulig  <martin@ximian.com>
15566
15567         * reflection.c (mono_reflection_bind_generic_parameters):
15568         `klass->parent' is NULL for interfaces.
15569
15570 2003-10-21  Martin Baulig  <martin@ximian.com>
15571
15572         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15573
15574 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15575
15576         * exception.c (mono_exception_from_name_msg): New helper function for
15577         creating exceptions and initializing their message field.
15578
15579         * exception.c: Simplify functions using the new helper.
15580
15581         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15582         New function.
15583
15584         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15585         mono_raise_exception, since otherwise gcc doesn't generate the function
15586         epilog for raise_exception, confusing the stack unwinding in the JIT.
15587         Fixes #45043.
15588
15589         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15590         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15591         Fixes #49499.
15592
15593 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15594
15595         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15596         utf8.
15597
15598 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15599
15600         * icall.c: Removed GetUninitializedObject method because
15601           AllocateUninitializedClassInstance does the same.
15602
15603 2003-10-18  Martin Baulig  <martin@ximian.com>
15604
15605         * class.c (inflate_generic_signature): Renamed to
15606         mono_class_inflate_generic_signature() and made it public.
15607         (my_mono_class_from_generic_parameter): New static function; if we
15608         don't already have the generic parameter's MonoClass, create a
15609         very simple one which is just used internally in the runtime and
15610         not passed back to managed code.
15611
15612         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15613
15614         * metadata.h (MonoMethodSignature): Moved the
15615         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15616         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15617
15618         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15619         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15620         interncall on the MonoMethod class, not on MethodInfo.
15621         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15622         calling mono_reflection_bind_generic_method_parameters() directly.
15623
15624         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15625         return the already computed `method->signature'.
15626         (method_from_methodspec): New static function to load a method
15627         from a MethodSpec entry.
15628         (mono_get_method_from_token): Call the new method_from_methodspec()
15629         for MethodSpec tokens.  
15630         (mono_get_method_from_token): If we're a generic method, load the
15631         type parameters.
15632
15633         * reflection.c (mono_image_get_memberref_token): Allow
15634         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15635         table.
15636         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15637         (mono_image_create_token): First check whether it's a generic
15638         method (so we'd need to create a MethodSpec), then do the other
15639         two alternatives.
15640         (mono_reflection_bind_generic_method_parameters): Return a
15641         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15642         called directly from the interncall.
15643
15644 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15645
15646         * reflection.c (load_public_key): Move loading of the public key
15647         into managed code.
15648
15649         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15650
15651         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15652         fields.
15653
15654         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15655         culture, hash_alg and public_key. Fixes #49555.
15656
15657 2003-10-17  Martin Baulig  <martin@ximian.com>
15658
15659         * class.h (MonoGenericInst): Moved this declaration here and added
15660         `MonoMethod *generic_method'.
15661
15662         * icall.c
15663         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15664         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15665
15666         * metadata.c (mono_metadata_type_equal): Two types of
15667         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15668         index; ie. don't compare the address of the `MonoGenericParam'
15669         structure.
15670         (mono_metadata_load_generic_params): Removed the `MonoMethod
15671         *method' argument.
15672
15673         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15674         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15675
15676         * reflection.c (method_encode_signature): Encode the number of
15677         generic parameters.
15678         (encode_generic_method_sig): New static function.
15679         (method_encode_methodspec): New static function; creates an entry
15680         in the MethodSpec table for a generic method.
15681         (mono_image_get_methodspec_token): New static function.
15682         (mono_image_create_token): Call mono_image_get_methodspec_token()
15683         for generic methods.
15684         (mono_reflection_bind_generic_method_parameters): New public
15685         function.  Instantiates a generic method.
15686
15687 2003-10-16  Martin Baulig  <martin@ximian.com>
15688
15689         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15690         *gen_params' here from MonoMethodHeader.
15691
15692         * metadata.c (mono_metadata_parse_method_signature): If we have
15693         generic parameters, initialize `method->gen_params' and then set
15694         the correct `type->data.generic_param' in all the parameters.
15695
15696 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15697
15698         * threads.c (mono_threads_get_default_stacksize): New function to 
15699         return the default stacksize.
15700
15701         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15702         termination of the finalizer thread, since the previous method had
15703         race conditions. Fixes #49628.
15704
15705         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15706         as for the other managed threads.
15707
15708 2003-10-16  Martin Baulig  <martin@ximian.com>
15709
15710         * class.c (inflate_generic_signature): Copy `generic_param_count'
15711         and `gen_params'.
15712
15713         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15714         New interncall.
15715
15716         * metadata.c (mono_metadata_parse_method_signature): Actually set
15717         the `method->generic_param_count' here.
15718         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15719
15720 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15721
15722         * object.h: Add a new field to TypedRef to simplify the implementation
15723         of the REFANY opcodes in the JIT.
15724
15725         * icall.c: Make use of the new field.
15726
15727         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15728         dynamically.
15729
15730 2003-10-15  Martin Baulig  <martin@ximian.com>
15731
15732         * class.c (mono_class_from_gen_param): Renamed to
15733         mono_class_from_generic_parameter() and moved most of the
15734         functionality from mono_reflection_define_generic_parameter()
15735         here; ie. we create a "real" class here.
15736         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15737         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15738         previously been called.
15739
15740         * class.h (MonoGenericParam): Moved the declaration of this struct
15741         here from metadata.h and added `MonoMethod *method'.
15742
15743         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15744         interncall.
15745
15746         * loader.c (mono_get_method_from_token): If we have any generic
15747         parameters, call mono_metadata_load_generic_params() to read them
15748         from the MONO_TABLE_GENERICPAR.
15749
15750         * metadata.c (mono_metadata_load_generic_params): Added
15751         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15752
15753         * metadata.h (MonoMethodSignature): Replaced
15754         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15755         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15756
15757         * reflection.c (mono_reflection_define_generic_parameter): Moved
15758         most of the functionality into the new
15759         mono_class_from_generic_parameter(); set the `method' field if
15760         we're a method parameter.       
15761
15762 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15763
15764         * marshal.c (emit_struct_conv): if native size is 0
15765         emit no code.
15766
15767 2003-10-14  Martin Baulig  <martin@ximian.com>
15768
15769         * icall.c: The generics API has changed in the spec since it was
15770         added to System.Type; these modifications make it match the spec
15771         again.
15772         (ves_icall_Type_GetGenericParameters): Renamed to
15773         `ves_icall_Type_GetGenericArguments'.
15774         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15775         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15776         `ves_icall_MonoType_get_HasGenericArguments'.
15777         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15778         `ves_icall_MonoType_get_IsGenericParameter'.
15779         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15780         this is no interncall anymore.
15781         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15782         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15783
15784 2003-10-14  Martin Baulig  <martin@ximian.com>
15785
15786         * reflection.c (mono_reflection_bind_generic_parameters): Also
15787         inflate generic methods if we're reading the class from IL.
15788
15789 2003-10-13  Martin Baulig  <martin@ximian.com>
15790
15791         * reflection.c (mono_reflection_define_generic_parameter): This
15792         method isn't called directly from the icall anymore; take a
15793         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15794         method generic parameters.
15795         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15796         (method_builder_encode_signature): Encode generic parameters.
15797         (mono_image_get_method_info): Write generic params to the
15798         MONO_TABLE_GENERICPARAM table.
15799
15800         * reflection.h (MonoReflectionMethodBuilder): Added
15801         `MonoArray *generic_params'.
15802
15803         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15804
15805         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15806         wrapper for mono_reflection_define_generic_parameter().
15807         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15808
15809 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15810
15811         * marshal.h: Add missing function to fix build.
15812
15813         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15814         the SetLastError pinvoke attribute.
15815
15816         * marshal.c (mono_marshal_set_last_error): New helper function called
15817         by the generated code.
15818         
15819         * marshal.c (mono_mb_emit_branch): New helper function.
15820
15821         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15822
15823         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15824         classes as parameters and return values of delegates. Fixes #29256. 
15825
15826 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15827
15828         * locales.c: use gint32 in non HAVE_ICU case
15829
15830 2003-10-11  Martin Baulig  <martin@ximian.com>
15831
15832         * mono-debug.c (mono_debug_add_method): Added a workaround for
15833         bug #48591.
15834
15835 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15836
15837         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15838         delegates passed to native code must use the STDCALL calling 
15839         convention. Fixes #35987.
15840
15841 2003-10-10  Martin Baulig  <martin@ximian.com>
15842
15843         * class.c (inflate_generic_type): If we're inflating for a generic
15844         type instance (and not for a generic method), return
15845         MONO_TYPE_MVAR unchanged.
15846
15847 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15848
15849         * string-icalls.c: Join ignores null strings in the source array.
15850         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15851         * threads.c: GetAvailableTheads is slightly more accurate.
15852
15853 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15854
15855         * threads.h threads.c : add mono_threads_set_default_stacksize
15856         and pass default to CreateThread calls.
15857
15858 2003-10-09  Dick Porter  <dick@ximian.com>
15859
15860         * icall.c:
15861         * locales.h:
15862         * locales.c: Internal calls for constructing CultureInfo and
15863         related objects from libicu (if its available.)
15864
15865 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15866
15867         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15868
15869 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15870
15871         * threadpool.c: added an argument to async_invoke_thread that is the
15872         item to process, pass the MonoAsyncResult to the thread start function
15873         when creating a new thread. This way we don't need to acquire any lock
15874         when we're creating a new thread. Readded a semaphore for faster
15875         response times (instead of that Sleep i added).
15876
15877 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15878
15879         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15880         get daylight change dates better on Windows, fix handling
15881         of platforms without tm_gmtoff.
15882
15883 2003-10-06  Martin Baulig  <martin@ximian.com>
15884
15885         * class.c (inflate_generic_method): Renamed to
15886         mono_class_inflate_generic_method() and made public.
15887         (mono_class_init): Don't inflate the generic methods here.
15888         (mono_class_from_generic): Added `gboolean inflate_methods'
15889         argument.  Inflate the methods here.
15890
15891         * loader.c (mono_method_get_param_names): Ignore instances of
15892         generic types for the moment.
15893
15894         * reflection.c (fixup_method): Added support for inflated methods.
15895         (mono_image_create_token): Use mono_image_get_methodref_token()
15896         for inflated methods.
15897         (mono_custom_attrs_from_param): Ignore instances of generic types
15898         for the moment.
15899         (mono_reflection_bind_generic_parameters): New public function.
15900         Moved all the functionality from
15901         ves_icall_Type_BindGenericParameters() here and added support for
15902         dynamic types.
15903         (mono_reflection_define_generic_parameter): Initialize
15904         `klass->methods' here.
15905
15906         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15907         functionality into mono_reflection_define_generic_parameter().
15908         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15909         TypeBuilder, return that TypeBuilder.
15910
15911 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15912
15913         * appdomain.c: removed mono_delegate_semaphore.
15914
15915         * threadpool.c:
15916         (mono_thread_pool_add): moved hash table creation inside and the thread 
15917         creation outside of the critical region.
15918         (mono_thread_pool_finish): removed obsolete code.
15919         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15920         continue or exit the thread depending on the queue.
15921
15922 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15923
15924         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15925         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15926         handle more bool marshalling options
15927
15928 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15929
15930         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15931         arrays of structs. Also add a more descriptive error message when
15932         a structure member is marshalled as LPArray.
15933
15934 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15935
15936         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15937         marshalling arrays of complex types. Fixes #29098. Also remove an
15938         usused and incomplete function.
15939
15940 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15941
15942         * gc.c: report heap_size - free_bytes as total memory allocated
15943         (bug#49362).
15944
15945 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15946
15947         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15948         fix timezone handling problems on Windows.
15949         
15950         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15951         asserts when the year is outside the range handled by ms the functions.
15952
15953         * class.c (setup_interface_offsets): If the class is an interface,
15954         fill out its interface_offsets slot.
15955
15956 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15957
15958         * threadpool.c: mark threadpool threads as background.
15959
15960 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15961
15962         * decimal.c - define DECINLINE to nothing if not using GCC
15963
15964 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15965
15966         * assembly.c: More refcount fixes.
15967
15968 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15969
15970         * string-icalls.c: if we're not trimming, return the same string.
15971         When not splitting, don't create a new string.
15972
15973 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15974
15975         * image.c:
15976         (mono_image_open): increment the ref_count inside the critical section.
15977
15978 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15979
15980         * image.c (mono_image_open): Fix reference counting bug.
15981
15982 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15983
15984         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15985         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15986         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15987         mono_lookup_pinvoke_call throws.        
15988
15989 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15990
15991         * reflection.c (mono_reflection_parse_type): Fix #49114.
15992
15993         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15994         temporary workaround for cygwin header problem.
15995
15996         * object.c (mono_object_isinst): Synchronize this with the code
15997         generated by the JIT for casts.
15998
15999 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16000
16001         * reflection.c (encode_type): Fix #38332.
16002
16003 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16004
16005         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16006         the original method from the wrapper method.
16007
16008 2003-09-25  Martin Baulig  <martin@ximian.com>
16009
16010         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16011         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16012         (ves_icall_Type_get_IsGenericInstance): New interncall.
16013
16014 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16015
16016         * object.c: fix cast warning in big endian code.
16017
16018 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16019
16020         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16021         
16022 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16023
16024         * assembly.c: don't call check_env from mono_assembly_load. It's
16025         already done once in mono_assemblies_init and may cause headaches when
16026         multiple threads are loading assemblies.
16027
16028 2003-09-19  Martin Baulig  <martin@ximian.com>
16029
16030         * reflection.c (mono_reflection_define_generic_parameter): Don't
16031         allocate `klass->methods', set `klass->flags' to
16032         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16033
16034 2003-09-18  Martin Baulig  <martin@ximian.com>
16035
16036         * class.c (mono_class_init): Don't create `class->methods' if it's
16037         already initialized.
16038
16039         * metadata.c (mono_metadata_load_generic_params): Make this
16040         actually work.
16041
16042         * reflection.c (mono_reflection_define_generic_parameter): Set
16043         parent class and interfaces from the constraints.
16044
16045         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16046         to keep this struct in sync with the declaration in TypeBuilder.cs.
16047
16048 2003-09-17  Martin Baulig  <martin@ximian.com>
16049
16050         * metadata.h (MonoType): Replaced the data's `int type_param'
16051         field with `MonoGenericParam *generic_param'.
16052         (MonoGenericParam): Added `MonoClass *klass'.
16053
16054         * class.c (mono_class_from_gen_param): Removed the
16055         `MonoImage *image' and `int type_num' arguments.
16056
16057         * metadata.c (mono_metadata_parse_generic_param): New static
16058         method; creates a MonoGenericParam which just contains the index.
16059         (do_mono_metadata_parse_type): Call
16060         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16061         MONO_TYPE_MVAR.
16062
16063         * reflection.c (mono_image_typedef_or_ref): Generic type
16064         parameters may be in the same assembly, but never use a typedef
16065         for them.
16066         (mono_reflection_define_generic_parameter): We're now creating a
16067         "real" class for the type parameter; it's now safe to call
16068         mono_class_from_mono_type() on the class'es type, it'll do the
16069         right thing.
16070
16071 2003-09-16  Martin Baulig  <martin@ximian.com>
16072
16073         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16074         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16075         the `symfile' data structure must be fully initialized before it
16076         gets added to the table.
16077
16078 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16079
16080         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16081
16082         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16083         class init trampolines.
16084
16085 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16086
16087         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16088         to the built-in profiler to turn off time and allocation profiling
16089         respectively.
16090
16091 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16092
16093         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16094         g_direct_equal.
16095
16096         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16097         in human readable form.
16098
16099 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16100
16101         * reflection.c icall.c: Fixed warnings.
16102
16103         * image.c (load_class_names): Use a temporary hash table to hold the
16104         namespaces in order to avoid doing many string comparisons.
16105
16106         * image.h: Fix typo.
16107
16108         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16109         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16110         since the NULL case is short-circuited inside g_hash_table_lookup, 
16111         leading to better performance.  
16112
16113         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16114         obtain the first custom attribute for a given index. Depends on the
16115         CustomAttribute table being sorted by the parent field.
16116
16117         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16118         for better performance.
16119
16120 2003-09-07  Martin Baulig  <martin@ximian.com>
16121
16122         * class.c (mono_class_init): If we're a generic instance, inflate
16123         all our methods instead of loading them from the image.
16124         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16125
16126 2003-09-07  Martin Baulig  <martin@ximian.com>
16127
16128         * mono-debug-debugger.c: Added support for constructors.
16129
16130 2003-09-06  Martin Baulig  <martin@ximian.com>
16131
16132         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16133         New interncall.
16134
16135         * reflection.c (mono_reflection_setup_generic_class): Call
16136         ensure_runtime_vtable() to create the vtable.
16137
16138 2003-09-05  Martin Baulig  <martin@ximian.com>
16139
16140         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16141         MONO_TYPE_MVAR.
16142
16143 2003-09-04  Martin Baulig  <martin@ximian.com>
16144
16145         * reflection.c (mono_reflection_define_generic_parameter): Generic
16146         parameters start with zero.
16147
16148 2003-09-04  Martin Baulig  <martin@ximian.com>
16149
16150         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16151
16152         * reflection.h (MonoReflectionGenericParam): New typedef.
16153         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16154         the generic parameters from the managed TypeBuilder.
16155
16156         * reflection.c (mono_reflection_define_generic_parameter): New function.
16157         (mono_reflection_create_runtime_class): Encode generic parameters.
16158         (mono_reflection_setup_generic_class): New function; this is
16159         called after adding adding all generic params to the TypeBuilder.
16160         (encode_type): Added MONO_TYPE_VAR.
16161
16162 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16163
16164         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16165         here from the JIT.
16166
16167         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16168         load hook.
16169
16170 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16171
16172         * reflection.h reflection.c class.h class.c: Delete duplicate 
16173         definition of mono_type_get_name () from reflection.c and export the
16174         one in class.c.
16175
16176         * class.c: Class loading fixes from Bernie Solomon 
16177         (bernard@ugsolutions.com).
16178
16179         * reflection.c: Endianness fixes from Bernie Solomon 
16180         (bernard@ugsolutions.com).
16181         
16182 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16183
16184         * assembly.h assembly.c: Define a file format version for AOT
16185         libraries.
16186         
16187         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16188
16189         * appdomain.h (MonoJitInfo): New field to determine whenever the
16190         code is domain neutral.
16191         
16192 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16193
16194         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16195
16196 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16197
16198         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16199         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16200         Avoid caching the result since strings must be domain specific. Fixes
16201         #48050.
16202
16203 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16204
16205         * marshal.c (mono_marshal_init): Make this callable multiple times
16206         since it is hard to find a correct place to call it.
16207
16208         * object.c (mono_runtime_class_init): Execute static constructors in
16209         the correct appdomain.
16210
16211         * image.c (build_guid_table): Handle the case when multiple images have
16212         the same GUID.
16213
16214 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16215
16216         * icall.c: added a couple of icalls for System.Web.
16217
16218 2003-08-28  Martin Baulig  <martin@ximian.com>
16219
16220         * icall.c (ves_icall_Type_BindGenericParameters): Use
16221         `klass->generic_inst' instead of `&klass->byval_arg' in the
16222         mono_type_get_object() call.  The returned type must be
16223         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16224
16225 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16226
16227         * NOTES: New file.
16228
16229         * object.c (mono_class_proxy_vtable): Make it thread safe.
16230
16231         * pedump.c: Fix warning.
16232
16233         * object.c appdomain.h: Get rid of metadata_section. 
16234         It is no longer needed and it was causing deadlocks with domain->lock.
16235
16236         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16237
16238 2003-08-26  Martin Baulig  <martin@ximian.com>
16239
16240         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16241
16242 2003-08-26  Martin Baulig  <martin@ximian.com>
16243
16244         * pedump.c (main): Call mono_metadata_init(),
16245         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16246         and mono_loader_init().
16247
16248 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16249
16250         * loader.h: Add missing include to fix build.
16251
16252         * image.h: mono_image_load_references is no more.
16253
16254         * assembly.c: Reworked assembly loading to make it really thread safe.
16255         After these changes, the assembly returned by mono_assembly_open is
16256         fully initialized, i.e. all its references assemblies are loaded.
16257
16258         * assembly.c (mono_image_load_references): Renamed to 
16259         mono_assembly_load_references, and made private, since clients no
16260         longer need to call it.
16261
16262         * class.c: Removed calls to mono_assembly_load_references, since it was
16263         a source of deadlocks.
16264
16265         * loader.h loader.c class.h class.c: Protect data structures using a 
16266         new lock, the loader lock.
16267
16268         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16269         GPtrArrays only when needed.
16270
16271         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16272         into empty structures by mcs. Fixes pinvoke7.cs.
16273         
16274         * domain.c (mono_init): Call a new initialization function.
16275
16276         * appdomain.c (mono_runtime_init): Call the new initializer function
16277         of the marshal module.
16278
16279         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16280         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16281
16282         * marshal.h marshal.c: Added locks around the wrapper caches to make
16283         this module thread safe.
16284
16285         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16286         this argument. Fixes pinvoke1.exe.
16287
16288 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16289
16290         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16291         enumeration of values. Removed fields to store remote call output values in
16292         MonoAsyncResult. Not needed any more.
16293         * object.c: Initialize call_type and async_result fields in mono_message_init.
16294         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16295         dispatching the message.
16296         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16297         async call to finish. To do it use a message with EndInvoke call type.
16298
16299 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16300
16301         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16302         determines whenever a method has marshalling info.
16303
16304 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16305
16306         * assembly.c: fix the build on windows.
16307
16308 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16309
16310         * object.cs: Fixed bug #47785.
16311
16312 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16313
16314         * string-icalls.c (StringReplace): If their are no occurances of
16315         the old string found return a reference to the supplied
16316         string. This saves some memory and matches MS behavoir.
16317         
16318 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16319
16320         * socket-io.c: fixed compilation for systems that define AF_INET6
16321         and don't define SOL_IP/SOL_IPV6.
16322
16323 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16324
16325         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16326         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16327
16328         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16329
16330         * domain.c: Make this module thread safe.
16331
16332         * domain.c (mono_init): Call new initialization function.
16333
16334         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16335         reference types too. Fixes #38812.
16336
16337         * image.c (mono_image_init): Fixed warnings.
16338
16339         * class.c (mono_class_from_typeref): Handle assembly load failure
16340         correctly.
16341
16342         * appdomain.c (add_assemblies_to_domain): Handle the case when
16343         the references of an assembly are not yet loaded.
16344
16345         * metadata.c image.c assembly.c: Moved initialization of global
16346         variables to a separate function called at startup since lazy 
16347         initialization of these variables is not thread safe.
16348         
16349         * image.c assembly.c: Made this module thread safe by adding locks in 
16350         the appropriate places.
16351
16352         * domain.c (mono_init): Call the new initialization functions of the
16353         three modules.
16354
16355 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16356
16357         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16358           make a direct call. It is proxy's work to make the call asynchronous.
16359           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16360           the return values.
16361         * object.cs: mono_method_call_message_new(): read AsyncResult and
16362           state object from parameters list, if this info is requested.
16363         * object.h: Added fields to store remote call output values in
16364           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16365
16366 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16367
16368         * object.h: add needed fields to MonoThread.
16369         * threads.c, threads.h: allow registering a function to cleanup data
16370         allocated per thread by the JIT.
16371
16372 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16373
16374         * loader.h: portability fix by Bernie Solomon
16375         * <bernard@ugsolutions.com>.
16376
16377 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16378
16379         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16380         return a MonoArray. This simplifies the code and also ensures that
16381         the cache allways contains an object reference as a value.
16382
16383         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16384         function.
16385
16386 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16387
16388         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16389         fixes a problem with byte ordering when getting the address family for
16390         a socket.
16391
16392 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16393
16394         * .cvsignore: Added monosn.
16395
16396         * reflection.h reflection.c loader.c: Added support for parameter
16397         marshalling to dynamically created types. Fixes #47295.
16398
16399 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16400
16401         * rand.c: remove useless warnings.
16402
16403 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16404
16405         * class.c: implemented ldtoken for methods and fieldrefs.
16406
16407 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16408
16409         * threadpool.c: when mono_async_invoke was called, no one took care of
16410         monitoring the queue. So if the method invoked took some time and we
16411         got new async invoke requests after 500 ms (the thread created waited
16412         that long in WaitForSingleObject), the new async invoke was not called
16413         until the previous one finished.
16414
16415         This is fixed now. Thanks to Totte for helping with it.
16416
16417 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16418
16419         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16420
16421 2003-08-11  Martin Baulig  <martin@ximian.com>
16422
16423         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16424
16425 2003-08-06  Martin Baulig  <martin@ximian.com>
16426
16427         * mono-debug-debugger.c: Added support for static fields,
16428         properties and methods.
16429
16430 2003-08-06  Martin Baulig  <martin@ximian.com>
16431
16432         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16433         make this work for applications with multiple application domains.
16434
16435 2003-08-04  Martin Baulig  <martin@ximian.com>
16436
16437         * mono-debug-debugger.c: Completely reworked the type support; the
16438         most important thing is that we're now just using one single
16439         `MonoType' instance per type.
16440
16441 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16442
16443         * mono-endian.h, mono-endian.c, icall.c: Added icall
16444         ves_icall_System_Double_AssertEndianity to assert double word endianity
16445         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16446
16447 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16448
16449         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16450         support, icalls and fixes.
16451
16452 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16453
16454         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16455         classes that are a punctuation character in .NET is not the same a
16456         g_unichar_ispunct.
16457
16458 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16459
16460         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16461
16462 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16463
16464         * icall.c: Add new MemCopy internalcall.
16465         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16466         Simplified code; It is not necessary to handle all the cases here,
16467         as the C# code takes care of it.  Only handle the case of the name
16468         resource embedded into the assembly.
16469
16470         Changed signature to return the data pointer and the size of the
16471         data. 
16472
16473 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16474
16475         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16476         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16477
16478 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16479
16480         * socket-io.c: ignore EINTR error in select.
16481
16482 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16483
16484         * class.h, class.c: removed unused subclasses field in MonoClass.
16485
16486 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16487
16488         * icall.c: improve fix of get_base_definition(). If the parent class
16489           doesn't have the mehod, look at the parent of the parent.
16490         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16491           to check if a parameter is an in or out parameter
16492           (PARAM_ATTRIBUTE_IN is not set by default).
16493           mono_method_return_message_restore(): Use mono_class_value_size to
16494           get the size of a value type. mono_type_stack_size (parameterType)
16495           does not return the correct value if parameterType is byRef.
16496           mono_load_remote_field(), mono_load_remote_field_new(),
16497           mono_store_remote_field(), mono_store_remote_field_new():
16498           raise exception if the remote call returns an exception.
16499
16500 2003-07-28  Martin Baulig  <martin@ximian.com>
16501
16502         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16503         method.  This is a wrapper around mono_runtime_invoke() which
16504         boxes the instance object if neccessary.
16505
16506 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16507
16508         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16509         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16510
16511 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16512
16513         * icall.c: disable mcs bug workaround.
16514
16515 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16516
16517         * object.c (mono_runtime_class_init): Take the metadata_section
16518         mutex before obtaining the domain mutex.
16519
16520         * appdomain.h: Added definition of metadata_section mutex here. 
16521
16522         * object.c: define metadata_mutex here.
16523
16524 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16525
16526         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16527         fixed.
16528
16529 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16530
16531         * reflection.c: Fix bug #46669
16532
16533 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16534
16535         * exception.c:
16536         * exception.h:
16537         * icall.c:
16538         * object.h: fill in the type name for TypeLoadException.
16539
16540 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16541
16542         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16543         relationship between TypeBuilders while compiling corlib) and bug
16544         45993 (Array types returned from the runtime while compiling
16545         corlib were from the loaded corlib).
16546
16547 2003-07-22  Martin Baulig  <martin@ximian.com>
16548
16549         * mono-debug-debugger.c: Reworked the type support a bit more;
16550         distinguish between types and classes.
16551
16552 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16553
16554         * icall.c: add IsArrayImpl icall.
16555
16556 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16557
16558         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16559         initializing real_size only once. Also fix bug #46602.
16560
16561 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16562
16563         * object.c: Renamed mono_metadata_section to metadata_section.
16564
16565 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16566
16567         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16568           empty array if the type is an array. Fixed.
16569           ves_icall_MonoMethod_get_base_definition: if the base method
16570           is abstract, get the MethodInfo from the list of methods of
16571           the class.
16572         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16573           and it was 1-based. Fixed in mono_param_get_objects.
16574
16575 2003-07-20  Martin Baulig  <martin@ximian.com>
16576
16577         * mono-debug.h: Set version number to 31.
16578         (mono_debug_init): Added `MonoDomain *' argument.
16579
16580         * mono-debug-debugger.c: Reworked the type support; explicitly
16581         tell the debugger about builtin types; pass the `klass' address to
16582         the debugger.
16583
16584 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16585
16586         * image.c: Allow new metadata tables to be loaded without a
16587         warning. Also update the warning message to give the new constant value.
16588                 
16589 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16590
16591         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16592         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16593         array type representation changes.
16594
16595 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16596
16597         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16598         on Environment.Exit () call.
16599
16600 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16601
16602         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16603         requires a matching corlib.
16604
16605 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16606
16607         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16608           Committed again without the CRs.
16609         
16610 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16611
16612         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16613           getting it from the "this" socket instance. Did not work
16614           if the socket is a subclass of Socket.
16615           Also fixed bug #35371.
16616
16617 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16618
16619         * metadata.c: fixed size for TypedByRef.
16620         * loader.c: when searching for a method, consider the vararg amrker.
16621         * unicode.c, decimal.c: constify some arrays.
16622
16623 2003-07-15  Dick Porter  <dick@ximian.com>
16624
16625         * socket-io.c: Fixed compilation for gcc < 3.2.
16626
16627         Fixed compilation for machines that don't have AF_INET6 (thanks to
16628         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16629
16630         Fixed compile warnings.
16631         
16632         Fixed formatting and line endings.
16633
16634 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16635
16636         * socket-io.h:
16637         * socket-io.c: Added IPv6 support.
16638
16639 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16640
16641         * class.c (mono_class_is_assignable_from): New function to implement
16642         the is_assignable_from logic. Used by mono_object_isinst, 
16643         Type::IsAssignableFrom () and the interpreter.
16644
16645         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16646         Object, even interfaces.
16647         
16648         * object.c (mono_object_isinst): Implement in terms of 
16649         is_assignable_from.
16650
16651         * icall.c (ves_icall_type_is_assignable_from): New icall.
16652
16653 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16654
16655         * domain.c (foreach_domain): fix compiler warning.
16656
16657 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16658
16659         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16660         not available on all plattforms
16661
16662 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16663
16664         * image.h image.c: Store the metadata version string in MonoImage.
16665         * icall.c: New icall to retrieve the image version.
16666         * reflection.c (create_dynamic_image): Fill in the image version field
16667         * reflection.c (build_compressed_metadata): Use the image version
16668         from the image structure.
16669
16670 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16671
16672         * appdomain.c: modified comment.
16673         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16674         That will be its last iteration when mono_gc_cleanup is called from
16675         mono_runtime_cleanup and before the domain is unloaded.
16676
16677         Fixes bug #45962.
16678
16679 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16680
16681         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16682         attributes.
16683
16684 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16685
16686         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16687         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16688         Bernie Solomon <bernard@ugsolutions.com>.
16689
16690 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16691
16692         * object.c, object.h: provide mono_object_new_fast() for faster
16693         allocation in some special cases.
16694
16695 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16696
16697         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16698         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16699
16700 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16701
16702         * threadpool.c: fix leaks.
16703
16704 2003-07-01  Dick Porter  <dick@ximian.com>
16705
16706         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16707         using MonoGHashTables.  Fixes threadpool bug posted to list.
16708
16709 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16710
16711         * image.h, image.c: added support to load an assembly from a byte array.
16712         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16713         assembly bundle support.
16714
16715 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16716
16717         * threadpool.c (mono_thread_pool_add): keep a reference to the
16718         AsyncResult to prevent GC
16719
16720 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16721
16722         * class.c: leak fix.
16723
16724 2003-06-25  Dick Porter  <dick@ximian.com>
16725
16726         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16727         for the async object, the WaitHandle object will close the handle.
16728         Fixes bug 45321.
16729
16730 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16731
16732         * class.c: in mono_array_class_get (), lookup from the hash with the
16733         same type we insert: this works around a bug in
16734         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16735         lluis. The real fix will have to wait for after the release.
16736
16737 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16738
16739         * icall.c: fix memory leak when getting type members.
16740
16741 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16742
16743         * reflection.c: added more pubtoken special cases.
16744
16745 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16746
16747         * class.c: handle field offset correctly when class size
16748         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16749
16750 2003-06-20  Martin Baulig  <martin@ximian.com>
16751
16752         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16753         *image' field.
16754
16755 2003-06-20  Martin Baulig  <martin@ximian.com>
16756
16757         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16758
16759 2003-06-20  Martin Baulig  <martin@ximian.com>
16760
16761         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16762         just distinguish between variables in registers and variables at
16763         an offset relative to a register.
16764
16765 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16766
16767         * icall.c: #ifdef out latest changes until mcs is fixed.
16768
16769 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16770
16771         * icall.c: return members in metadata order.
16772
16773 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16774
16775         * icall.c: avoid infinite loop in GetTimeZoneData.
16776
16777 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16778
16779         * icall.c: added Marshal.Prelink/All icalls.
16780
16781 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16782
16783         * object.c, object.h: fix warnings and do some overflow checking
16784         when creating arrays.
16785
16786 2003-06-17  Dick Porter  <dick@ximian.com>
16787
16788         * file-io.h:
16789         * file-io.c: File attributes need to be tweaked slightly when
16790         passed from the managed to the w32 world.
16791
16792 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16793         * profiler.h profiler-private.h profiler.c: Rework last patch
16794         based on suggestion by Paolo.
16795         
16796 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16797
16798         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16799         instruction level coverage data collection.
16800         * profiler.h profiler.c (: Added new callback function which can be
16801         used by the profiler to limit which functions should have coverage
16802         instrumentation.
16803         * profiler.c (mono_profiler_load): Call g_module_build_path to
16804         generate the file name of the profiler library.
16805
16806 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16807
16808         * profiler.c, profiler.h, profiler-private.h: added basic block 
16809         coverage profiling API.
16810
16811 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16812
16813         * reflection.c (mono_reflection_create_runtime_class): Add support
16814         for events in dynamically generated code.
16815
16816         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16817         not allocated.
16818
16819 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16820
16821         * icall.c: when getting timezone info, return reasonable values if we
16822         can't get the actual data.
16823
16824 2003-06-14  Dick Porter  <dick@ximian.com>
16825
16826         * threads.c (start_wrapper): Remove the reference to the thread
16827         object in the TLS data, so the thread object can be finalized.
16828         This won't be reached if the thread threw an uncaught exception,
16829         so those thread handles will stay referenced :-( (This is due to
16830         missing support for scanning thread-specific data in the Boehm GC
16831         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16832
16833 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16834
16835         * reflection.c: ensure streams and tables are first allocated with
16836         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16837
16838 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16839
16840         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16841
16842 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16843
16844         * reflection.c (mono_reflection_create_runtime_class): Add support for
16845         properties to dynamically created classes.
16846         * reflection.c: Fix a few places where non-MonoObjects were inserted
16847         into the tokens hashtable.
16848
16849 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16850
16851         * object.c: some support to handle out of memory exceptions.
16852
16853 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16854
16855         * marshal.c (mono_marshal_get_native_wrapper): support reference
16856         return types
16857
16858 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16859
16860         * object.h, object.c: more portability stuff from Bernie Solomon.
16861         Unexport mono_object_allocate(). Added mono_object_unbox ().
16862         Set exitcode when an unhandled exception is thrown.
16863
16864 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16865
16866         * marshal.c (mono_marshal_get_native_wrapper): use custom
16867         marshaler for return types.
16868
16869 2003-06-10  Dick Porter  <dick@ximian.com>
16870
16871         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16872         ip_mreq is available
16873
16874 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16875
16876         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16877         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16878         by Bernie Solomon <bernard@ugsolutions.com>.
16879
16880 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16881
16882         * gc.c (mono_gc_init): Avoid error message on shutdown when
16883         GC_DONT_GC=1 is used.
16884
16885         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16886         New icall to return the GUID of a module.
16887
16888 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16889
16890         * class.c: ensure instance size always includes the parent's size
16891         even whem class size is set explicitly (fixes bug#44294).
16892
16893 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16894
16895         * profiler.h, profiler.c: made the simple profiler thread-safe,
16896         get more accurate timing info. Allow the loading of an
16897         externally-developed profiler module.
16898
16899 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16900
16901         * marshal.c (mono_marshal_get_native_wrapper): improved
16902         class/byref arguments.
16903         (mono_marshal_get_native_wrapper): better string marshaling support.
16904
16905 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16906
16907         * class.c: ensure .pack and .size are handled correctly and
16908         simplified layout of static fields.
16909
16910 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16911
16912         * appdomain.c
16913         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16914
16915         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16916         current directory (fix bug 44008)
16917
16918 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16919
16920         * marshal.c (mono_marshal_get_native_wrapper): started support for
16921         custom marshalers.
16922         (mono_delegate_to_ftnptr): consider marshalling specifications
16923
16924 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16925
16926         * reflection.c, reflection.h: emit custom marshal info.
16927
16928 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16929
16930         * object.c: free the GError.
16931         * icall.c: added CloseEvent_internal.
16932         * threads.[ch]:
16933         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16934         call.
16935
16936 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16937
16938         * loader.c (mono_method_get_signature): Add support for dynamic
16939         assemblies.
16940
16941 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16942
16943         * reflection.c: fixed bug #43905.
16944
16945 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16946
16947         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16948         handling TypedReference and ArgIterator.
16949         * loader.c, loader.h: added function to get signature at call site.
16950
16951 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16952
16953         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16954         data readonly. Buglets and warning fixes. Some MethodSpec support.
16955
16956 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16957
16958         * class.h, class.c, object.c: remove relative numbering support.
16959
16960 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16961
16962         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16963         free the string, until we get a chance to fix Gtk#
16964
16965 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16966
16967         * marshal.c: revert last patch.
16968
16969 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16970
16971         * icall.c: updates for new mono_class_vtable() not calling
16972         the type constructor anymore.
16973
16974 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16975
16976         * object.h, object.c: separate vtable creation from type
16977         initialization. Make running the .cctor thread safe.
16978
16979 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16980
16981         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16982
16983 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16984
16985         * loader.c (mono_get_method): consider calling convention
16986
16987 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16988
16989         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16990         to return the invisible global type for a module.
16991
16992         * reflection.c (mono_image_build_metadata): Emit global fields too.
16993
16994 2003-05-20  Peter Williams  <peterw@ximian.com>
16995
16996         * loader.c (mono_lookup_internal_call): Add a few newlines.
16997
16998 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16999
17000         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17001         literal strings.
17002
17003         * appdomain.c (set_domain_search_path): Recalculate search path when
17004         AppDomainSetup.PrivateBinPath changes.
17005
17006         * object.c (mono_class_compute_gc_descriptor): It turns out some
17007         parts of the class libs (like System.Thread) holds pointers to
17008         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17009         to treat native int a pointer type here.
17010         
17011 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17012
17013         * appdomain.h, domain.c: add hashtable for jump target resolution.
17014
17015 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17016
17017         * reflection.h reflection.c icall.c: Added new icalls 
17018         GetManifestResourceInfoInternal, GetModulesInternal and support
17019         infrastructure.
17020
17021 2003-05-16  Dick Porter  <dick@ximian.com>
17022
17023         * icall.c:
17024         * file-io.h:
17025         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17026
17027 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17028
17029         * object.c: mono_store_remote_field: little fix to previous patch.
17030
17031 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17032
17033         * class.c: add constructors to array classes.
17034         * icall.c: special case array construction for InternalInvoke (),
17035
17036 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17037
17038         * class.h class.c reflection.c object.c: Added support for field
17039         defaults in dynamically generated classes.
17040
17041 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17042
17043         * reflection.c: properly encode charset for ddlimport.
17044
17045 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17046
17047         * threads.c: allow compiling without GC.
17048
17049 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17050
17051         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17052         handling of thread static data.
17053
17054 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17055
17056         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17057
17058 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17059
17060         * class.c (mono_array_class_get): always set the serializable flags
17061         (mono_array_class_get): always set the SEALED attribute for array types
17062
17063 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17064
17065         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17066         attributes (fix for bug 42021).
17067
17068 2003-05-12  Dick Porter  <dick@ximian.com>
17069
17070         * gc.c: Don't run finalizers when the finalizer thread is
17071         finishing up, because the default domain has already been
17072         destroyed.
17073
17074 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17075
17076         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17077         value is null, we should throw an exception.   This is slightly
17078         different than the other conventions used for the constructor.
17079
17080 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17081
17082         * socket-io.c: fixed windows build.
17083
17084 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17085
17086         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17087
17088 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17089
17090         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17091         compilers.
17092
17093 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17094
17095         * class.c (mono_class_layout_fields): Add experimental GC aware
17096         auto layout facility. Requires class library changes to work correctly.
17097
17098         (mono_class_setup_vtable): Avoid overriding explicit interface
17099         method implementations. Fixes iface3.exe test.
17100
17101         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17102         object reference.
17103         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17104         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17105
17106         * metadata.h: Add new type classification macro which determines
17107         whenever the type holds an object reference.
17108
17109 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17110
17111         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17112
17113 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17114
17115         * gc.c (finalizer_thread): Work around a GC bug.
17116
17117 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17118
17119         * marshal.c (emit_struct_conv): allow unions
17120
17121         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17122
17123 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17124
17125         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17126
17127 2003-05-06  Martin Baulig  <martin@ximian.com>
17128
17129         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17130
17131 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17132
17133         * socket-io.c:
17134         (Select_internal): allow NULLs, don't create arrays if not needed.
17135         Coupled with Socket.cs changes.
17136
17137         * threadpool.c:
17138         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17139         register a finalizer for it that will close the semaphore handle. This
17140         fixes the leak and make Lupus' test run with > 4080 loops.
17141
17142 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17143
17144         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17145         Jerome Laban (bug #42287)
17146
17147 2003-05-02  Martin Baulig  <martin@ximian.com>
17148
17149         * debug-mono-symfile.h
17150         (MonoSymbolFile): Moved declaration into mono-debug.h.
17151         (MonoDebugMethodJitInfo): Likewise.
17152         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17153         argument.
17154         (_mono_debug_address_from_il_offset): Take a
17155         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17156
17157         * mono-debug.h
17158         (MonoDebugDomainData): New struct.
17159         (mono_debug_get_domain_data): New function.
17160         (mono_debug_add_method): Take an additional `MonoDomain *'
17161         argument.
17162         (mono_debug_source_location_from_address): Likewise.
17163         (mono_debug_il_offset_from_address): Likewise.
17164         (mono_debug_address_from_il_offset): Likewise.
17165
17166 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17167
17168         * reflection.c: one more check for null type in custom attrs.
17169
17170 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17171
17172         * reflection.c: avoid warning (comparison is always false due to limited
17173         range of data type).
17174
17175 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17176
17177         * icall.c: throw an exception in Type.GetField if the argument 'name'
17178         is NULL.
17179
17180 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17181
17182         * reflection.c: fixed handling of enums in named arguments to custom
17183         attributes (bug #42123).
17184
17185 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17186
17187         * reflection.c: use the right array element type and handle
17188         a null for a Type argument, too.
17189
17190 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17191
17192         * reflection.c: handle arrays as arguments to custom attributes.
17193
17194 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17195
17196         * reflection.c: handle a string value in a custom attr
17197         ctor that takes an object.
17198
17199 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17200
17201         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17202         (fix bug #42063)
17203
17204 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17205
17206         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17207
17208 2003-04-27  Martin Baulig  <martin@ximian.com>
17209
17210         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17211         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17212         MONO_DEBUGGER_EVENT_BREAKPOINT.
17213         (mono_breakpoint_trampoline_code): Removed.
17214         (mono_debugger_event_handler): The last argument is now a
17215         `guint32'.
17216         (mono_debugger_insert_breakpoint_full): Removed the
17217         `use_trampoline' argument.
17218         (mono_debugger_method_has_breakpoint): Likewise.
17219         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17220         mono_debugger_breakpoint_callback(); take the method and
17221         breakpoint number as arguments.
17222
17223 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17224
17225         * metadata.c: fix off by one when loading parameters attributes.
17226
17227 2003-04-24  Martin Baulig  <martin@ximian.com>
17228
17229         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17230
17231 2003-04-24  Martin Baulig  <martin@ximian.com>
17232
17233         * mono-debug-debugger.c: Moved all code which interacts with the
17234         Mono Debugger here.
17235
17236         * debug-mono-symfile.c: This code now just deals with the symbol
17237         file itself, the debugger code is now in mono-debug-debugger.c.
17238
17239 2003-04-23  Martin Baulig  <martin@ximian.com>
17240
17241         * mono-debug.c (mono_debug_source_location_from_il_offset):
17242         New method; like mono_debug_source_location_from_address(), but
17243         takes an IL offset instead of a machine address.
17244
17245 2003-04-23  Martin Baulig  <martin@ximian.com>
17246
17247         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17248         `line' field; this is now computed by the debugger.
17249
17250 2003-04-23  Martin Baulig  <martin@ximian.com>
17251
17252         * mono-debug.[ch]: New files.  This is the new debugging interface.
17253
17254         * mono-debug-debugger.[ch]: New files.  Moved all code which
17255         interacts with the Mono Debugger here.
17256
17257 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17258
17259         * domain.c (mono_init): initialize mono_defaults.monitor_class
17260
17261 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17262
17263         * reflection.c (method_encode_code): Add a spicy exception to help
17264         future compiler authors.
17265
17266 2003-04-21  Martin Baulig  <martin@ximian.com>
17267
17268         * icall.c
17269         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17270         Make this work with relative pathnames; g_filename_to_uri() needs
17271         an absolute filename.
17272
17273 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17274
17275         * icall.c: Track name changes in Object and ValueType.
17276
17277 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17278
17279         * metadata.c (mono_type_stack_size): size should be a multiple of
17280         sizeof (gpointer)
17281
17282 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17283
17284         * gc.c:
17285         (internal_domain_finalize): moved into mono_domain_finalize. No need
17286         to create another thread because the finalizers will be run in the
17287         finalizer thread.
17288         
17289         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17290         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17291         to be run (MS does this too).
17292
17293 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17294
17295         * object.c (mono_class_compute_gc_descriptor): Update comment.
17296
17297         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17298
17299         * image.h: Add synchronized wrapper cache.
17300
17301         * image.c (do_mono_image_open): Initialize cache.
17302
17303         * reflection.c (create_dynamic_mono_image): Initialize cache.
17304
17305 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17306
17307         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17308         ves_icall_System_Buffer_ByteLengthInternal.
17309
17310 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17311
17312         * reflection.c: setup klass->nested_in earlier. Allow
17313         a dash in the assembly name.
17314
17315 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17316
17317         * metadata.c (mono_type_to_unmanaged): dont access
17318         type->data.klass for MONO_TYPE_OBJECT
17319         (mono_type_to_unmanaged): consider System.Delegate class
17320
17321 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17322
17323         * class.c: just setup supertypes in the proper place instead of
17324         initializing the full element class for arrays.
17325
17326 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17327
17328         * class.c: ensure the element class of arrays is initialized.
17329         Setup the supertype info for array classes, too.
17330
17331 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17332
17333         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17334
17335 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17336
17337         * Makefile.am: re-added -m option when running cygpath. This way,
17338         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17339         separator.
17340         * mono-config.c: same codepath for locating mono config file for WIN32
17341         and the rest.
17342         * assembly.c: if mono_assembly_setrootdir is called, don't override
17343         the value set.
17344
17345 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17346
17347         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17348         MONO_ASSEMBLIES variable.
17349
17350 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17351
17352         * icall.c: added Assembly::GetNamespaces() icall.
17353
17354 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17355
17356         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17357
17358 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17359
17360         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17361         * object.c: fixed bug in the construction of vtable for proxies
17362
17363 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17364
17365         * object.c (mono_array_new): Mark mono_array_new as an icall.
17366
17367 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17368
17369         * class.c: fixed test for public method when overriding interfaces.
17370         Closes bug #40970.
17371
17372 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17373
17374         * appdomain.h, domain.c: added mono_domain_foreach() to
17375         be able to access the currently loaded appdomains.
17376         * object.c: make string interning work across sppdomains.
17377         Mark some functions for use as icalls.
17378
17379 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17380
17381         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17382
17383         * reflection.h reflection.c: Allocate long living data using 
17384         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17385
17386         * reflection.c: Double the allocation size in streams instead of
17387         increasing it, to prevent unneccesary copying on large assemblies.
17388         
17389         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17390         creation if the assembly does not have the Run flag set.
17391
17392 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17393
17394         * class.h: avoid the C++ keywords in header files (Jerome Laban
17395         spotted and fixed this).
17396
17397 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17398
17399         * object.c:
17400         (mono_unhandled_exception): fill in the arguments for the
17401         UnhandledException event. Only trigger that event for the default
17402         domain (as MS does).
17403
17404 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17405
17406         * object.c: Improve typed allocation stuff based on suggestions from
17407         Paolo. Also turn it on if the GC library supports it.
17408
17409 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17410
17411         * object.c object.h class.h: Added experimental typed allocation
17412         facility using the interfaces in gc_gcj.h.
17413
17414         * os/gc_wrapper.h: Added new include files.
17415         
17416 2003-04-03  Martin Baulig  <martin@ximian.com>
17417
17418         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17419         which is not yet enabled by default.
17420
17421         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17422         functions.
17423         (mono_gc_lock, mono_gc_unlock): New static functions.
17424
17425         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17426         functions; stop/start the world for the garbage collector.  This
17427         is using the windows API; we need to complete the SuspendThread()/
17428         ResumeThread() implementation in the io-layer to make this work on Unix.
17429         (mono_gc_push_all_stacks): New public function; tells the garbage
17430         collector about the stack pointers from all managed threads.
17431
17432 2003-04-03  Martin Baulig  <martin@ximian.com>
17433
17434         * object.h (MonoThread): Added `gpointer stack_ptr'.
17435
17436         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17437
17438 2003-04-03  Martin Baulig  <martin@ximian.com>
17439
17440         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17441
17442 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17443
17444         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17445         field.last.
17446
17447 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17448
17449         * loader.c (mono_lookup_internal_call): Report the corlib that is
17450         out of sync.
17451
17452 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17453
17454         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17455         System.DBNull (it's class not valuetype).
17456
17457 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17458
17459         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17460         if the array method was already assigned a token (fixes bug#40646).
17461
17462 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17463
17464         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17465         if no assembly is given.
17466
17467 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17468
17469         * metadata.h: Added the new tables.
17470
17471         * row-indexes.h: Added definitions for new tables.
17472
17473         * metadata.c: Add schemas for new tables, and add support for
17474         computing the sizes of them.
17475
17476         * class.c: Update for handling the new type cases.
17477
17478 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17479
17480         * metadata.h (MONO_TYPE_IS_VOID): new macro
17481
17482 2003-03-31  Martin Baulig  <martin@ximian.com>
17483
17484         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17485
17486         * threads.c (mono_thread_new_init): Call `thread_created' in the
17487         mono_thread_callbacks.
17488
17489 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17490
17491         * loader.h: added marshalbyrefobject_class to mono_defaults
17492         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17493         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17494           generation of output parameters.
17495           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17496         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17497           contextbound and the target object belongs to the context of the caller.
17498         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17499         * object.c: Implemented support for interfaces and abstract classes
17500           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17501           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17502
17503 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17504
17505         * class.h class.c (mono_class_is_subclass_of): New function.
17506         
17507         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17508         routines for most common case (calls from ArrayList::ToArray).
17509
17510         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17511         routine so programs which call Environment::Exit() can be profiled.
17512
17513         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17514         Added MONO_ARCH_SAVE_REGS.
17515
17516         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17517
17518 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17519
17520         * blob.h: Add a couple of new MonoType types definitions.
17521
17522         * tabledefs.h: Add a couple of new call convs.
17523
17524 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17525
17526         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17527         the layout of the class.
17528
17529         * reflection.c (alloc_table): double the size on overflow to avoid
17530         unnecessary copying.
17531
17532         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17533         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17534         null so it can be garbage collected.
17535         
17536 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17537
17538         * reflection.c (mono_reflection_get_type): Return the resolved type
17539         only if it is in the assembly we searched.
17540
17541         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17542
17543         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17544         method.
17545
17546 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17547
17548         * appdomain.c:
17549         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17550         the right one is 'file:///blah', but MS allows it.
17551         * assembly.c:
17552         (mono_assembly_open): allow 'file://blah'
17553
17554         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17555
17556 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17557
17558         * socket-io.c: fixes bug #40310.
17559
17560 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17561
17562         * reflection.c (mono_reflection_parse_type): handle deeply nested
17563         types correctly.
17564
17565         * reflection.c (mono_image_create_token): Use unique token values
17566         since they will be put into a hash table.
17567
17568         * class.c (mono_class_setup_vtable): If a method occurs in more than
17569         one place in the vtable, and it gets overriden, then change the
17570         other occurances too.
17571
17572         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17573         object as return type.
17574
17575 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17576
17577         * icall.c: Deleted "ToString" implementation for double and float
17578         because they are full implemented in managed code.
17579
17580 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17581
17582         * reflection.c, reflection.h: implemented and exported functions
17583         to retrieve info about custom attributes.
17584
17585 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17586
17587         * appdomain.c: moved Uri handling to assembly.c
17588         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17589         work when using a file Uri in *nix and windows.
17590
17591         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17592         GetReferencedAssemblies.
17593
17594 2003-03-18  Dick Porter  <dick@ximian.com>
17595
17596         * icall.c: Rename a couple of internal calls
17597
17598         * threads.c: Set the thread state to Stopped when a thread exits.
17599         Fixes bug 39377.
17600
17601 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17602
17603         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17604         New icall.
17605
17606         * object.c (mono_class_vtable): fix warning.
17607
17608 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17609
17610         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17611
17612         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17613         memory.
17614         (method_encode_clauses): Create exception info structures in the right
17615         order.
17616         (mono_reflection_setup_internal_class): Initialize supertypes field.
17617
17618         * class.c object.c: Handle interfaces which implement other interfaces 
17619         correctly.
17620
17621         * class.h class.c: Move the supertypes array initialization code into 
17622         a separate function so it can be used for dynamic types too. Also call
17623         it earlier, in mono_class_init(), since it can be used before the
17624         type is initialized.
17625
17626 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17627
17628         * Makefile.am:
17629         * assembly.c:
17630         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17631
17632         * appdomain.c:
17633         * appdomain.h:
17634         * marshal.c:
17635         * object.c: remove warnings.
17636
17637 2003-03-13  Martin Baulig  <martin@ximian.com>
17638
17639         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17640         (MonoDebugLexicalBlockEntry): New types.
17641
17642         * debug-mono-symfile.c
17643         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17644
17645 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17646
17647         * process.c: ret can be any non-zero value accroding to MS doc.
17648
17649 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17650
17651         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17652         fixing a warning for a miss-used prototype, would have cause
17653         random memory corruption.
17654
17655 2003-03-07  Martin Baulig  <martin@ximian.com>
17656
17657         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17658         getting really annoying ....
17659
17660 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17661
17662         * reflection.c (fixup_method): added support for array methods.
17663
17664 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17665
17666         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17667         (pointed out by Michael Adams).
17668
17669 2003-03-04  Dick Porter  <dick@ximian.com>
17670
17671         * icall.c: Temporarily reverted the Double and Single ToString()
17672         change, because it broke nunit.
17673
17674 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17675
17676         * object.h, threads.h: make include files compatible with C++
17677         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17678
17679 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17680
17681         * icall.c: Erased ToString helper functions for Double and Single.
17682         Now, that implementations ar all in managed code (Double and Single
17683         Formatters).
17684
17685 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17686
17687         * appdomain.c: Added method for initializing the default context of
17688         a domain. Added internal call for getting the default context.
17689         * appdomain.h: Added context variable in MonoDomain struct.
17690         * domain.c: mono_domain_set also sets the default context of the domain
17691         * icall.c: Mapped internal method InternalGetDefaultContext.
17692         * object.c: mono_object_get_virtual_method returns always a remoting
17693         wrapper if the object is a transparent proxy.
17694         mono_runtime_invoke_array: when creating an object by calling the
17695         constructor, if the created object is a proxy, then the constructor should
17696         be called using the a remoting wrapper.
17697
17698 2003-03-03  Dick Porter  <dick@ximian.com>
17699
17700         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17701         variable so it compiles on solaris.  Problem spotted by
17702         Christopher Taylor <ct@cs.clemson.edu>
17703
17704 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17705
17706         * appdomain.c:
17707         (get_info_from_assembly_name): don't leak value.
17708
17709         * icall.c:
17710         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17711         result.
17712
17713 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17714
17715         * assembly.c: export mono_image_load_references ().
17716         * class.c: handle function pointers. mono_class_from_name() now
17717         supports nested type names directly.
17718
17719 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17720
17721         * reflection.h reflection.c: Encode already created dynamic methods 
17722         and fields correctly as a DEF instead of a REF.
17723
17724         * reflection.c: Get rid of the force_ref argument to 
17725         mono_image_typedef_or_ref since it was wrong in the first place.
17726
17727         * string-icalls.c: add error checking to string constructors according
17728         to the MSDN docs.
17729
17730         * reflection.c: Emit types in the order their TypeBuilders were 
17731         created. Previously, a new table index was assigned to each type before
17732         the tables were emitted. This was wrong because the signature blob
17733         might already refer to a type by its original table index.
17734
17735 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17736
17737         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17738         change.
17739         
17740 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17741
17742         * Makefile.am: make assemblies dir have \ instead of / on windows.
17743
17744 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17745
17746         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17747         iterate over the NESTEDCLASS table using a linear search since the
17748         table is not guaranteed to be sorted by the secondary key.
17749
17750         * class.c (mono_class_create_from_typedef): fixed up call to
17751         mono_metadata_nesting_typedef.
17752         
17753 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17754
17755         * marshal.c (mono_string_to_byvalstr): clear the memory as
17756         suggested by Jerome Laban <jlaban@wanadoo.fr>
17757
17758 2003-02-26  Dick Porter  <dick@ximian.com>
17759
17760         * process.c: Cope with padding in .rsrc blocks
17761
17762 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17763
17764         * metadata.h: reverted the filter_len change, it breaks reflection
17765         
17766 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17767
17768         * metadata.h: added a new field to store the filter_len
17769         
17770
17771 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17772
17773         * reflection.c: handle custom attributes for types and members
17774         created with Reflection.Emit (bug#38422).
17775
17776 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17777
17778         * reflection.c: define RTSpecialName automatically for constructors for
17779         compatibility with MS.NET.
17780
17781         * reflection.c (mono_reflection_create_runtime_class): initialize
17782         nested_in field of dynamically created classes.
17783
17784 2003-02-22  Martin Baulig  <martin@ximian.com>
17785
17786         * debug-mono-symfile.h: Incremented version number.
17787
17788 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17789
17790         * object.h icall.c process.c: fix warnings.
17791
17792 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17793
17794         * appdomain.h appdomain.c:
17795         (mono_domain_try_type_resolve): split the 
17796         name_or_tb argument into a name and a tb argument.
17797         (mono_domain_has_type_resolve): new function to check whenever the
17798         application has registered a TypeResolve event handler.
17799         
17800         * icall.c reflection.h reflection.c: move the type resolve logic into
17801         mono_reflection_get_type () so it will be invoked when 
17802         Assembly::GetType () is called.
17803
17804         * reflection.c:
17805         (mono_reflection_get_type): renamed to get_type_internal.
17806         (mono_reflection_get_type): fixed type name generation so it works 
17807         for nested types too.
17808         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17809         costly type name generation if there is no resolve event handler.
17810
17811 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17812
17813         * class.c, image.c: load exported types from file references.
17814
17815 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17816
17817         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17818           used to cache the managed methods used to create proxies and make 
17819           remote invocation of methods.
17820         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17821           to be remotely created.
17822         * object.c: Modified the method mono_class_vtable(). It now initializes 
17823           the remote flag of the vtable. Modified mono_object_new_specific(), 
17824           so now it checks the remote flag.
17825         * icall.c: Added a couple of internal methods, one for enabling instance 
17826           creation interception for a type, and one for creating objects bypassing
17827           the remote check.
17828
17829 2003-02-18  Martin Baulig  <martin@ximian.com>
17830
17831         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17832         New interncall to get a method's metadata token.
17833
17834         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17835         New interncall for the debugger.
17836
17837 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17838
17839         * class.c (mono_class_setup_vtable): allocate supertype array
17840
17841 2003-02-18  Martin Baulig  <martin@ximian.com>
17842
17843         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17844
17845 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17846
17847         * reflection.c:
17848         (assembly_name_to_aname): jump over unknown properties (i've found
17849         something like: 'type, assembly, version=xxx, custom=null, public...',
17850         so now will ignore custom=null and still get the rest of the values).
17851
17852 2003-02-17  Dick Porter  <dick@ximian.com>
17853
17854         * threads.c: Have Thread.Start() wait for a semaphore to signal
17855         that the thread has set up all its local data.  This fixes bug
17856         34323, where Abort() raced the new thread's TLS data.
17857
17858         Also removes the handle_store() call from start_wrapper, because
17859         threads are now always created suspended and there is no longer a
17860         race between the parent and child threads to store the info.
17861
17862 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17863
17864         * image.c: explain the #- heap issue in a message, hopefully
17865         avoiding FAQs on mono-list.
17866
17867 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17868
17869         * icall.c:
17870         (GetEntryAssembly): if the domain has not invoked
17871         AppDomain.ExecuteAssembly yet, return the assembly of the default
17872         AppDomain.
17873
17874 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17875
17876         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17877
17878 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17879
17880         * metadata.c, reflection.c: simple speedup to type hash
17881         and equals code.
17882
17883 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17884
17885         * image.c, image.h, class.c, assembly.c: move module loading
17886         to MonoImage. When loading metadata, consider alignemnet from
17887         the start of metadata, not from the metadata address in memory.
17888
17889 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17890
17891         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17892         AssemblyBuilder objects. Factored out custom attribute creation into
17893         a separate function.
17894         (create_custom_attr): new function to create custom attributes.
17895
17896 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17897
17898         * Makefile.am: Got tired of typing the full pathname to pedump.
17899         Until there is another option, am installing this.
17900
17901 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17902
17903         * class.c (class_compute_field_layout): always set field->parent 
17904         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17905
17906 2003-02-11  Dick Porter  <dick@ximian.com>
17907
17908         * threads-types.h:
17909         * monitor.c: Rewrote Monitor, making lock much faster and
17910         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17911         creates them as needed.
17912
17913         * exception.c: Added SynchronizationLockException
17914
17915         * threads.c: Deleted old Monitor implementation.  The new one is
17916         in a new file.
17917
17918 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17919
17920         * class.c: handled TypedReference type code. Set the correct size for
17921         class data. Setup interface_offsets for interface classes, too.
17922
17923 2003-02-09  Martin Baulig  <martin@ximian.com>
17924
17925         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17926
17927 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17928
17929         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17930         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17931         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17932         * verify.c: check for code that runs after the end of the method.
17933
17934 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17935
17936         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17937         "System.Math::Round2".
17938         * sysmath.h: Added Floor, Round and Round2 definitions.
17939         * sysmath.c: Modified certain functions that were not 100% compliant
17940         with MS.NET (math precision) and added the implementation of Floor,
17941         Round and Round2.
17942
17943 2003-02-07  Martin Baulig  <martin@ximian.com>
17944
17945         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17946
17947 2003-02-07  Martin Baulig  <martin@ximian.com>
17948
17949         * debug-mono-symfile.c: Reflected latest symwriter changes.
17950         (mono_debug_create_mono_symbol_file): Removed.
17951         (mono_debug_open_mono_symbol_file): Take an argument which
17952         specifies whether to create a dynamic symbol file.
17953
17954 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17955
17956         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17957
17958 2003-02-05  Martin Baulig  <martin@ximian.com>
17959
17960         * reflection.c (mono_image_build_metadata): Make this public,
17961         protect it against being called multiple times, don't create
17962         resources and don't build the compressed metadata here.
17963         (mono_image_create_pefile): Do this here.
17964
17965         * icall.c
17966         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17967
17968 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17969
17970         * socket-io.c: fixed bug #36322.
17971
17972 2003-02-06  Piers Haken <piersh@friskit.com>
17973
17974         * appdomain.[ch]:
17975         * class.h:
17976         * debug-mono-symfile.c:
17977         * icall.c:
17978         * loader.c:
17979         * mono-config.c:
17980         * monosn.c:
17981         * reflection.c:
17982         * socket-io.c: warning cleanups
17983
17984 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17985
17986         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17987         function. works like remoting invoke, but does a check for the Proxy first.
17988
17989 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17990
17991         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17992
17993 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17994
17995         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17996         array of pointers.
17997         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17998         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17999
18000         * object.c (mono_store_remote_field_new): used by the new jit
18001         instead of mono_store_remote_field
18002         (mono_load_remote_field_new): used by the new jit
18003         instead of mono_load_remote_field
18004
18005 2003-02-05  Patrik Torstensson
18006
18007         * appdomain.c: changed unload to take the domain id instead
18008         of domain
18009         
18010         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18011
18012
18013 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18014
18015         * appdomain.c: don't look for assemblies in ApplicationBase if
18016         PrivateBinPathProbe is set.
18017
18018 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18019
18020         * object.c: make the first argument in main_args contain the absolute
18021         path to the assembly. Fixes bug #37511.
18022
18023 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18024
18025         * icall.c: get correct UTC offset for countries not using daylight
18026         time saving. Fixes bug #30030.
18027
18028 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18029
18030         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18031         and 1 are the family).
18032
18033 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18034
18035         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18036
18037         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18038
18039 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18040
18041         * reflection.c: added support for SignatureHelper tokens, which is
18042         needed by the Calli opcode.
18043
18044         * reflection.h: track changes to SignatureHelper class.
18045
18046         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18047
18048 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18049
18050         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18051
18052 2003-02-03  Patrik Torstensson
18053         * appdomain.[c|h], domain.c : 
18054          - Added support for getting a domain via domain id
18055          - Support for setting and getting domain from System.AppDomain 
18056            (used in cross appdomain channel)
18057          - Added support for get/set for a MonoAppContext on a thread 
18058            (Context class in System.Runtime.Remoting.Contexts),
18059          - Removed hack in Get/SetData and ExecuteAssembly.
18060         
18061         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18062         the managed world to get control when a proxy is created.
18063
18064         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18065         
18066 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18067
18068         * icall.c
18069         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18070         Populate the codebase field as well.
18071
18072 2003-02-02  Martin Baulig  <martin@ximian.com>
18073
18074         * debug-mono-symfile.c
18075         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18076         (mono_debug_symfile_add_method): Allow interncalls.
18077
18078 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18079
18080         * icall.c: throw parse exception if strtod fails or the string is empty.
18081
18082 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18083
18084         * marshal.c: handle object type separately from defined
18085         class types.
18086
18087 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18088
18089         * marshal.c: handle NATIVE_LPSTR for strings when it's
18090         explicitly specified.
18091
18092 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18093
18094         * reflection.c, reflection.h, icall.c: setup the reflection
18095         handle cache for ModuleBuilders and AssemblyBuilders.
18096
18097 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18098
18099         * reflection.c (reflection_methodbuilder_to_mono_method): set
18100         pinvoke flag
18101
18102 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18103
18104         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18105
18106 2003-01-29  Dick Porter  <dick@ximian.com>
18107
18108         * threads.c: No need for the fake_thread kludge now that Thread
18109         doesn't run a class constructor
18110         
18111 2003-01-29  Dick Porter  <dick@ximian.com>
18112
18113         * threads.c: Use g_direct_hash instead of the rather bogus
18114         g_int_hash
18115
18116 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18117
18118         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18119         (fix pinvoke12.exe)
18120         (mono_marshal_get_struct_to_ptr): generate valid IL code
18121         (mono_marshal_get_ptr_to_struct): generate valid IL code
18122         (*): correctly set sig->pinvoke, we need to memdup the signature
18123         to do that
18124
18125 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18126
18127         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18128         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18129
18130 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18131
18132         * profiler.c: provide more callers information.
18133
18134 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18135
18136         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18137
18138         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18139
18140         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18141
18142 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18143
18144         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18145         exception instead of going into an infinite loop on dates which it 
18146         can't yet handle.
18147
18148         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18149         out-of-range exception if needed.
18150
18151         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18152         an implementation for an interface method and to override an inherited
18153         method at the same time. 
18154         Imagine a scenario when a virtual method is used to override a
18155         virtual abstract method in a parent class, and this same method 
18156         provides an implementation for an method inherited from an interface. 
18157         In this case, the interface resolution code will set im->slot, which 
18158         means that the virtual method override pass will skip this method 
18159         which means a pointer to the abstract method inherited from the parent
18160         will remain in the vtable of this non-abstract class.
18161
18162         * class.c: (mono_class_setup_vtable): continue search for a real 
18163         method if only an abstract method is found.     
18164
18165 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18166
18167         * reflection.c: add size to encoding for ByValStr and ByValArray
18168         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18169
18170 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18171
18172         * class.c (mono_class_setup_vtable): pass the override info as an
18173         argument.
18174
18175         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18176         correctly.
18177         
18178         * reflection.c (ensure_runtime_vtable); add support for method 
18179         overrides.
18180         
18181 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18182
18183         * reflection.c (resolution_scope_from_image): Hack to work to work with
18184         dynamic assemblies.
18185
18186         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18187         added a 'force_ref' argument to force this function to allways return 
18188         a TypeRef. This is needed by mono_image_get_memberref_token ().
18189         
18190 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18191
18192         * reflection.c (mono_image_get_type_info): interfaces really don't have
18193         a parent.
18194
18195         * reflection.c (mono_image_basic_init): fill out missing fields of
18196         image structure.
18197
18198         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18199         dynamic assemblies. This is required so dynamic assemblies show up in
18200         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18201         Type::GetType() etc. This is consistent with MS behaviour.
18202
18203         * image.c image.h reflection.c: add newly created classes to the name 
18204         cache so mono_class_get () will find them.      
18205
18206 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18207
18208         First part of changes to get IKVM.NET running under mono.
18209         
18210         * appdomain.h, appdomain.c: added new function 
18211         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18212         This function will call AppDomain::DoTypeResolve to do the actual work.
18213
18214         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18215         moved existing code dealing with dynamic tokens to a new function 
18216         called mono_reflection_lookup_dynamic_token (). This function will 
18217         raise TypeResolve events when appropriate. Since reflection.c is not 
18218         part of libmetadata, a new hook function called 
18219         mono_lookup_dynamic_token() is added to class.c which will call this.
18220
18221         * assembly.h assembly.c: make the invoke_load_hook function public,
18222         so it can be called for dynamic assemblies.
18223
18224         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18225
18226         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18227         type isn't found.
18228
18229         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18230         MonoGHashTable, since it contains pointers to objects which the GC 
18231         needs to track.
18232
18233         * assembly.c (search_loaded): remove unused variable.
18234         
18235 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18236
18237         * object.c: fixed issue exposed by gcc-generated IL programs
18238         that use RVA data for pointers.
18239
18240 2003-01-25  Martin Baulig  <martin@ximian.com>
18241
18242         * threads.c (start_wrapper): Moved the initialization of
18243         `start_func' above the mono_new_thread_init() call to which we
18244         pass it as argument.
18245
18246 2003-01-24  Martin Baulig  <martin@ximian.com>
18247
18248         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18249         the MonoThread pointer.
18250
18251 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18252
18253         * icall.c: Rename `PowImpl' to Pow.
18254
18255 2003-01-23  Dick Porter  <dick@ximian.com>
18256
18257         * threads.c (start_wrapper): Create a Thread object if needed, so
18258         the Main() thread can do the class initialisation in a subthread
18259         that has been set up to allow managed code execution.
18260
18261         Pass the thread ID instead of the MonoThread pointer to the thread
18262         start and attach callbacks.  This change is required, because the
18263         jit thread start callback must be called _before_ the Thread
18264         object can be created.
18265         
18266         (mono_thread_init): Removed much object creation code that is no
18267         longer needed.  No managed code is called from here now.
18268
18269         * object.c (mono_runtime_exec_managed_code): Create a subthread
18270         for Main, and call back to the runtime to use it.
18271         Set the exit code when Main exits.
18272
18273         * gc.c: Make sure domain finalisation happens in a subthread.
18274         Re-enable threaded GC, fixing bug 31333 (again).
18275
18276         * environment.c: System.Environment internall calls (so far just
18277         ExitCode is here, the others are still in icall.c)
18278
18279         * appdomain.c (mono_runtime_cleanup): All threads running managed
18280         code should have finished before mono_runtime_cleanup() is
18281         reached, so no need to clean up threads.
18282
18283 2003-01-22  Martin Baulig  <martin@ximian.com>
18284
18285         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18286         `gpointer func' arguments.      
18287         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18288         but added `MonoThread *thread' argument.
18289         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18290
18291         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18292         and pass it to the mono_thread_start_cb callback.
18293         (mono_install_thread_callbacks): New public function to install a
18294         set of callbacks which are set by the debugger.
18295         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18296
18297 2003-01-22  Martin Baulig  <martin@ximian.com>
18298
18299         * Makefile.am: Install debug-mono-symfile.h.
18300
18301 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18302
18303         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18304
18305 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18306
18307         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18308         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18309         (mono_array_class_get): correctly set access levels of arrays
18310
18311 2003-01-20      Patrik Torstensson
18312         * image.h (MonoAssemblyName): changed major, minor, build, revision
18313         from signed to unsigned.
18314
18315 2003-01-20  sean kasun <skasun@azstarnet.com>
18316
18317         * reflection.c (load_cattr_value): Now this handles
18318         MONO_TYPE_SZARRAY.  Fixes bug #35629
18319
18320 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18321
18322         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18323         integer value
18324
18325 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18326
18327         * decimal.c: fixed bug #26056.
18328
18329 2003-01-17  Martin Baulig  <martin@ximian.com>
18330
18331         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18332
18333 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18334
18335         * exception.[ch]:
18336         (mono_get_exception_type_initialization): new function.
18337
18338         * object.c: throw a TypeInitializationException when an exception is
18339         thrown invoking the class constructor.
18340
18341 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18342
18343         * reflection.c: fixed attribute reading.
18344
18345 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18346
18347         * icall.c:
18348         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18349         provided, look for the type in the calling assembly and then in
18350         mscorlib; if the assembly name is provided, only try that one.
18351
18352 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18353
18354         * object.c: register the vtable before there is a chance it's
18355         queried again recursively.
18356
18357 2003-01-13  Duncan Mak  <duncan@ximian.com>
18358
18359         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18360         gc-internal.h. 
18361         
18362 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18363
18364         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18365
18366 2003-01-11  Martin Baulig  <martin@ximian.com>
18367
18368         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18369         this to 20 for the release.
18370
18371 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18372
18373         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18374
18375         * loader.c (mono_method_get_marshal_info): bug fix
18376
18377         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18378         structures with explicit layout
18379
18380 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18381
18382         * profiler.c: made the output more readable (and sorted). 
18383         Added caller information for the allocation profiler.
18384
18385 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18386
18387         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18388
18389 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18390
18391         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18392         to get value types.
18393         
18394 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18395
18396         * object.c, profiler.h, profiler.c, profiler-private.h:
18397         Added object allocation profiler.
18398
18399 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18400
18401         * reflection.h, reflection.c: handle global methods.
18402         Compress blob entries.
18403
18404 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18405
18406         * marshal.c: fix compilation.
18407
18408 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18409
18410         * loader.c (mono_method_get_marshal_info): impl.
18411
18412         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18413
18414 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18415
18416         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18417         for reference types.
18418
18419 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18420
18421         * loader.c: fixed off by one error in loaded parameter names.
18422
18423 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18424
18425         * marshal.c (mono_marshal_get_icall_wrapper): like
18426         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18427         instead of a MonoMethod.
18428
18429 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18430
18431         * decimal.c: fixed bug #36537.
18432
18433 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18434
18435         * marshal.c: throw a missing method exception if a
18436         P/Invoke method is not found.
18437
18438 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18439
18440         * icall.c: allow a null this for constructors.
18441
18442 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18443
18444         * icall.c: raise the proper exceptions if the arguments to the
18445         internal Invoke are incorrect.
18446
18447 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18448
18449         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18450
18451 2003-01-03  Martin Baulig  <martin@ximian.com>
18452
18453         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18454
18455 2002-12-31  Martin Baulig  <martin@ximian.com>
18456
18457         * debug-mono-symfile.c: Completely rewrote the type section.
18458         Instead of using individual malloc()ed fields, we use one big
18459         continuous memory area and offsets into this area.
18460         See the comments in the source code for details.
18461
18462 2002-12-30  Martin Baulig  <martin@ximian.com>
18463
18464         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18465
18466 2002-12-30  Martin Baulig  <martin@ximian.com>
18467
18468         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18469         line number table in this data blob instead of using an external
18470         pointer.
18471
18472 2002-12-28  Martin Baulig  <martin@ximian.com>
18473
18474         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18475
18476 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18477
18478         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18479         as a boxed return type.
18480
18481 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18482
18483         * appdomain.c
18484         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18485         g_build_filename to properly get separators on the filename created.
18486
18487         * object.h: Small change, introduce MonoMarshalByRefObject to
18488         track the layout of that structure in the C# universe as we make
18489         changes there.
18490
18491 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18492
18493         * object.c: removed assert to allow static fields on interfaces.
18494         * loader.c: a TypeSpec may be used for any type, not just arrays.
18495
18496 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18497
18498         * class.c, class.h: added mono_class_array_element_size ().
18499         Ignore static methods in interfaces.
18500
18501 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18502
18503         * threads.c: fixed the build under cygwin.
18504
18505 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18506
18507         * reflection.c: handle nullref constants. Allocate keys for
18508         reflection handles with the GC.
18509
18510 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18511
18512         * threads.c, threads.h: added mono_thread_get_abort_signal()
18513         to get a suitable signal for thread abort.
18514
18515 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18516
18517         * metadata.c: fix handling of ExportedType table.
18518
18519 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18520
18521         * icall.c: added WriteWindowsDebugString internal call.
18522
18523 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18524
18525         * reflection.h: added fields to match C# implementation.
18526
18527 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18528
18529         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18530
18531 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18532
18533         * gc.h, gc-internal.h: Rename header for GC internal calls to
18534         gc-internal.h from gc.h as to not clash with Boehm GC having its
18535         header installed as <gc.h> in outside include paths.
18536         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18537         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18538
18539 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18540
18541         * icall.c: assign minor, build and revision in FillName.
18542
18543 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18544
18545         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18546         Added support for running code generated by Reflection.Emit.
18547
18548 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18549
18550         * appdomain.c: check for NULL argument in LoadFrom.
18551
18552 2002-12-10  Dick Porter  <dick@ximian.com>
18553
18554         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18555
18556 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18557
18558         * appdomain.c: fix buglet when building exe file name.  Handle full
18559         assembly name (needed after latest changes to AssemblyName).
18560         * image.c:
18561         (mono_image_close): free some hashtables.
18562
18563 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18564
18565         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18566         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18567         on some systems (redhat 7.3) 
18568
18569 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18570
18571         * threads.c: delete the critical section of a sync block,
18572         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18573
18574 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18575
18576         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18577
18578 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18579
18580         * appdomain.[ch]: handle the assembly preload event to try loading the
18581         assemblies using the paths we have in the current domain.
18582
18583         * assembly.[ch]: created an assembly preload hook that is called to try
18584         loading the assembly by other means that the ones provided here.
18585
18586         * domain.c: initialize the domain search path.
18587
18588         From now on, assemblies (TODO: except corlib and System) are loaded
18589         according to these rules when using mono_assembly_load ():
18590
18591                 1. It tries to load the assembly from the ApplicationBase
18592                 of the current domain appending .dll and .exe (TODO: have to
18593                 try loading from name/name.dll and name/name.exe).
18594
18595                 2. It tries the search path specified in PrivateBinPath for the
18596                 current domain (if any).
18597
18598                 3. Previous behavior.
18599
18600 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18601
18602         * icall.c: implemented GetInterfaceMap() related icall.
18603         * domain.c, loader.h: load MethodInfo in mono_defaults.
18604
18605 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18606
18607         * gc.c: disable the finalizer thread for now, untill all the issues
18608         with it are resolved.
18609
18610 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18611
18612         * string-icalls.c: handle embedded nulls in string ctor when the
18613         length is specified.
18614
18615 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18616
18617         * class.c: look for explicit interface implementation in parent
18618         classes, too.
18619
18620 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18621
18622         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18623
18624 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18625
18626         * gc.c: protect handles with a critical section.
18627
18628 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18629
18630         * icall.c:
18631         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18632         parameters. If no assembly specified, try getting the type from all
18633         the assemblies in the current domain, else, load the assembly and get
18634         the type from it.
18635
18636 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18637
18638         * marshal.c: applied patch from Aleksey Demakov that fixes
18639         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18640
18641 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18642
18643         * icall.c: fixed get_location.
18644
18645 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18646
18647         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18648         declarations to make it work with older gcc. 
18649
18650         * loader.c (mono_get_method): set signature->pinvoke for native calls
18651
18652 2002-11-20  Dick Porter  <dick@ximian.com>
18653
18654         * threads.c (mono_thread_init): Set the main thread's handle
18655
18656 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18657
18658         * gc.c: allow compilation without GC support. Changed to match the
18659         mono coding style.
18660
18661 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18662
18663         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18664
18665 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18666
18667         * reflection.c: set a public key token on the core assemblies.
18668
18669 2002-11-18  Dick Porter  <dick@ximian.com>
18670
18671         * threads.c: Split out some thread initialisation so that other
18672         files can set the start callback function.
18673
18674         * gc.c: Run finalisers in a separate thread, to avoid stack
18675         overflow.  Fixes bug 31333.
18676
18677         * appdomain.c: Set up GC finalisation thread.
18678
18679         * reflection.c: 
18680         * object.c: 
18681         * domain.c: Use gc.h macros for GC_malloc
18682         
18683 2002-11-15  Dick Porter  <dick@ximian.com>
18684
18685         * threadpool.c: 
18686         * threads.c:
18687         * appdomain.c: Removed mono_runtime_init_with_attach(),
18688         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18689         merging the extra parameter with the existing function.  Removed
18690         unneeded code in mono_thread_attach().
18691
18692 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18693
18694         * image.c (mono_image_loaded_by_guid): a method to get loaded
18695         images by guid. 
18696         (load_metadata_ptrs): we store the guid as string.
18697
18698 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18699
18700         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18701
18702         * metadata.c (mono_guid_to_string): imported method form Zoltan
18703         Varga (slightly modified)
18704
18705         * assembly.c (mono_assembly_open): load precompiled code
18706
18707         * loader.h (MonoMethod): we store the method token for use in the
18708         aot compiler. 
18709
18710 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18711
18712         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18713         the hook function called when an assembly is loaded.
18714         
18715         * domain.c: Modified file.
18716         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18717
18718         Fixes bug #33196.
18719
18720 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18721
18722         * reflection.c: Map PEFileKind to the value expected by the WinNT
18723         image loader. 
18724
18725 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18726
18727         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18728         Read until the buffer is filled completely.
18729
18730 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18731
18732         * icall.c: implemented MonoType.InternalGetEvent ().
18733
18734 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18735
18736         * appdomain.c: implemented InitAppDomainSetup. Delayed
18737         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18738         the entry_assembly.
18739
18740         * assembly.c: base_dir is now an absolute path ending with
18741         G_DIR_SEPARATOR.
18742
18743         * icall.c: modified get_location according to the above changes.
18744
18745         * object.c: init AppDomain.SetupInformation for the default domain after
18746         we have the entry assembly.
18747
18748         * domain.c: when unloading a domain, setup = NULL.
18749
18750 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18751
18752         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18753
18754 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18755
18756         * object.h, object.c: introduced mono_object_get_virtual_method ()
18757         to lookup the method invoked on an object when a callvirt is done on
18758         a method.
18759         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18760
18761 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18762
18763         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18764         current domain when loaded an assembly and failed to load it.
18765
18766         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18767
18768 2002-10-31  Dick Porter  <dick@ximian.com>
18769
18770         * icall.c: 
18771         * file-io.h: 
18772         * file-io.c: Return the error status in a parameter, as the
18773         GetLastError() value has long since been blown away if we try and
18774         look it up in a subsequent internal call invocation.  Delete the
18775         GetLastError() internal call, because it's useless.
18776
18777 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18778
18779         * class.[ch]: added cast_class to fix bug 29517
18780
18781 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * marshal.c: create valid IL code in the filter clause:
18784         the new JIT is less forgiving:-)
18785
18786 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18787
18788         * icall.c: removed get_property internal call.
18789
18790 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18791
18792         * appdomain.h domain.c: Added an ID to appdomains.
18793         
18794         * threads.c threads.h icall.c: Implement icall
18795         Thread:GetDomainID(), and remove unused icall 
18796         CurrentThreadDomain_internal.
18797
18798 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18799
18800         * icall.c: Don't recurse through the base types in GetConstructor.
18801         Fixes bug #32063. 
18802
18803 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18804
18805         * mempool.h, mempool.c: added mono_mempool_empty() and
18806         mono_mempool_stats().
18807
18808 2002-10-23  Dick Porter  <dick@ximian.com>
18809
18810         * file-io.c: 
18811         * file-io.h: 
18812         * icall.c: Added MonoIO.GetFileType internal call
18813
18814 2002-10-17  Dick Porter  <dick@ximian.com>
18815
18816         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18817         delegate semaphore before waiting for all threads to finish,
18818         because new threads can also call async delegates.  Fixes bug
18819         32004.
18820
18821         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18822         of 3 seconds, in case another async job is queued.  (This part is
18823         needed because the bug fix reintroduced the 3s exit lag.)  This
18824         makes the mono_runtime_shutdown flag superfluous.
18825
18826 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18827
18828         * reflection.c: include ehader size in method section headers.
18829         Really check for suplicated modules entries.
18830
18831 2002-10-17  Martin Baulig  <martin@gnome.org>
18832
18833         * debug-mono-symfile.c: Added back support for locals.
18834
18835 2002-10-14  Martin Baulig  <martin@gnome.org>
18836
18837         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18838         MONO_TYPE_VOID.
18839
18840 2002-10-14  Martin Baulig  <martin@gnome.org>
18841
18842         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18843         mono_class_get() instead of looking in the class cache. 
18844
18845 2002-10-13  Martin Baulig  <martin@gnome.org>
18846
18847         * debug-mono-symfile.c: Set version number to 28, include the
18848         signature in method names.
18849
18850 2002-10-13  Martin Baulig  <martin@gnome.org>
18851
18852         * debug-mono-symfile.h: Set version number to 27.
18853
18854 2002-10-11  Martin Baulig  <martin@gnome.org>
18855
18856         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18857
18858 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18859
18860         * metadata.c, metadata.h: added helper function to allocate signatures.
18861
18862 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18863
18864         * icall.c: added internal call to get the location of machine.config.
18865
18866 2002-10-08  Martin Baulig  <martin@gnome.org>
18867
18868         * debug-mono-symfile.c: Ignore classes with a pending init for the
18869         moment.
18870
18871 2002-10-03  Dick Porter  <dick@ximian.com>
18872
18873         * threads.c: Freebsd pthread_t is a pointer
18874
18875 2002-10-03  Dick Porter  <dick@ximian.com>
18876
18877         * socket-io.c: Implemented GetHostName_internal
18878
18879 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18880
18881         * mono-config.c:
18882         (mono_config_parse_file): don't leak the text.
18883
18884 2002-10-02  Martin Baulig  <martin@gnome.org>
18885
18886         * debug-mono-symfile.c: Added support for methods.
18887
18888 2002-10-01  Martin Baulig  <martin@gnome.org>
18889
18890         * debug-mono-symfile.c: Don't emit methods and line numbers for
18891         the dynamic symbol file, just write the type table.  We can easily
18892         have an external helper program which creates a symbol file for an
18893         IL file.        
18894
18895 2002-10-01  Dick Porter  <dick@ximian.com>
18896
18897         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18898         Only add the handle to the cleanup array when we're about to
18899         launch the thread.  Bug 31425 deadlocked when the test was run on
18900         mono under w32.
18901
18902 2002-10-01  Martin Baulig  <martin@gnome.org>
18903
18904         * debug-mono-symfile.c: Added support for properties.
18905
18906 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18907
18908         * reflection.c: unaligned store fix from Mark Crichton
18909         <crichton@gimp.org>.
18910
18911 2002-09-27  Martin Baulig  <martin@gnome.org>
18912
18913         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18914         New interncall.
18915
18916 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18917
18918         * assembly.h, assembly.c: use a sane API to hook into the assembly
18919         loading process instead of a useless special-purpouse hack
18920         (ngen needs a hook, too, for example).
18921
18922 2002-09-27  Dick Porter  <dick@ximian.com>
18923
18924         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18925         io-layer can set up some process handle info.  Not needed on w32,
18926         but doesn't hurt either.
18927
18928         * process.c: Pass the program name in the second parameter to
18929         CreateProcess, so the path is searched.  Include the working
18930         directory. Implemented process name, process enumeration, and some
18931         process detail internal calls.
18932         
18933         * icall.c: Added internal calls for process lookup, and some
18934         process details
18935
18936 2002-09-26  Martin Baulig  <martin@gnome.org>
18937
18938         * assembly.c (mono_install_open_assembly_hook): New global
18939         function to install a function to be invoked each time a new
18940         assembly is loaded.
18941         (mono_assembly_open): Run this callback function if set.
18942
18943         * debug-mono-symfile.c: Put back line numbers for the dynamic
18944         symbol file and also record the .il file as source file.  This
18945         allows us to install the temporary symbol file as `file.dbg' just
18946         like a compiler-generated one.
18947
18948 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18949
18950         * Corrected typo in gc.c (BOHEM vs BOEHM).
18951
18952 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18953
18954         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18955         GetProperties. Also avoid calling g_slist_length in GetProperties and
18956         GetMethods.
18957
18958 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18959
18960         * reflection.c: avoid unaligned stores (bug spotted by
18961         Mark Crichton  <crichton@gimp.org>).
18962
18963 2002-09-25  Martin Baulig  <martin@gnome.org>
18964
18965         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18966         instead of guint64 for addresses and added prologue/epilogue info.
18967
18968 2002-09-25  Martin Baulig  <martin@gnome.org>
18969
18970         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18971         store line number info.  For the dynamic symbol file, we only need
18972         to provide the JIT generated dynamic line number info for the dynamic
18973         symbol file.
18974
18975 2002-09-25  Martin Baulig  <martin@gnome.org>
18976
18977         * debug-mono-symfile.h: Incremented version number.
18978
18979 2002-09-24  Martin Baulig  <martin@gnome.org>
18980
18981         * class.c (mono_debugger_class_init_func): New global function
18982         pointer variable.
18983         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18984         call it.
18985
18986         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18987         function.  This is called via the mono_debugger_class_init_func
18988         hook to add all types to the dynamic type table.
18989         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18990         from its metadata token.
18991
18992         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18993         New interncall for the debugger.
18994
18995 2002-09-24  Nick Drochak <ndrochak@gol.com>
18996
18997         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18998         before using it in case it is null.
18999         
19000 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19001
19002         * metadata.c: allow custom modifiers in local var signatures
19003         (bug spotted by Zoltan Varga).
19004
19005 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19006
19007         * class.c: deal with the <Module> class that may have a NULL vtable.
19008         Eliminate warnings.
19009
19010 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19011
19012         * image.c, image.h: more strong name helpers.
19013         * monosn.c: more work: convert pem keys to cryptoapi format.
19014
19015 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19016
19017         * string-icalls.c: speedup IndexOf.
19018
19019 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19020
19021         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19022
19023 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19024
19025         * icall.c: cleanup: use mono_object_domain ().
19026
19027 2002-09-23  Martin Baulig  <martin@gnome.org>
19028
19029         * debug-mono-symfile.c: Improved type support.
19030
19031 2002-09-22  Martin Baulig  <martin@gnome.org>
19032
19033         * debug-mono-symfile.c: Added support for reference types and strings.
19034
19035 2002-09-22  Martin Baulig  <martin@gnome.org>
19036
19037         * debug-mono-symfile.c: Started to work on the type table.
19038
19039 2002-09-21  Martin Baulig  <martin@gnome.org>
19040
19041         * debug-mono-symfile.c: Largely reworked the symbol table format.
19042         The symbol table is now incrementally updated each time a new
19043         method is added.  We're now also using our own magic and version
19044         so that you don't need to recompile all your classes if the
19045         dynamic table changes.
19046         (mono_debug_update_mono_symbol_file): Removed.
19047         (mono_debug_symfile_add_method): New function to add a method.
19048
19049 2002-09-21  Martin Baulig  <martin@gnome.org>
19050
19051         * icall.c
19052         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19053         New interncall.
19054
19055         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19056         New interncall to get a method from its metadata token.
19057
19058 2002-09-21  Martin Baulig  <martin@gnome.org>
19059
19060         * debug-mono-symfile.c: Create type table.
19061
19062 2002-09-20  Martin Baulig  <martin@gnome.org>
19063
19064         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19065
19066 2002-09-20  Martin Baulig  <martin@gnome.org>
19067
19068         * debug-mono-symfile.c: Provide information about params and locals.
19069
19070 2002-09-20  Martin Baulig  <martin@gnome.org>
19071
19072         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19073         New interncall.
19074
19075         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19076         interncall to get a method from its metadata token.
19077
19078 2002-09-20  Martin Baulig  <martin@gnome.org>
19079
19080         * debug-mono-symfile.c: Added a few checks for method->header
19081         being non-NULL.  This should never happen, but for the moment
19082         let's use a g_warning() rather than a g_assert().
19083
19084 2002-09-19  Mark Crichton  <crichton@gimp.org>
19085
19086         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19087         even if support for it isn't present.  Added an #ifdef to fix this.
19088
19089         * socket-io.c: Added checks back for Solaris support.
19090
19091 2002-09-19  Martin Baulig  <martin@gnome.org>
19092
19093         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19094         changes in the symbol file format.
19095
19096 2002-09-18  Martin Baulig  <martin@gnome.org>
19097
19098         * debug-mono-symfile.c: Set version number to 21.
19099
19100 2002-09-18  Dick Porter  <dick@ximian.com>
19101
19102         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19103         on netbsd.  Fixes bug 30051.
19104
19105 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19106
19107         * reflection.c:
19108         (set_version_from_string): little fix.
19109
19110 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19111
19112         * monosn.c, Makefile.am: added strong name utility.
19113         * reflection.h, reflection.c: implemented delayed signing,
19114         locale, version and hash id assembly attributes.
19115
19116 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19117
19118         * loader.c, metadata.c: load param attributes in signatures.
19119
19120 2002-09-16  Martin Baulig  <martin@gnome.org>
19121
19122         * debug-mono-symfile.c: Added string table with all method names.
19123
19124 2002-09-14  Martin Baulig  <martin@gnome.org>
19125
19126         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19127         fast method lookup.
19128
19129 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19130
19131         * reflection.c: record the public key token of referenced assemblies.
19132
19133 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19134
19135         * image.c, image.h: added functions to get the strong name and the
19136         public key of an assembly.
19137         * pedump.c: use them.
19138
19139 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19140
19141         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19142
19143 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19144
19145         * marshal.c (mono_marshal_get_managed_wrapper): Added
19146         MONO_TYPE_BOOLEAN 
19147
19148 2002-09-11  Martin Baulig  <martin@gnome.org>
19149
19150         * gc.c: Call GC_unregister_disappearing_link() on all links when
19151         finalizing them, this is necessary to aviod a crash in boehm's
19152         finalize handler.
19153
19154 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19155
19156         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19157         nick@chemlab.org.
19158
19159 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19160
19161         * icall.c: implemented MonoType::Module.
19162         * reflection.c, reflection.h: mono_module_get_object () from
19163         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19164
19165 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19166
19167         * icall.c: ignore overridden methods in GetMethods ().
19168         Fix for FieldInfo::SetValue().
19169         * object.c: handle float/double in runtime invoke.
19170
19171 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19172
19173         * object.c: allow a constructor to be called again on an object.
19174
19175 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19176
19177         * class.h, class.c: move field layout code to it's own function and
19178         export it. Get an interface id earlier. Move fields in MonoClass
19179         so they are more cache friendly and align the bitfields.
19180         * loader.c: temporary handle get_param_names() for a runtime method.
19181         * reflection.c, reflection.h: more code to handle runtime creation of
19182         types.
19183
19184 2002-09-09  Martin Baulig  <martin@gnome.org>
19185
19186         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19187         signature with the pinvoke field being set for the actual call.
19188
19189 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19190
19191         * icall.c: removed some unused icalls. Start of map of glib charsets
19192         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19193
19194 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19195
19196         * debug-helpers.c: break infinite loop (found and fixed by
19197         Holger Arnold <harnold@gmx.de>).
19198
19199 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19200
19201         * icall.c: target may be null in create_delegate.
19202
19203 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19204
19205         * marshal.c: handle a boolean return type.
19206
19207 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19208
19209         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19210
19211 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19212
19213         * gc.c: fix weakreferences.
19214
19215 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19216
19217         * icall.c: added icall to get default codepage.
19218
19219 2002-09-03  Dick Porter  <dick@ximian.com>
19220
19221         * threads.h: 
19222         * threads.c: Use MonoThread instead of MonoObject where
19223         apropriate.
19224
19225         Store running thread objects in a hash table, so that we have all
19226         the info to hand when waiting for them to finish
19227         (means we don't need OpenThread() any more, so mingw builds should
19228         be fully functional again.)
19229
19230         * verify.c:
19231         * object.h: Added thread ID to MonoThread
19232
19233 2002-09-03  Martin Baulig  <martin@gnome.org>
19234
19235         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19236
19237 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19238
19239         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19240
19241 2002-09-03  Martin Baulig  <martin@gnome.org>
19242
19243         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19244         argument to store the end address of the disassembled instruction.
19245
19246         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19247         here from debug-symfile.h.
19248         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19249         JIT into this struct.
19250         (MonoSymbolFile): Added `char *image_file' field.
19251         (MonoDebugGetMethodFunc): Removed.
19252         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19253         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19254         (mono_debug_find_method): New method.
19255
19256         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19257         create a full symbol file.
19258         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19259         and static symbol files.
19260         (mono_debug_find_method): The symbol file keeps an internal method hash,
19261         call this to get a MonoDebugMethodInfo from a MonoMethod.
19262
19263         * debug-symfile.[ch]: Removed.
19264
19265 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19266
19267         * image.c (do_mono_image_open): Remove linker version check.
19268
19269 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19270
19271         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19272         wrappers for instance methods.
19273         
19274 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19275
19276         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19277
19278 2002-08-28  Dick Porter  <dick@ximian.com>
19279
19280         * Makefile.am: Export HOST_CC for w32 builds
19281
19282 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19283
19284         * file-io.c process.c: MonoString are null terminated, no
19285         need for mono_string_to_utf16() anymore.
19286
19287 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19288
19289         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19290
19291 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19292
19293         * icall.c, reflection.h: speedup System.MonoType.
19294
19295 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19296
19297         * reflection.c: allow null as the value of a string argument in
19298         custom attributes constructors.
19299
19300 2002-08-27  Martin Baulig  <martin@gnome.org>
19301
19302         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19303         `trampoline_address' field.
19304
19305 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19306
19307         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19308         check (fixes bug #29486) 
19309
19310 2002-08-27  Martin Baulig  <martin@gnome.org>
19311
19312         * debug-mono-symfile.c: Changed the file format in a way that allows us
19313         open it read-only and to use a specially malloced area for all the
19314         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19315         debugging IL code and there is no MCS generated symbol file for it.
19316
19317 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19318
19319         * object.c: added a define for a good string and array
19320         creation speedup (not enabled by default because we need to deal with
19321         the synch stuff).
19322
19323 2002-08-26  Martin Baulig  <martin@gnome.org>
19324
19325         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19326         function to create a dynamic symbol file.  This is used by the
19327         debugger to create a symbol file for IL code on-the-fly.
19328
19329 2002-08-26  Martin Baulig  <martin@gnome.org>
19330
19331         * loader.c (mono_lookup_pinvoke_call): Include the error message
19332         from g_module_error() in the error message.
19333
19334 2002-08-24  Martin Baulig  <martin@gnome.org>
19335
19336         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19337         function to update the symbol file.  The symbol file is mmap()ed
19338         writable, but private.  This allows us to install the symbol file
19339         together with the assembly.
19340
19341 2002-08-24  Martin Baulig  <martin@gnome.org>
19342
19343         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19344         but they can read the new symbol file format which mcs is now creating.
19345
19346         * debug-symfile.c (mono_debug_find_source_location): Moved to
19347         debug-mono-symfile.c; this is now operating on the new symbol file.
19348
19349 2002-08-23  Martin Baulig  <martin@gnome.org>
19350
19351         * debug-helpers.c (mono_method_desc_from_method): New function to get
19352         a MonoMethodDesc from a MonoMethod.
19353
19354 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19355
19356         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19357         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19358
19359 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19360
19361         * string-icalls.[ch]: make helper methods static.
19362
19363 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19364
19365         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19366         types to it and to SetValueInternal.
19367
19368         * object.c: Moved handle_enum label to its proper place. This was the
19369         f... bug! ;-)
19370
19371         This time i compiled mcs and gtk-sharp and they both work.
19372
19373 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19374
19375         * icall.c: reverted partially my previous patch until 
19376         object.c:set_value handles enums correcly.
19377
19378 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19379
19380         * icall.c:
19381         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19382         (ves_icall_System_Environment_get_MachineName): removed warning when
19383         compiling under cygwin.
19384
19385 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19386
19387         * object.c: fixed field_get_value() for reference types.
19388
19389 2002-08-22  Dick Porter  <dick@ximian.com>
19390
19391         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19392         Don't free a buffer while it's still needed.  Patch from Jonathan
19393         Liger <Jonathan.liger@wanadoo.fr>
19394
19395 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19396
19397         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19398         internal call.
19399
19400 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19401
19402         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19403         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19404
19405         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19406         we call unmanaged code which throws exceptions.
19407
19408 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19409
19410         * appdomain.h: added per-domain entry_assembly.
19411         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19412         arguments.
19413         * icall.c: Assembly::GetEntryAssembly icall.
19414         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19415         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19416
19417 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19418
19419         * appdomain.h, gc.c: added mono_domain_finalize ().
19420
19421 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19422
19423         * object.c:
19424         (mono_print_unhandled_exception): changed g_warning by g_printerr
19425         because g_log has a 1024 characters limit (yeah, i got a big stack
19426         trace). Don't print exception name, that should be in ToString 
19427         returned string.
19428
19429 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19430
19431         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19432         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19433
19434 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19435
19436         * object.c:
19437         (mono_print_unhandled_exception): after previous commit, i realized
19438         that MS calls ToString on the exception. I changed this function to
19439         do that. This way we get stack_trace for free.
19440
19441 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19442
19443         * object.c:
19444         (mono_print_unhandled_exception): invoke Message property instead of
19445         getting 'message' field from Exception. Don't allocate memory for
19446         'trace' and 'message' if not needed.
19447
19448 2002-08-18  Dick Porter  <dick@ximian.com>
19449
19450         * unicode.c: Fix asserts to match Encoder.cs checks
19451
19452 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19453
19454         * marshal.c: fix unaligned store issue and a few wrong
19455         opcode argument types.
19456
19457 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19458
19459         * icall.c: added GetUninitializedObjectInternal internal call.
19460
19461 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19462
19463         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19464         to the right domain.
19465
19466 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19467
19468         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19469
19470         * class.c (class_compute_field_layout): set blittable to false for Strings
19471
19472         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19473
19474 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19475
19476         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19477         first chunk of code to create types at runtime. Code to
19478         handle ReflectedType/DeclaringType. Make reflection handles
19479         domain specific.
19480
19481 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19482
19483         * class.c: set correct name in arrays.
19484
19485 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19486
19487         * appdomain.c (mono_domain_transfer_object): make it work with
19488         valuetypes. bug fixes.
19489
19490 2002-08-12  Dick Porter  <dick@ximian.com>
19491
19492         * object.h: Rename some parameters to avoid c++ keywords (Patch
19493         from Joseph Wenninger <kde@jowenn.at>)
19494
19495 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19496
19497         * icall.c: added icall to implement Assembly.GetFile*.
19498
19499 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19500
19501         * reflection.h, reflection.c: code to embed managed resources.
19502
19503 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19504
19505         * class.c: move all the type size stuff into
19506         class_compute_field_layout().
19507
19508 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19509
19510         * class.c: ensure enums have always the correct instance size.
19511         * unicode.c: remove wrong assert.
19512
19513 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19514
19515         * assembly.c: fix mem corruption issue.
19516         * image.h, image.c: added mono_image_get_resource () to access
19517         managed resources.
19518         * icall.c: implemented Assembly.EntryPoint property and some
19519         Managed Resources related internalcalls.
19520
19521
19522 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19523
19524         * image.c, image.h: impemented mono_image_get_entry_point ().
19525         * appdomain.c: use mono_image_get_entry_point.
19526
19527 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19528
19529         * reflection.c: support the object type argument when loading
19530         custom attributes.
19531
19532 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19533
19534         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19535         String as return type.
19536
19537 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19538
19539         * reflection.c: fix encoding of named args for custom attrs to match
19540         the ms implementation. Read them back when instantiating custom
19541         attributes.
19542
19543 2002-08-02  Radek Doulik  <rodo@ximian.com>
19544
19545         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19546         by Dietmar as quick fix
19547         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19548         16 as stack size, used on more places as quick fix before Dietmar
19549         will fix it properly
19550
19551 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19552
19553         * object.h, object.c: added accessors for fields and properties.
19554
19555 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19556
19557         * class.c, class.h: made mono_class_get_field_from_name ()
19558         loop on parent types.
19559         Added mono_class_get_property_from_name ().
19560
19561 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19562
19563         * class.c, class.h: move the code to setup the type vtable in its own
19564         function so that it can be reused also for types created at runtime.
19565         Eliminate the "class" identifier from the header file.
19566         * reflection.c: setup the vtable for enums so that we can create
19567         objects for use in SetConstant ().
19568
19569 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19570
19571         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19572         instead of the delegate itself as this pointer (bug #28383)
19573
19574 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19575
19576         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19577         conversions.
19578
19579 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19580
19581         * loader.c: don't set the pinvoke bit on icalls.
19582
19583 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19584
19585         * debug-helpers.c (mono_method_full_name): only print a number to
19586         indicate wrapper type (so that the output is more readable in traces).
19587
19588 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19589
19590         * class.c (mono_class_init): include method override patch from Paolo
19591
19592 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19593
19594         * icall.c: fixed GetTypeCode().
19595
19596 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19597
19598         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19599         use real delegate invoke function to make it work with multicast
19600         delegates (fix bug# 28291).
19601
19602 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19603
19604         * object.c: load constant strings.
19605
19606 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19607
19608         * reflection.c: no magic numbers.
19609         * tabledefs.h: security action enum.
19610
19611 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19612
19613         * assembly.c: fix possible memory corruption.
19614
19615 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19616
19617         * reflection.h, reflection.c: added support for linking resources.
19618         * verify.c: check we have an updated corlib.
19619
19620 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19621
19622         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19623         string arrays.
19624         (mono_marshal_string_array): null terminate unmanaged string arrays.
19625         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19626
19627 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19628
19629         * icall.c: Type.GetType () can now return also types from the
19630         calling assembly.
19631
19632 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19633
19634         * loader.h, loader.c: stack walking support.
19635         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19636         GetCallingAssembly.
19637
19638 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19639
19640         * marshal.c: added optimisations for blittable types 
19641
19642         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19643         (mono_class_setup_mono_type): set blittable attribute for single
19644         and double.
19645
19646         * marshal.c (mono_string_utf8_to_builder): impl.
19647         (mono_string_builder_to_utf8): impl.
19648         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19649
19650 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19651
19652         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19653         (mono_marshal_get_managed_wrapper): impl. byref types
19654
19655 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19656
19657         * icall.c:
19658         (search_method): don't display debug message. 
19659
19660 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19661
19662         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19663
19664 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19665
19666         * appdomain.c: set the missing filename when throwing exception.
19667
19668 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19669
19670         * metadata.c (mono_type_size): code cleanup
19671         (mono_type_stack_size): removed some test code
19672
19673 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19674
19675         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19676         mono_get_exception_file_not_found now.
19677
19678         * exception.c (mono_exception_from_name_two_strings): New version
19679         that will call a constructor with two string arguments. 
19680         (mono_get_exception_file_not_found): New helper routine, used to
19681         report file-not-found errors.
19682
19683 2002-07-20  Dick Porter  <dick@ximian.com>
19684
19685         * process.h:
19686         * process.c: Pass file handles to CreateProcess
19687         
19688         * icall.c:
19689         * file-io.h:
19690         * file-io.c: Implemented CreatePipe
19691
19692 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19693
19694         * metadata.c (mono_get_param_info): set alignment for value types
19695
19696 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19697
19698         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19699         Constify mono_domain_assembly_open().
19700         * loader.c: handle null namespace in icalls.
19701
19702 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19703
19704         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19705         (emit_str_to_ptr_conv): marshal object as structs
19706
19707         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19708
19709         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19710
19711 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19712
19713         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19714         (mono_marshal_get_native_wrapper): we an now return value types
19715
19716 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19717
19718         * verify.c: more checks implemented.
19719
19720 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19721
19722         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19723         (fix bug #27695)
19724         (mono_marshal_get_native_wrapper): allow byref arguments
19725         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19726         impl. PtrToStringXXX methods
19727         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19728         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19729         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19730         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19731         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19732
19733 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19734
19735         * reflection.c: fix buglet in parsing an assembly name.
19736
19737 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19738
19739         * marshal.c (emit_ptr_to_str_conv): first impl.
19740
19741 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19742
19743         * object.c, class.h: cache the vtable in the class as suggested by
19744         vargaz@freemail.hu (Zoltan Varga).
19745
19746 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19747
19748         * class.h, loader.c: added mono_field_from_token().
19749         * verify.c: first cut of type checking code.
19750
19751 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19752
19753         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19754
19755 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19756
19757         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19758         (fix bug #27782)
19759         (mono_marshal_get_remoting_invoke): impl.
19760         (mono_delegate_begin_invoke): impl.
19761         (mono_mb_emit_save_args): impl.
19762         (mono_delegate_end_invoke): impl.
19763         (mono_marshal_get_delegate_begin_invoke):
19764         (mono_marshal_get_delegate_end_invoke):
19765         (mono_marshal_get_delegate_invoke): generate a special name for
19766         those methods (including the signature) and associate them whith
19767         the delegate class. 
19768
19769 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19770
19771         * reflection.[ch]: 
19772         (mono_reflection_type_from_name): now it has a MonoImage parameter
19773         which is used as the default image to search the type in. If the image
19774         is NULL or getting the type from it fails, it defaults to corlib.
19775
19776         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19777         new parameter.
19778
19779 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19780
19781         * reflection.c: update the parameter table index.
19782
19783 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19784
19785         * domain.c: don't include the mark byte in the string hash.
19786
19787 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19788
19789         * icall.cs: icall for Type.GetTypeCode ().
19790         * verify: a couple of fixes and disabled local initialization checks.
19791
19792 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19793
19794         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19795
19796         * debug-helpers.c (mono_method_full_name): print the type of the
19797         runtime wrapper
19798
19799         * metadata.c (mono_signature_hash): a hash function for signatures
19800         (mono_signature_hash): better hash algorithm
19801
19802         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19803
19804         * debug-helpers.c (mono_method_full_name): this can now generate
19805         method names with signatures
19806
19807         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19808         method dont have this pointers.
19809
19810 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19811
19812         * reflection.c: fixup typebuilder tokens.
19813         * image.c: fix buglet.
19814         * marshal.h: remove whitespace.
19815         * metadata.h, metadata.c: reinstate code that was removed.
19816         * verify.c: handle catch directives and fix another couple of bugs.
19817
19818 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19819
19820         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19821         (mono_marshal_get_native_wrapper): make it comp. with the old code
19822         (mono_marshal_get_native_wrapper): support boolean
19823         (mono_marshal_get_managed_wrapper): support more types
19824
19825 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19826
19827         * class.c (class_compute_field_layout): compute class->blittable attribute.
19828
19829 2002-07-09  Dick Porter  <dick@ximian.com>
19830
19831         * threads.c: Make the thread cleaning up cope with threads that
19832         call ExitThread()
19833
19834 2002-07-08  Radek Doulik  <rodo@ximian.com>
19835
19836         * reflection.c (method_encode_code): use non-translated values to
19837         compute finally_start, this fixes exception handling on ppc, yay!
19838
19839         * decimal.h (struct signscale): fix endianess
19840
19841 2002-07-07  Radek Doulik  <rodo@ximian.com>
19842
19843         * reflection.c: swap box_val and not val
19844
19845 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19846
19847         * reflection.c, reflection.h: handle full assembly info in type name.
19848         Handle Type arguments when loading custom attributes.
19849         * icall.c: updated to use new mono_reflection_type_from_name () method.
19850
19851 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19852
19853         * loader.c:
19854         (method_from_memberref): also print assembly name when method not found.
19855
19856 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19857
19858         * icall.c:
19859         (ves_icall_TypeGetProperties): fixed bug #27473. 
19860
19861 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19862
19863         * reflection.c: display image name and token when cannot find the
19864         .ctor for an attribute.
19865
19866 2002-07-05  Martin Baulig  <martin@gnome.org>
19867
19868         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19869
19870 2002-07-04  Dick Porter  <dick@ximian.com>
19871
19872         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19873         compile on mingw.  This will cause mingw builds to not wait for
19874         subthreads to terminate after the main thread does.  I've lodged a
19875         bug with the mingw developers for them to wrap OpenThread().
19876
19877 2002-07-03  Dick Porter  <dick@ximian.com>
19878
19879         * threads.c: Store thread IDs instead of handles, because
19880         GetCurrentThread() returns a pseudohandle and therefore stores
19881         useless values.  mono_thread_cleanup() continues checking the
19882         array of threads until it is empty, to cope with subthreads
19883         spawning new threads after the main thread has finished.
19884
19885         * profiler.h:
19886         * profiler.c:
19887         * profiler-private.h: Pass the thread ID to thread profiler
19888         functions, instead of a handle
19889
19890 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19891
19892         * verify.c: fixes to make it more usable.
19893         * pedump.c: added --verify code to verify IL code in an assembly.
19894
19895 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19896
19897         * reflection.c: turn errors into warnings to allow compiling corlib.
19898
19899 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19900
19901         * reflection.c: add special cases to compile corlib.
19902
19903 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19904
19905         * reflection.c: handle properties with only a set method.
19906
19907 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19908
19909         * opcodes.h: add enum with opcodes in opval order.
19910
19911 2002-07-01  Dick Porter  <dick@ximian.com>
19912         
19913         * object.h:
19914         * object.c (mono_runtime_run_main): Removed unneeded argument
19915
19916 2002-06-28  Martin Baulig  <martin@gnome.org>
19917
19918         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19919
19920 2002-06-27  Dick Porter  <dick@ximian.com>
19921
19922         * threads.c: Store the handle in both the parent thread and in the
19923         subthread, to minimise the time between starting a new thread and
19924         storing its ID.
19925
19926 2002-06-26  Dick Porter  <dick@ximian.com>
19927
19928         * appdomain.c (mono_runtime_cleanup): Close the socket library
19929         after all the threads have finished, not before
19930
19931 2002-06-26  Martin Baulig  <martin@gnome.org>
19932
19933         * debug-symfile.c (mono_debug_find_source_location): Added
19934         `guint32 *line_number' argument.  If it's not NULL, store the line number
19935         there and return the file name without the line number.
19936
19937 2002-06-25  Dick Porter  <dick@ximian.com>
19938
19939         * icall.c:
19940         * process.h:
19941         * process.c: Process forking and other support functions
19942
19943 2002-06-25  Dick Porter  <dick@ximian.com>
19944
19945         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19946         things dont happen when the image is closed.
19947         (mono_image_lookup_resource): Walk the resource section looking
19948         for a particular entry
19949
19950         * cil-coff.h: PE resource section decoding
19951
19952 2002-06-25  Dick Porter  <dick@ximian.com>
19953         
19954         * assembly.h:
19955         * assembly.c: 
19956         (mono_assembly_foreach): Accessor functions to walk the list of
19957         loaded assemblies
19958         (mono_assembly_set_main):
19959         (mono_assembly_get_main): Process methods need to know which
19960         assembly is the "main" one
19961
19962         * object.c (mono_runtime_run_main): Record the main assembly
19963
19964         * debug-helpers.c: Fix typo
19965
19966 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19967
19968         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19969         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19970
19971 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19972
19973         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19974
19975 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19976
19977         * image.c (do_mono_image_open): Initialize reference count,
19978         otherwise we leak the MonoImage.
19979
19980 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19981
19982         * reflection.c: small tweak to handle self-hosting.
19983
19984 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19985
19986         * reflection.c: fix type name parse code.
19987
19988 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19989
19990         * reflection.c: break out of the loop.
19991         * image.c: special case corlib.
19992
19993 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19994
19995         * reflection.c: add all the custom attrs at the end to ensure the
19996         ctors have been properly initialized when the attributes are defined
19997         in the current assembly.
19998
19999 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20000
20001         * reflection.c: handle correctly multiple-nested types.
20002
20003 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20004
20005         * row-indexes.h: fix typos.
20006         * reflection.c: adjust for typos and fix method_def_or_ref
20007         encoding in MethodImpl table.
20008
20009 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20010
20011         * reflection.c: fix entry point patching (thanks Serge!).
20012
20013 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20014
20015         * verify.c: add check for System.Exception
20016
20017 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20018
20019         * image.c, class.c: minifix for code just c&p'ed.
20020         * reflection.c: warning fix.
20021         * object.h, loader.h, domain.c: load also StringBuilder.
20022
20023 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20024
20025         * marshal.h, marshal.c: some support code to handle complex marshaling.
20026
20027 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20028
20029         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20030         Better signatures with vtable error dump.
20031
20032 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20033
20034         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20035
20036 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20037
20038         * icall.c (ves_icall_Type_GetField): impl.
20039
20040 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20041
20042         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20043         to retrieve a marshal description blob for a field or param.
20044
20045 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20046
20047         * reflection.h, reflection.c: change order of nested type emission
20048         to avoid table corruption. The NestedTypes table is sorted.
20049         * icall.c: change order of GetConstructor results to workaround mcs bug.
20050
20051 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20052
20053         * reflection.h, reflection.c: handle field and param marshal
20054         information.
20055
20056 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20057
20058         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20059
20060 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20061
20062         * reflection.c: fix call convention.
20063
20064 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20065
20066         * reflection.h, reflection.c: mono_image_get_memberref_token()
20067         takes a type instead of a class, now. Added
20068         mono_image_get_array_token() to create tokens for the special
20069         multi-dim array methods.
20070
20071 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20072
20073         * assembly.c: handle modules (no assembly table). Split
20074         loading references in its own function.
20075         * class.c: handle moduleref resolution scope.
20076         * image.c, image.h: cache module name in image.
20077
20078 2002-06-07  Martin Baulig  <martin@gnome.org>
20079
20080         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20081         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20082
20083 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20084
20085         * icall.c: more signature fixes that used uint instead of int.
20086
20087 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20088
20089         * reflection.c: fixed signature of field refs.
20090
20091 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20092
20093         * class.c, reflection.c: handle typerefs of nested types
20094         (both on read and when writing files).
20095
20096 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20097
20098         * icall.c: fix method signatures that tried to workaround the previous
20099         typo, d'oh!
20100
20101 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20102
20103         * debug-helpers.c: fix typo.
20104
20105 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20106
20107         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20108         rewrote the PE/COFF writing code (our programs are understood by the
20109         ms runtime, now).
20110
20111 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20112
20113         * gc.c, gc.h, icall.c: weakreference support.
20114
20115 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20116
20117         * Makefile.am, mono-config.c: use $(sysconfdir).
20118
20119 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20120
20121         * icall.c: changed default precision of Double.ToString() to 15.
20122         Fixed memory leak. Unified with Single.ToString.
20123
20124 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20125
20126         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20127
20128 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20129
20130         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20131         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20132         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20133         and myself.
20134
20135 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20136
20137         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20138
20139 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20140
20141         * reflection.c, socket-io.c: more compilation fixes.
20142
20143 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20144
20145         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20146         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20147         unicode.c: warning and compiler compatibility fixes.
20148
20149 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20150
20151         * class.h, metadata.c: fixed warnings/compilation errors.
20152
20153 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20154
20155         * Makefile.am, mono-config.c, mono-config.h: configuration file
20156         support routines.
20157         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20158         config file. Export methods to insert and lookup mappings.
20159
20160 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20161
20162         * reflection.c: handle types and boxed objects in custom attr
20163         constructors.
20164
20165 2002-05-30  Martin Baulig  <martin@gnome.org>
20166
20167         * debug-symfile.c
20168         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20169
20170 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20171
20172         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20173         to lookup the implmap row for a P/Invoke method.
20174         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20175         P/Invoke method from the runtime on an as needed basis.
20176
20177 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20178
20179         * metadata.c (mono_metadata_parse_signature): impl.
20180
20181 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20182
20183         * class.c: handle .pack directive.
20184
20185 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20186
20187         * object.c: initialize static fields with RVA data.
20188
20189 2002-05-25  Martin Baulig  <martin@gnome.org>
20190
20191         * debug-symfile.c
20192         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20193
20194 2002-05-24  Martin Baulig  <martin@gnome.org>
20195
20196         * debug-symfile.c
20197         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20198         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20199         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20200
20201 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20202
20203         * object.c: special case string ctros in invoke.
20204         * gc.c: silly whitespace changes.
20205
20206 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20207
20208         * threadpool.[ch]: impl. a threadpool that can
20209         be used by mint and mono.
20210
20211 2002-05-22  Martin Baulig  <martin@gnome.org>
20212
20213         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20214         The first argument is now a `MonoReflectionModuleBuilder *', the return
20215         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20216         `methods' field to get the method builder.  The `token' argument is the
20217         unfixed token.
20218
20219         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20220         invalid characters instead of g_assert_not_reached()ing.  This seems
20221         to be the behaviour of mscorlib.
20222
20223 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20224
20225         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20226         Hestilow to fix bug #25104
20227
20228 2002-05-21  Martin Baulig  <martin@gnome.org>
20229
20230         * debug-symfile.c (mono_debug_find_source_location): New function.
20231         Looks up an IL offset in the line number table and returns the source
20232         location as a string.
20233
20234 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20235
20236         * icall.c:
20237         (mono_double_ToStringImpl): changed %f by %g until we have something
20238         better.
20239
20240 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20241
20242         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20243         parameters first in C#.
20244
20245 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20246
20247         * icall.c, reflection.h: added icall to get info about an event.
20248
20249 2002-05-20  Radek Doulik  <rodo@ximian.com>
20250
20251         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20252         endian
20253         (mono_value_box): don't use memcpy for small sizes on
20254         architectures with unaligned access
20255
20256 2002-05-20  Martin Baulig  <martin@gnome.org>
20257
20258         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20259         if `tb->parent == NULL'.
20260         (mono_reflection_create_internal_class): New function.  This is
20261         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20262         for enum types.
20263
20264         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20265         New interncall.
20266
20267 2002-05-19  Martin Baulig  <martin@gnome.org>
20268
20269         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20270         argument to get the length, don't default to the array length.
20271
20272 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20273
20274         * assembly.c (mono_assembly_setrootdir): New function used to
20275         override the MONO_ASSEMBLIES directory.
20276
20277 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20278
20279         * icall.c: ValueType_GetHashCode() initialize local var.
20280
20281 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20282
20283         * reflection.c: sort custom attributes table.
20284
20285 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20286
20287         * reflection.c: support named args in custom attributes (write support).
20288
20289 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20290
20291         * reflection.c: fix finally position calculation.
20292
20293 2002-05-15  Radek Doulik  <rodo@ximian.com>
20294
20295         * reflection.c: fixed endianess at many places
20296
20297         * icall.c (ves_icall_InitializeArray): comment out debug msg
20298
20299 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20300
20301         * object.c (mono_unhandled_exception): new function to handle
20302         unhandled exceptions.
20303         (mono_unhandled_exception): call the UnhandledException event.
20304         (mono_runtime_delegate_invoke): impl.
20305
20306 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20307
20308         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20309         returns the RVA, not the direct pointer to the data. Handle the case
20310         when the class size is fixed.
20311
20312 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20313
20314         * reflection.c: fix some endianess issues.
20315
20316 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20317
20318         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20319
20320         * threads.c (mono_thread_init): added a callback which is invoked
20321         at thread start.
20322
20323 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20324         
20325         * icall.c: make GetHashCode return non-negative values.
20326
20327 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20328
20329         * object.c, icall.c, gc.c: revert to address-based hashcode.
20330
20331 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20332
20333         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20334
20335 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20336
20337         * icall.c, class.c: special case <Module>.
20338
20339 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20340
20341         * icall.c: fix bug in GetNow().
20342
20343 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20344
20345         * object.c (mono_runtime_class_init): make sure that we call all
20346         static class constructors.
20347
20348 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20349
20350         * reflection.c: sort methodsemantics table.
20351
20352 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20353
20354         * reflection.h, reflection.c: honour init locals setting.
20355
20356 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20357
20358         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20359
20360 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20361
20362         * reflection.c: support ContructorBuilders in attribute blob creation.
20363
20364 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20365
20366         * reflection.c: some changes to build a binary that can be run
20367         directly in windows.
20368
20369 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20370
20371         * loader.c: print a big message when an icall can't be found.
20372
20373 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20374
20375         * string-icalls.c: fix bug 24248.
20376
20377 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20378
20379         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20380         icall.c, reflection.h: separate assembly loading by pathname and by
20381         assembly name. Use the MONO_PATH env var to search for assemblies.
20382
20383 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20384
20385         * assembly.c, image.h: add some support for assemblies
20386         with multiple modules.
20387         * class.c, class.h: export mono_class_from_typeref().
20388         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20389         instead.
20390
20391 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20392
20393         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20394         documentation says (the ECMA one is correct).
20395
20396 2002-05-02  Dick Porter  <dick@ximian.com>
20397
20398         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20399         Don't name the synchronisation mutex.
20400
20401 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20402
20403         * rand.c
20404         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20405         Make the prototypes match.
20406         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20407         Same.
20408
20409         * icall.c
20410         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20411         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20412         all systems have tm.tm_zone, so use strftime() with %Z to print
20413         the timezone abreviation into a temp string.
20414
20415         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20416         rather than mono_array_addr() on a MonoString on Big Endian
20417         machines.
20418
20419 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20420
20421         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20422         fix bug 24041
20423
20424 2002-04-30  Dick Porter  <dick@ximian.com>
20425
20426         * socket-io.c: Cope with SOCKET being an integer rather than a
20427         pointer now.
20428
20429         * threads.c: Added Thread_free_internal, to deal with thread
20430         handle cleanup.  Moved calls to handle_store() and handle_remove()
20431         to start_wrapper(), so each can only be called once.  Allocate
20432         synchronisation blocks with GC_malloc(), and use GC finalisation
20433         to close the handles.
20434
20435         * icall.c: added System.Threading.Thread::Thread_free_internal
20436
20437 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20438
20439         * icall.c: support Environment.Exit, CommandLineArgs().
20440
20441 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20442
20443         * object.c, object.h: added mono_runtime_run_main () and
20444         mono_runtime_get_main_args () for use in System.Environment.
20445
20446 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20447
20448         * gc.c: fix thinko, enable actual finalization since the jit is now
20449         fixed.
20450
20451 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20452
20453         * gc.c, object.c: take into account that an object may be offset wrt the address
20454         returned by GC_malloc().
20455
20456 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20457
20458         * image.c: handle files without entries in the assembly table (modules).
20459
20460 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20461
20462         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20463         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20464         allowed to be null when it's System.Object class setup.
20465
20466 2002-04-27  Martin Baulig  <martin@gnome.org>
20467
20468         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20469         if `tb->parent == NULL' rather than crashing.
20470
20471 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20472
20473         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20474         calling acos() where asin() should have been called.
20475
20476 2002-04-26  Martin Baulig  <martin@gnome.org>
20477
20478         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20479         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20480         there's a subdirectory called `System', but we don't want to read that
20481         subdirectory as an assembly.
20482
20483 2002-04-25  Martin Baulig  <martin@gnome.org>
20484
20485         * debug-symfile.c: Reflect latest MonoString changes.
20486
20487 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20488
20489         * rand.c, rand.h: instance method icalls need to have an explicit
20490         this pointer as first argument in the C implementation.
20491
20492 2002-04-25  Nick Drochak <ndrochak@gol.com>
20493
20494         * icall.c: Fix typo in map for GetNonZeroBytes
20495
20496 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20497
20498         * string-icalls.c : String does now passes unit tests without any 
20499         errors, the following changes has been made:
20500         
20501         Implemented replace methods.
20502         Renaming of methods to (try) follow the standard.
20503         Fixed compare ordinal
20504         Made all memory allocated directly to function instead of via icall function.
20505         Small performance fix in is_in_array function
20506                         
20507  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20508
20509         c (mono_string_Internal_ctor_charp_int_int):
20510         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20511         sindex < 0, throw ArgumentOutOfRangeException instead of
20512         ArgumentNullException.
20513
20514         Added new check for length == 0, however
20515         I need to make it return String.Empty from the C code.
20516         
20517         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20518         that calculate the length for us here.
20519         
20520         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20521         mono_string_new_utf16 with mono_string_new, since value is utf8.
20522
20523 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20524
20525         * object.c: register the object for finalization if needed.
20526         Allocate one more char in the string for the terminating 0 char.
20527
20528 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20529
20530         * class.c, class.h, image.c: check if a type implemenst a destructor.
20531         Use the proper key for array class lookups.
20532         * icall.c: register the icalls in the System.GC class.
20533         * gc.c, gc.h: GC-related functions and icalls.
20534
20535 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20536
20537         * icall.c:
20538         * socket-io.c:
20539         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20540         changed a couple of free () by g_free ().
20541
20542         * decimal.c: one-liner in the comments for decimal2string ().
20543
20544 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20545
20546         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20547
20548 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20549
20550         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20551         * object.c (mono_runtime_invoke_array) : handle null in params
20552
20553 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20554
20555         * string-icalls.c: fixed bug in split (one off bug)
20556
20557 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20558
20559         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20560         * icalls.c: added String::Equals as internal method
20561
20562 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20563
20564         * threads.c: fixed bug in the double interlocked functions
20565
20566 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20567
20568         * threads.c: implemented all of the new interlocked icalls.
20569         * string-icalls.c: fix a bug in insert.
20570         * icalls.c: added the icalls for interlocked, removed old string functions.
20571         
20572 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20573
20574         * loader.c: fix off-by-one error when reading argument names.
20575
20576 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20577
20578         * profiler.c: win32 counter implementation (untested).
20579         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20580         (the latter needs testing and more complete impl. from win32 folks).
20581
20582 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20583
20584         * object.c: mono_array_new_full workaround mono_array_class_get
20585         problem.
20586
20587 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20588
20589         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20590         * object.h (mono_string_chars): Changed casting type.
20591
20592 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20593
20594         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20595                            method signatures to use gunichar2 instead of gint16.
20596
20597 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20598
20599         * object.h, object.c: domain-specific versions of mono_object_new and
20600         mono_array_new.
20601
20602 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20603
20604         * object.c: changed String layout
20605
20606         * string-icalls.c (mono_string_Internal_ctor_chara): added
20607         internal string constructors.
20608
20609 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20610
20611         * threads.c: pass 'this' to the thread start routine.
20612
20613 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20614
20615         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20616         InternalCompareStr don't call twice mono_string_cmp_char for the last
20617         character. Improved performance in mono_string_cmp_char.
20618
20619 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20620
20621         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20622         code into its own library: libmonoruntime.
20623
20624 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20625
20626         * object.h, object.c: changed array format so that szarrays do not
20627         require a bounds structure.
20628         * icall.c, appdomain.c: support for new szarray format.
20629
20630 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20631
20632         * metadata.c: compare also the retuns type when comparing signatures:
20633         we didn't do this as an optimization since really overloaded methods
20634         must differ also in the arguments, but this doesn't work with
20635         low-level IL code (or when using explicit conversion operators: see
20636         bug#23498 for an example).
20637
20638 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20639
20640         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20641
20642 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20643
20644         * icall.c: make MonoType::GetElementType its own icall.
20645
20646 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20647
20648         * icall.c: remove MonoMethod_get_Name().
20649         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20650         object.
20651
20652 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20653
20654         * string-icalls.c: optimized a few methods.
20655
20656 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20657
20658         * icall.c: added all new string internal calls
20659         * string-icalls.c: added, new string internal call implementation.
20660         * object.c: added mono_string_new_size for allocating a string a size
20661
20662 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20663
20664         * object.c (mono_object_isinst): use the same code as in the
20665         optimized x86 version.
20666
20667 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20668
20669         * profiler.c: TSC-based timer code (faster and more accurate).
20670         Not hooked up in configure, yet (set USE_X86TSC to 1).
20671
20672 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20673
20674         * profiler.c, profiler.h: track time spent compiling methods.
20675         * threads.c: track thread creation/destruction.
20676
20677 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20678
20679         * profiler.c, profiler.h, profiler-private.h: profiling interface
20680         and sample implementation. Moved here so that it can be used also by
20681         the jit.
20682
20683 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20684
20685         * reflection.c, reflection.h: keep types and other handles separate in
20686         the hash tables for referred tokens. Add guid for modules.
20687
20688 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20689
20690         * assembly.c: fix bugs found with valgrind.
20691         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20692
20693 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20694
20695         * threads: added icall support for getting current domain for
20696                    the thread.
20697  
20698 2002-04-13  Martin Baulig  <martin@gnome.org>
20699
20700         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20701         (MonoDebugVarInfo): Added `index' field for register based addresses.
20702         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20703         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20704         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20705         `MonoDebugVarInfo *this_var'.
20706
20707         * debug-symfile.c (relocate_variable): New static function to write
20708         a location description for a local variable or method parameter.
20709
20710 2002-04-12  Martin Baulig  <martin@gnome.org>
20711
20712         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20713         stack offset and begin/end scope address of a local variable.
20714         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20715         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20716         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20717
20718         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20719         Added new relocation types for start/end scope of a local variable.
20720
20721 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20722
20723         * object.h: add mono_object_domain() macro.
20724         * reflection.c: handle typespecs.
20725         * icall.c: MonoMethod::get_Name() implementation.
20726
20727 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20728
20729         * icall.c: String::GetHashCode() icall implementation.
20730
20731 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20732
20733         * icall.c: String::IndexOfAny icall.
20734         * object.c, object.h: make array->max_length more useful.
20735         Intrduced mono_object_class() and mono_string_length() macros.
20736
20737 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20738
20739         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20740         instead of g_unichar_isdigit.
20741
20742 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20743
20744         * icall.c: Implement a simple Double.ToString().
20745
20746 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20747
20748         * appdomain.h: only io-layer.h is supposed to be included.
20749         * icall.c: explicitly import environ. Fix warning.
20750
20751 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20752
20753         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20754                 return true even if it's not Daylight Savings time.
20755                 Only return false for the case where the function isn't
20756                 implemented for a plaform (read Windows).
20757
20758 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20759
20760         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20761         data with a mutex.
20762
20763 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20764
20765         * mempool.c (mono_mempool_alloc): only use g_malloc when
20766         absolutely necessary.
20767
20768 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20769
20770         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20771
20772         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20773         (mono_class_proxy_vtable): use domain mempool
20774
20775 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20776
20777         * appdomain.h, appdomain.c: split initialization that requires the
20778         execution engine support into mono_runtime_init().
20779
20780 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20781
20782         * class.c (mono_class_init): don't include vtable inside MonoClass
20783         to save some memory, gather some statistics.
20784         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20785
20786 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20787
20788         * icall.c: internalcall implementation for ValueType.Equals().
20789
20790 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20791
20792         * object.c (mono_message_init): moved 
20793         (mono_runtime_exec_main): new arch. independent impl.
20794         (mono_runtime_invoke_array): new method - like
20795         mono_runtime_invoke, but you can pass an array of objects.
20796         (mono_remoting_invoke): new arch. independent impl.
20797         (mono_message_invoke): new arch. independent impl.
20798         (mono_runtime_class_init): new arch. independent impl.
20799         (mono_runtime_object_init): new arch. independent impl.
20800
20801 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20802
20803         * metadata.c, object.c, reflection.c: documented the exported
20804         functions.
20805
20806 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20807
20808         * icall.c: simpler code to pass the assembly builder data to corlib.
20809         Implement GetNestedTypes() internalcall.
20810
20811 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20812
20813         * class.c: warn if a type can't be loaded.
20814
20815 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20816
20817         * image.h: typedef MonoImageOpenStatus
20818         * types.h: removed unused file
20819         
20820 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20821
20822         * icall.c: Enum_ToObject accepts enum value arguments.
20823
20824 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20825
20826         * class.c: move initialization of properties, events and nested
20827         classes, so that they happen for interfaces, too.
20828
20829 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20830
20831         * icall.c: cleanup some ugly casts in Array_SetValue*.
20832
20833 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20834
20835         * icall.c: the values array fro enums is of the correct type, now.
20836         Implement (correctly) getFullName instead of assQualifiedName for
20837         MonoType.
20838         * reflection.h, reflection.c: added mono_type_get_name ().
20839
20840 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20841
20842         * assembly.c, image.h: for each MonoImage, record from wich assembly
20843         it was loaded.
20844         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20845         Make Type.Assembly work.
20846
20847 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20848
20849         * debug-symfile.h: use char* instead of gpointer to avoid
20850         unnecessary casts.
20851
20852         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20853
20854         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20855         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20856
20857 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20858
20859         * icall.c (mono_message_init): impl. (code cleanup)
20860         (ves_icall_InternalExecute): impl. FieldGetter
20861
20862         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20863         defined we call all (non-static)methods through the vtable. 
20864
20865 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20866
20867         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20868         finalizer even though the memory is still referenced (and the chunk of
20869         memory is not freed).
20870
20871 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20872
20873         * assembly.c: fix brokeness.
20874
20875 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20876
20877         * class.c: kill some warnings. Check explicit interface method
20878         implementation also without considering the namespace.
20879         Load also literal strings in static class data.
20880
20881 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20882
20883         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20884         (default_assembly_name_resolver): Make the resolver take the
20885         "base" directory where the assembly was originally defined, so we
20886         can load DLLs that are in the same directory as the assembly that
20887         is being referenced.
20888
20889 2002-03-28  Dick Porter  <dick@ximian.com>
20890
20891         * file-io.h: 
20892         * file-io.c:
20893         * socket-io.c: 
20894         * unicode.h: 
20895         * unicode.c: Warning cleanups
20896
20897 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20898
20899         * object.h, reflection.h: use the correct type instead of MonoObject.
20900
20901 2002-03-28  Martin Baulig  <martin@gnome.org>
20902
20903         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20904         (mono_debug_update_symbol_file): Initialize classes if necessary.
20905
20906 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20907
20908         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20909         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20910
20911 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20912
20913         * assembly.h: fix function prototype.
20914         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20915         * mono-endian.h: use const cast.
20916
20917 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20918
20919         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20920
20921 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20922
20923         * loader.c: don't assert when a typeref can't be loaded, give
20924         a chance to the runtime to trow an exception instead.
20925         * loader.h: fix warning.
20926
20927 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20928
20929         * class.c (mono_class_proxy_vtable): added proxy support
20930
20931 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20932
20933         * icall.c: removed last of PAL calls, added System.Environment
20934         * file-io.h, file-io.c: MonoIO implementation
20935         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20936
20937 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20938
20939         * appdomain.c: do not use the byte marker in ldstr table lookup.
20940         * debug-helpers.c: allow two ':' to separate class and method name.
20941         * object.c: allocate arrays bounds with the GC, too.
20942         * verify: add a few more checks.
20943
20944 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20945
20946         * reflection.c: output also literal strings. Allocate parameter data
20947         with GC_malloc() (thanks, Martin, for catching this!).
20948
20949 2002-03-26  Martin Baulig  <martin@gnome.org>
20950
20951         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20952         include the `this' offset in the `param_offsets'.
20953
20954 2002-03-25  Martin Baulig  <martin@gnome.org>
20955
20956         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20957         mono_debug_get_class() function to get the classes. Added new
20958         relocation types for arrays and strings.
20959         (mono_debug_get_class): New static function to search in all
20960         referenced assemblies for a metadata token.
20961
20962         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20963
20964 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20965
20966         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20967         hold gc-allocated objects. Make the string heap a stream like the
20968         others. Removed duplicated code when writing stream info.
20969         Added asserts to catch possible buffer overflows. Set the sorted map
20970         for tables that need sorting. Added some documentation.
20971
20972 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20973
20974         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20975         for interned strings and vtables.
20976
20977 2002-03-24  Martin Baulig  <martin@gnome.org>
20978
20979         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20980         it in the array since it was created with g_slist_prepend().
20981
20982 2002-03-24  Martin Baulig  <martin@gnome.org>
20983
20984         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20985         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20986         (mono_debug_method_from_token): Renamed to
20987         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20988         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20989
20990         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20991         relocation types.
20992
20993         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20994
20995 2002-03-24  Martin Baulig  <martin@gnome.org>
20996
20997         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20998         (mono_debug_method_from_token): New func.
20999
21000         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21001         New interncall, calls mono_debug_local_type_from_signature().
21002         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21003         calls mono_debug_method_from_token().
21004
21005 2002-03-23  Martin Baulig  <martin@gnome.org>
21006
21007         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21008         specifies the number of bytes to be converted, not the array size.
21009         Return the number of chars, not the number of bytes.
21010         (ves_icall_iconv_get_chars): The `byteCount' argument
21011         specifies the number of bytes to be converted, not the array size.
21012
21013 2002-03-23  Martin Baulig  <martin@gnome.org>
21014
21015         * reflection.h (MonoReflectionSigHelper): New type.
21016
21017         * reflection.c (mono_reflection_sighelper_get_signature_local),
21018         (mono_reflection_sighelper_get_signature_local): New functions.
21019
21020         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21021         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21022         interncalls.
21023
21024 2002-03-23  Martin Baulig  <martin@gnome.org>
21025
21026         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21027         is_writeable is set.
21028         (mono_raw_buffer_update): New function to write the modified map
21029         back to disk.
21030
21031         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21032
21033         * debug-symfile.c (mono_debug_update_symbol_file): Call
21034         mono_raw_buffer_update() when done writing.
21035
21036 2002-03-23  Martin Baulig  <martin@gnome.org>
21037
21038         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21039
21040         * debug-symfile.c: Added support for arguments and local variables.
21041
21042 2002-03-23  Dick Porter  <dick@ximian.com>
21043
21044         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21045         protected by ifdefs, hence breaking the w32 build.
21046
21047 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21048
21049         * object.c: implement is_interned() the right way.
21050
21051 2002-03-21  Martin Baulig  <martin@gnome.org>
21052
21053         * debug-symfile.[ch]: New files to handle debugging information
21054         files. There's also support to dynamically update these symbol
21055         files to include machine dependent information.
21056
21057 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21058
21059         * threads.c (mono_thread_create): new function to create thread
21060         from C
21061
21062 2002-03-20  Martin Baulig  <martin@gnome.org>
21063
21064         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21065         method is a constructor.
21066         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21067         points to ves_icall_InternalInvoke().
21068
21069 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21070
21071         * file-io.c: Flush shouldn't throw exceptions.
21072
21073 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21074
21075         * file-io.c: FileStream flush support; FileSetLength now
21076         restores file pointer.
21077
21078 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21079
21080         * class.c: set image for pointer classes.
21081
21082 2002/03/19  Nick Drochak <ndrochak@gol.com>
21083
21084         * sysmath.c: Forgot one.
21085
21086 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21087
21088         * sysmath.c: Avoid redefining existing names.
21089
21090 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21091
21092         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21093         handled by runtime as icall rather than dllimport from libm.so
21094         * file-io.c, file-io.h: fixed handle argument type.
21095
21096 2002-03-18  Dick Porter  <dick@ximian.com>
21097
21098         * reflection.c (mono_image_get_type_info): rename interface to
21099         iface, because of "#define interface struct" on windows.
21100
21101 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21102
21103         * class.c, class.h: rename and export mono_ptr_class_get().
21104         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21105         * reflection.c, reflection.h, icall.c: better/saner type name
21106         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21107         method signatures.
21108
21109 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21110
21111         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21112
21113         * icall.c (ves_icall_InternalInvoke): impl.
21114
21115 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21116
21117         * reflection.c: output the interface map table, too.
21118
21119 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21120
21121         * class.c (class_compute_field_layout): separate computation of 
21122         static field layout
21123
21124 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21125
21126         * icall.c: added System.Buffer support.
21127         * file-io.c: moved file icalls from PAL to FileStream.
21128
21129 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21130
21131         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21132
21133 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21134
21135         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21136
21137 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21138
21139         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21140
21141 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21142
21143         * debug-helpers.{c,h}: moved here from monograph some useful functions
21144         to locate a method by name/signature in a class or image. Included
21145         also a small and flexible IL disassembler.
21146
21147 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21148
21149         * reflection.c: fixup tokens in methods with small header size, too.
21150
21151 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21152
21153         * object.c (mono_string_to_utf8): remove assert(!error), instead
21154         print a warning. 
21155
21156 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21157
21158         * icall.c: update to the new mono_Array_class_get interface.
21159
21160 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21161
21162         * appdomain.c, object.c: Boehm-GC enable.
21163         * icall.c: make get_data_chunk() support split data requests.
21164         Ensure a class is initialized in more cases. Return only the first
21165         property found in GetProperties() or the compiler gets confused. 
21166         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21167         * reflection.h, reflection.c: add fixup mechanism for field and method
21168         tokens. Initialize assembly->typeref in a single place. Output
21169         properties after events. Support custom attributes for events, too.
21170         Typo fix for paramter custom attrs.
21171
21172 2002-03-07  Martin Baulig  <martin@gnome.org>
21173
21174         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21175
21176 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21177
21178         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21179
21180 2002-03-06  Martin Baulig  <martin@gnome.org>
21181
21182         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21183         non-zero lower bounds. See testcases #F10-#F13.
21184
21185 2002-03-05  Martin Baulig  <martin@gnome.org>
21186
21187         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21188
21189         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21190         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21191         here.
21192         (ves_icall_System_Array_SetValue): Likewise.
21193         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21194         as argument and does the actual work. This function is used when copying a
21195         multi-dimensional array.
21196         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21197         now do all the widening conversions of value types.
21198         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21199
21200 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21201
21202         * class.c: remove some magic numbers and use the smbolic names,
21203         instead. Added init_events() to load event info at class init time.
21204         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21205         and mono_metadata_methods_from_event().
21206         * reflection.h, reflection.c: added support for writing out the evnets
21207         related information.
21208
21209 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21210
21211         * reflection.h, icall.c: use a different method (GetInterfaces)
21212         to gather interface info and add isbyref, isprimitive and
21213         ispointer to the ves_icall_get_type_info() return value.
21214
21215 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21216
21217         * class.h: stared adding support for events.
21218         * icall.c: split find_members implementation. Added debug icall to get
21219         the address of an object.
21220         * reflection.c: handle TypeBuilders in mono_type_get_object().
21221
21222 2002-03-01  Martin Baulig  <martin@gnome.org>
21223
21224         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21225         ArgumentOutOfRangeException(), not an ArgumentException().
21226         (ves_icall_System_Array_GetLowerBound): Likewise.
21227         (ves_icall_System_Array_GetValue): Improved argument checking.
21228         (ves_icall_System_Array_SetValue): Improved argument checking.
21229
21230 2002-03-01  Martin Baulig  <martin@gnome.org>
21231
21232         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21233         called with invalid arguments rather than just dying with g_assert().
21234         (ves_icall_System_Array_SetValue): Likewise.
21235         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21236         raise a NotImplementedException instead.
21237         (ves_icall_System_Array_GetLength): Added argument checking.
21238         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21239
21240 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21241
21242         * object.h (mono_assert): new macros mono_assert and
21243         mono_assert_not_reached
21244
21245 2002-02-28  Martin Baulig  <martin@gnome.org>
21246
21247         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21248         and "System::String::IsInterned" to "System::String::_IsInterned".
21249
21250 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21251
21252         * icall.c: remove hacks for typebuilder. Added icall to create a
21253         modified type from a tybebuilder.
21254         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21255         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21256         to create a backing MonoClass for a TypeBuilder.
21257
21258 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21259
21260         * class.c, class.h: more refactoring of class init.
21261         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21262
21263 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21264
21265         * marshal.c, marshal.h: start of marshaling interface.
21266
21267 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21268
21269         * icall.c: fix order in assembly qualified name icall.
21270
21271 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21272
21273         * class.c: do not free str, since we store it in the hash table.
21274         * reflection.h: add label field to MonoILExceptionInfo.
21275         * reflection.c: handle references to more than one assembly. Handle
21276         case when there isn't a module created in the assembly.
21277
21278 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21279
21280         * class.c: Fix typo. Start refactoring of class init code.
21281
21282 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21283
21284         * appdomain.c: exit with 1 on error.
21285         * class.c: we already have the name in MonoClassField.
21286         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21287         MonoStreamHeader instead of an offset of image->raw_metadata.
21288
21289 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21290
21291         * appdomain.c (mono_init): Be even more descriptive about the error.
21292
21293 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21294
21295         * appdomain.c: give the user an informative message when corlib can't
21296         be loaded.
21297
21298 2002-02-26  Martin Baulig  <martin@gnome.org>
21299
21300         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21301         New icall to get the time zone data.
21302
21303 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21304
21305         * reflection.c: set virtual and raw size of section correctly.
21306         * threads.c: transfer domain information to newly created threads.
21307
21308 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21309
21310         * class.c: when instancing a class in a domain, load the default
21311         vaules for static fields from the constant table. Fix System.Enum to
21312         not be an enum.
21313         * icall.c: implement Object::GetType() internalcall. Implemented
21314         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21315         Fixed checking of binding flags in find_members().
21316         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21317         * reflection.c: handle enumerations when writing to the constant
21318         table. Use a different object cache for types.
21319
21320
21321 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21322
21323         * object.c (mono_object_isinst): fix for arrays
21324
21325         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21326
21327 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21328
21329         * object.c: don't use mprotect ()  and fix intern pool hash table
21330         lookup for big endian systems.
21331
21332 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21333
21334         * icall.c: change type_is_subtype_of () signature.
21335
21336 2002-02-21  Mark Crichton  <crichton@gimp.org>
21337
21338         * rand.c, rand.h: Added random number generator for
21339         System.Security.Cryptography classes.
21340
21341         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21342
21343         * icall.c: Added System.Security.Cryptography calls.
21344
21345 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21346
21347         * class.c, icall.c, metadata.c: better support for pointer types.
21348         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21349         * reflection.c: Add support for getting custom attrs for properties
21350         and simplify some code.
21351
21352 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21353
21354         * icall.c: change getToken () and add custom attribute GetBlob()helper
21355         method.
21356         * reflection.h: add custom attrs array to the reflection builder structures.
21357         * reflection.c: encode and emit custom attributes for all the relevant
21358         reflection objects. Cache fieldref and methodref tokens. Change
21359         mono_image_create_token() interface to take a MonoDynamicAssembly.
21360         More complete custom attributes decoder. Load custom attributes for
21361         Assembly, Field, Method and Constructor objects, too. Make the
21362         returned array an Attribute[] one, not object[]. Added
21363         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21364         custom attribute constructor.
21365
21366 2002-02-20  Dick Porter  <dick@ximian.com>
21367
21368         * icall.c:
21369         * rawbuffer.c:
21370         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21371         problem code out for now).
21372
21373 2002-02-19  Radek Doulik  <rodo@ximian.com>
21374
21375         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21376
21377 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21378
21379         * icall.c: register the GetCustomAttributes method.
21380         * object.c, object.h: add mono_string_new_len ().
21381         * reflection.h, reflection.c: added mono_runtime_invoke(),
21382         mono_install_runtime_invoke(). Added
21383         mono_reflection_get_custom_attrs () to load custom attributes and
21384         create the attribute objects.
21385
21386 2002-02-19  Dick Porter  <dick@ximian.com>
21387         * threads-dummy-types.c:
21388         * threads-dummy-types.h:
21389         * threads-dummy.c:
21390         * threads-dummy.h:
21391         * threads-pthread-types.c:
21392         * threads-pthread-types.h:
21393         * threads-pthread.c:
21394         * threads-pthread.h:  Deleted obsolete files
21395
21396 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21397
21398         * class.c (mono_class_vtable): runtime init the class when we
21399         allocate static class data.
21400
21401         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21402
21403         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21404         and String - but we will need generic marshalling support in the
21405         future. 
21406         (mono_init): set the domain name in a ms compatible way
21407
21408         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21409         String[].
21410
21411 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21412
21413         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21414         for sizes
21415
21416         * appdomain.c (mono_domain_unload): impl.
21417
21418 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21419
21420         * appdomain.c, object.c: fix intern pool implementation.
21421         * class.c: fix alignment code.
21422
21423 2002-02-16  Radek Doulik  <rodo@ximian.com>
21424
21425         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21426         and s2 > s1, just copy lower bytes to be compatible with little
21427         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21428         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21429
21430         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21431         force big_endian to be 1 for big endian machines 
21432         (ves_icall_iconv_new_decoder): ditto
21433
21434 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21435
21436         * socket-io.c (convert_sockopt_level_and_name): If the system
21437         doesn't define SOL_IP or SOL_TCP, get them by hand using
21438         getprotobyname() and caching the values (because this could be a
21439         slow operation).
21440         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21441         Use the appropriate struct when the system does support it. Ie,
21442         not all systems have struct ip_mreqn so use struct ip_mreq when
21443         appropriate.
21444
21445 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21446
21447         * reflection.c: handle finally clauses.
21448
21449 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21450
21451         * socket-io.c: use g_snprintf() instead of snprintf.
21452
21453 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21454
21455         * reflection.c (mono_param_get_objects): Cast second argument to
21456         mono_method_get_param_names to a const char** to silence the
21457         compiler warning.
21458
21459         * appdomain.c (mono_domain_assembly_open): Put parens around the
21460         truth statement in the for-loop.
21461
21462         * unicode.c (iconv_convert): Got rid of a compiler warning about
21463         int i being unused when the system has a new iconv.
21464         (iconv_get_length): Same.
21465
21466         * image.c (load_class_names): Cast the second argument to
21467         g_hash_table_insert() to char* to hush compiler warnings about the
21468         arg being a const.
21469         (mono_image_open): Same here.
21470
21471         * socket-io.c: Don't conditionally include sys/filio.h or
21472         sys/sockio.h here anymore since we now get them from
21473         io-layer/io-layer.h
21474         (inet_pton): If the system doesn't support inet_aton, implement
21475         using inet_addr and also #define INADDR_NONE if it isn't defined
21476         by the system.
21477
21478 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21479
21480         * metadata.c, metadata.h: added function to get packing and size info
21481         of a typedef.
21482         * reflection.h, reflection.c: handle field RVA data. Save info about
21483         the table layout if needed. Assign typedef indexes to all the types
21484         before dumping the info about them to avoid forward reference problems.
21485
21486 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21487
21488         * socket-io.c (convert_sockopt_level_and_name): ifdef
21489         SO_ACCEPTCONN because it is not defined on my system (old debian)
21490
21491 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21492
21493         * opcode.c: use stddef.h to get NULL.
21494
21495 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21496
21497         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21498         for FIONBIO, FIONREAD and SIOCATMARK.
21499         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21500         define INADDR_NONE and besides, inet_addr() is deprecated and
21501         should not be used. Use inet_pton() instead - it also has the
21502         added bonus that it can easily handle IPv6 addresses as well.
21503         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21504
21505 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21506
21507         * decimal.c: remove _MSC_VER conditional.
21508
21509 2002-02-13  Dick Porter  <dick@ximian.com>
21510
21511         * socket-io.c: 
21512         * icall.c: Internal calls for Blocking, Select, Shutdown,
21513         GetSocketOption and SetSocketOption
21514
21515 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21516
21517         * assembly.cs: better resolver: use it instead of some kludgy
21518         code.
21519
21520 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21521
21522         * reflection.c: the best way to speed-up the compiler is to avoid
21523         infinite loops.
21524
21525 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21526
21527         * class.c (mono_class_vtable): changed the object layout
21528         (obj->vtable->class). 
21529         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21530
21531 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21532
21533         * assembly.c: look for assemblies in the assembly dir, too.
21534
21535 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21536
21537         * class.c: fix thinko in mono_class_from_type().
21538
21539 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21540
21541         * exception.h, exception.c: added TypeLoadException.
21542         * object.h, object.c: added mono_array_clone ().
21543         * icall.c: handle throwOnError in AssemblyGetType().
21544         Added Array.Clone().
21545         * opcode.h, opcode.c: use a single value for the opcode val.
21546         Compile fix for non-gcc compilers.
21547
21548 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21549
21550         * opcodes.c, opcodes.h: export interesting info about opcodes.
21551
21552 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21553
21554         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21555         icalls. 
21556
21557         * class.c (class_compute_field_layout): set element_class for enums
21558         (mono_class_create_from_typedef): set element_class for normal classes
21559
21560         * icall.c (ves_icall_System_Enum_get_value): impl.
21561
21562         * class.c (mono_class_create_from_typedef): do not set valuetype
21563         flag for System.ValueType and System.Enum
21564
21565 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21566
21567         * unicode.c (iconv_convert): fix big endian problem.
21568
21569 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21570
21571         * class.c: add asserts if we are ever going to scribble over memory.
21572         * socket-io.c: not all systems have AF_IRDA defined.
21573
21574 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21575
21576         * class.c (class_compute_field_layout): do not consider static
21577         fields to compute alignment
21578
21579 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21580
21581         * appdomain.c (mono_appdomain_get): impl.
21582         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21583
21584 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21585
21586         * icall.c: ignore "file://" prefix when loading an assembly.
21587
21588 2002-01-23  Dick Porter  <dick@ximian.com>
21589
21590         * socket-io.c:
21591         * icall.c:
21592         * Makefile.am: Added socket support
21593
21594 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21595
21596         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21597         code back.  This should return the assemblies that are loaded by
21598         the runtime on behalf of an application domain. 
21599
21600         The current implementation is still broken, it just returns every
21601         assembly loaded, but until we get real applications domain this
21602         will do.
21603
21604 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21605
21606         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21607         AppDomain object.
21608
21609 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21610
21611         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21612         the mono_class_from_name lookup.
21613         (ves_icall_get_parameter_info): ditto.
21614         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21615         method.
21616         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21617
21618 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21619
21620         * class.c: load also nested classes on class init.
21621         System.ValueType instance methods gets passed boxed
21622         values, unless methods in derived classed that get a pointer to the
21623         data.
21624         * icall.c: use better name parsing code in GetType().
21625         * image.c, image.h: add mono_image_loaded ().
21626         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21627         * reflection.c, reflection.h: added mono_reflection_parse_type().
21628
21629 2002-01-22  Veronica De Santis <veron78@interfree.it>
21630
21631         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21632         * threads.c : Added the implementation of internal calls for events
21633         * threads.h : Added prototypes of internal calls for events
21634         
21635 2002-01-21  Radek Doulik  <rodo@ximian.com>
21636
21637         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21638
21639 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21640
21641         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21642         (mono_class_value_size): use min_align
21643
21644 2002-01-20  Dick Porter  <dick@ximian.com>
21645
21646         * threads.h:
21647         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21648         so it compiles on w32.
21649
21650 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21651
21652         * metadata.c (mono_type_stack_size): impl.
21653
21654         * class.c (mono_class_get_field): impl. memberref token
21655
21656 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21657
21658         * icall.h : Added the internal calls mapping for CreateMutex_internal
21659                     and ReleaseMutex_internal.
21660         * threads.h : Added the prototype of mutexes internal calls.
21661         * threads.c : Added the implementations of mutexes internal calls.
21662
21663 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21664
21665         * metaparse.h: removed unused file.
21666         * reflection.c, reflection.h: added stream_data_align () function 
21667         to align data in streams and keep stream aligned. Add support for
21668         exception support in method headers.
21669
21670 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21671
21672         * unicode.c: make iconv_convert () return the number of bytess written
21673         in the output buffer.
21674
21675 2002-01-15  Dick Porter  <dick@ximian.com>
21676         * threads.c: Make the runtime's idea of infinite timeouts coincide
21677         with the class library's
21678
21679         Fix a particularly egregious bug in mono_thread_cleanup(). That
21680         code was so utterly bogus it must have been written on a Monday.
21681
21682 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21683
21684         * reflection.h: add subtypes field to TypeBuilder.
21685         * reflection.c: encode constants for literal fields.
21686         Handle subtypes. Fix user string token (and add a zero byte)
21687         at the end.
21688         
21689 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21690
21691         * class.c (mono_class_init): bug fix: assign slot numbers for
21692         abstract methods.
21693
21694 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21695
21696         * reflection.c: don't try to output a code RVA for abstract methods.
21697         Small fixes for method header format. Output parameter info to the
21698         ParamDef table. Save method overriding info to MethodImpl table.
21699         Fix property support. Allow typedef.extends to be a type in the
21700         building assembly.
21701         * verify.c: fix off-by-one error.
21702
21703 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21704
21705         * class.c: fix mono_class_from_mono_type () for szarray types.
21706         Remove unused cache check in mono_class_from_type_spec().
21707         * icall.c: *type_from_name () functions handle simple arrays and byref.
21708         * reflection.c: handle byref and szarray types. Handle methods without
21709         body (gets P/Invoke compilation working). Handle types and fields in
21710         get_token ().
21711         * reflection.h: add rank to MonoTypeInfo.
21712
21713 2002-01-10  Dick Porter  <dick@ximian.com>
21714
21715         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21716         internal calls
21717
21718 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21719
21720         * icall.c: initialize class in type_from_handle ().
21721         Loop also in parent classes for get_method ().
21722         * reflection.c: properly encode class and valuetype types.
21723         Start on encoding TypeBuilder types. Handle fieldrefs.
21724         Use correct length when registering a user string.
21725         Handle ConstructorBuilder and MonoMethod in get_token ().
21726         Make mono_type_get_object () aware of cached types.
21727         * object.c: back out change to mono_string_new ().
21728
21729 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21730         * object.c: mono_string_new should return a NULL when the string 
21731         passed in is NULL -- not try to deference it.
21732         
21733 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21734
21735         * icall.c: hack to make IsSubType work for TypeBuilders.
21736         * reflection.c: emit constructors before methods.
21737         Retrieve param names in mono_param_get_objects().
21738
21739 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21740
21741         * Makefile.am: fix list of headers and sources so automake 1.5
21742         doesn't complain. Removed \# at end of list.
21743
21744 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21745
21746         * reflection.c: get token for a method ref. Set return type of
21747         constructor to void.
21748         * loader.c: debug message.
21749         * class.c: typo fix.
21750
21751 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21752
21753         * icall.c: fix array init with rank > 1. FindMembers
21754         loops in parent class as well.
21755         * image.c: do not insert nested types in name cache.
21756         * reflection.c: warning fix.
21757         * reflection.h: add override method (for interface impl).
21758
21759 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21760
21761         * metadata.c: fix customattr decoding.
21762
21763 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21764
21765         * rawbuffer.cs: Added native Win32 implementation, avoids using
21766         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21767
21768 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21769
21770         * class.c: make the low-level routines handle the cache.
21771
21772 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21773
21774         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21775
21776 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21777
21778         * class.c: fix mono_array_element_size() for objects.
21779         * class.h, class.c: add properties to MonoClass and load them
21780         at init time.
21781         * icall.c: check with isinst() when assigning a value to an array
21782         instead of requiring the classes to match exactly.
21783         Implemented icall for System.Type::GetType().
21784         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21785         enums. Handle bindingflags when looking for methods and fields.
21786         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21787         and mono_metadata_methods_from_property().
21788         * reflection.h, reflection.c: added structures for propreties,
21789         parameters and enums. Implemented mono_property_get_object() and
21790         mono_param_get_objects().
21791
21792 2001-12-18  Dick Porter  <dick@ximian.com>
21793
21794         * file-io.c: Use mono_string_to_utf16() instead of
21795         mono_string_chars()
21796
21797         * object.c: Added mono_string_to_utf16(), which copies the non
21798         NULL-terminated MonoString into a new double-null-terminated
21799         buffer.
21800
21801 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21802
21803         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21804
21805 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21806
21807         * file-io.c: raise exceptions if handle is invalid.
21808
21809 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21810
21811         * assembly.c: yet another check for mscorlib.
21812         * class.c, class.h: load nesting info for classes.
21813         * icall.c: many new functions to support the Reflection classes.
21814         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21815         * reflection.h, reflection.c: mono_image_create_token(),
21816         mono_assembly_get_object(), mono_type_get_object(),
21817         mono_method_get_object(), mono_field_get_object(): methods to return
21818         objects that parallel the C representation of assemblies, types,
21819         methods, fields.
21820
21821 2001-12-11  Dick Porter  <dick@ximian.com>
21822
21823         * icall.c:
21824         * file-io.c: Internal calls for file IO.
21825
21826 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21827
21828         * tabledefs.h: missing FileAttributes.
21829         * verify.h, verify.c: use is_valid_string () to simplify and check for
21830         valid strings more correctly. Fix warnings and speeling.
21831         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21832         Check code: branches, maxstack, method calls.
21833
21834 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21835
21836         * object.c (mono_object_allocate): removed static, so that the jit
21837         can allocate value types.
21838
21839         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21840
21841 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21842
21843         * class.c: init enum types right away and register the
21844         token->MonoClass map in mono_class_create_from_typedef ().
21845         * verify.h, verify.c: first cut of the verifier.
21846         * pedump.c: add --verify switch to verify metadata tables.
21847         * tabledefs.h: add some missing enums.
21848
21849 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21850
21851         * class.c (mono_install_runtime_class_init): impl.
21852         (mono_class_init): renamed mono_class_metadata_init to
21853         mono_class_init, also removed the metadata_inited flag
21854
21855         * object.c (mono_object_isinst): use faster algorithm
21856
21857 2001-11-30  Radek Doulik  <rodo@ximian.com>
21858
21859         * mono-endian.h: reverted last change
21860         added function prototypes
21861
21862         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21863         add mono-endian.c back
21864
21865         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21866         for unaligned access, I've mistaked it with endianess. I am
21867         sorry.
21868         (mono_read16): fix reverted endianess
21869         (mono_read64): ditto
21870         (mono_read32): ditto
21871
21872 2001-11-30  Dick Porter  <dick@ximian.com>
21873
21874         * exception.c: Implement mono_exception_from_name()
21875
21876 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21877
21878         * metadata.h, metadata.c: remove params_size and locals_size and their
21879         calculation from the metadata code: they are only usefult to the
21880         interp.
21881
21882 2001-11-29  Radek Doulik  <rodo@ximian.com>
21883
21884         * object.c (mono_ldstr): swap bytes here, it's probably not the
21885         best place, but works for me now, I'll redo it once I know mono
21886         better, also note that I add PROT_WRITE and don't reset back, also
21887         note that it's only affects big endians, so x86 should be OK
21888
21889         * mono-endian.h (read16): use just glib macros for both endians
21890
21891         * mono-endian.c: removed as glib macros are used in in
21892         mono-endian.h so we don't need to care about endianess for read
21893         macros as glib does that for us already
21894
21895 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21896
21897         * class.h, class.h: take minimum alignment into consideration so
21898         that the fields of a class remain aligned also when in an array.
21899
21900 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21901
21902         * loader.h, loader.c: add mono_method_get_param_names().
21903         * class.c: 0-init class fields.
21904
21905 2001-11-26  Dick Porter  <dick@ximian.com>
21906
21907         * icall.c:
21908         * threads-types.h:
21909         * threads.c: New file that handles System.Threading on all platforms
21910
21911         * object.c: 
21912         * object.h: Remove the synchronisation struct from MonoObject,
21913         replace it with a pointer that gets initialised on demand
21914
21915         * Makefile.am: Replace all the system-specific threading code with
21916         a single file that uses the new wrapper library
21917
21918 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21919
21920         * class.c, class.h: add mono_install_trampoline() so that the runtime
21921         can register a function to create a trampoline: removes the ugly
21922         requirement that a runtime needed to export arch_create_jit_trampoline.
21923         * object.h, object.c: added mono_install_handler() so that the runtime
21924         can install an handler for exceptions generated in C code (with
21925         mono_raise_exception()). Added C struct for System.Delegate.
21926         * pedump.c: removed arch_create_jit_trampoline.
21927         * reflection.c: some cleanups to allow registering user strings and
21928         later getting a token for methodrefs and fieldrefs before the assembly
21929         is built.
21930         * row-indexes.h: updates and fixes from the new ECMA specs.
21931
21932 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21933
21934         * class.h, class.c: add enum_basetype field to MonoClass.
21935         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21936         to get index in the constant table reated to a field, param or
21937         property.
21938         * reflection.h, reflection.c: handle constructors. Set public-key and
21939         version number of the built assembly to 0.
21940         * row-indexes.h: update from new ECMA spec.
21941
21942 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21943
21944         * class.h, class.c: add a max_interface_id to MonoClass.
21945         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21946         since it's used to do that. Added mono_type_type_from_obj().
21947         Make GetType() return NULL instead of segfaulting if the type was not
21948         found. Handle simple arrays in assQualifiedName.
21949         * object.h: add a struct to represent an Exception.
21950         * reflection.c: output call convention in method signature.
21951         Add code to support P/Invoke methods and fixed offsets for fields.
21952
21953 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21954
21955         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21956         the value.
21957         * icall.c: use mono_array_addr instead of array->vector: fixes the
21958         reflection image writing.
21959         * reflection.c: init call convention byte to 0 in method signature.
21960         Encode the property signature. Don't output property-related methods
21961         twice. Really process the properties for a type (don't cast a field to
21962         a property, my mom always told me that).
21963         Fix 64 bit issues in pointer alignment in a different and more
21964         readable way.
21965
21966 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21967
21968         * loader.h: Removed type class from MonoDefaults, added monotype
21969
21970         * loader.c: Loaded MonoType, removed loading of Type
21971
21972         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21973         and fills in System.Type._impl with a RuntimeTypeHandle rather
21974         than the actual MonoClass *
21975
21976         (ves_icall_type_from_handle): change from type_class to
21977         monotype_class
21978
21979         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21980         implemented
21981
21982         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21983         implemented
21984
21985         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21986
21987         (ves_icall_System_Reflection_Assembly_GetType): implemented
21988
21989         (ves_icall_System_MonoType_assQualifiedName): implemented
21990
21991         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21992
21993 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21994
21995         * assembly.c (mono_assembly_open): Implement a cache for the
21996         assemblies. 
21997
21998         (mono_assembly_close): only destroy the assembly when the last
21999         reference is gone.
22000         
22001 2001-11-09  Dick Porter  <dick@ximian.com>
22002
22003         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22004
22005 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22006
22007         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22008
22009 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22010
22011         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22012         from Martin Weindel.
22013         * object.h: add mono_string_chars ().
22014
22015 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22016
22017         * reflection.c (build_compressed_metadata): Eliminates warnings
22018         and uses 64-bit clean code.
22019
22020         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22021         (mono_type_equal): Change signature to eliminate warnings.
22022
22023 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22024
22025         * icall.c, loader.c: remove the internalcall array constructors.
22026         Changes to match the new MonoArray structure.
22027         * object.h, object.c: an array object doesn't allocate an extra
22028         vector. Add mono_array_new_full () to create jagged arrays easily.
22029
22030 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22031
22032         * metadata.h, metadata.c: add mono_metadata_field_info () to
22033         retreive all the info about a field from vairous tables.
22034         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22035         * class.h, class.c: augment MonoClassField with more info.
22036         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22037         policy and load a field's RVA if needed.
22038
22039 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22040
22041         * class.c (mono_class_metadata_init): create a trampoline for all
22042         virtual functions instead of actually compiling them.
22043
22044 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22045
22046         * class.h, class.c: include name in MonoClassField.
22047         * class.c: fix fundamental type of System.Object and System.String.
22048         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22049         tokens in ldtoken.
22050         * icall.c: remove internalcalls for the Reflection stuff that is now
22051         done in C# code.
22052         * loader.c: mono_field_from_memberref () implementation.
22053         * mono-endian.c: thinko (s/struct/union/g).
22054         * object.c, object.h: make the mono_string_* prototypes actually use
22055         MonoString instead of MonoObject.
22056         * reflection.c, reflection.h: updates for changes in the reflection
22057         code in corlib: we use C structures that map to the actual C# classes.
22058         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22059         fat method header if needed and use the info from the ILGenerator for
22060         methods. Handle fields in types. Misc fixes.
22061
22062 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22063
22064         * class.c (mono_class_metadata_init): bug fix: always allocate
22065         space for static class data
22066
22067 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22068
22069         * class.c (mono_compute_relative_numbering): use relative
22070         numbering to support fast runtime type checks.
22071
22072 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22073
22074         * class.c (mono_class_create_from_typeref): added debugging output
22075         to print class name when MonoDummy is returned instead of real class
22076
22077 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22078
22079         * class.c (mono_class_metadata_init): interface offset table now
22080         contains pointers into the vtable - this is more efficient for the jit
22081
22082 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22083
22084         * class.c (mono_class_metadata_init): use a temporary vtable (the
22085         old algorithm only worked for the interpreter, but not for the jit)
22086
22087 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22088
22089         * loader.c (method_from_memberref): use mono_class_get to get the
22090         class of an array instead of using System.Array directly.
22091         (mono_get_method): also add MEMBERREF methods to the method cache
22092         which usefull for arrays.
22093
22094 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22095
22096         * pedump.c (arch_compile_method): added to compute vtable entry
22097
22098         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22099         number of interfaces.
22100         
22101         * class.h: merged MonoArrayClass into MonoClass
22102
22103         * class.c (mono_class_create_from_typedef): compute the vtable size and
22104         allocate space to include the vtable inside MonoClass
22105         (mono_class_metadata_init): initialize the vtable
22106
22107 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22108
22109         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22110         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22111         * image.c: endian fixes by Laurent Rioux.
22112         * object.h, object.c: rename MonoStringObject to MonoString and
22113         MonoArrayObject to MonoArray. Change some function names to conform to
22114         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22115         guint16* as first argument, so don't use char*.
22116         Provide macros to do the interesting things on arrays in a portable way.
22117         * threads-pthread.c: updates for the API changes and #include <sched.h>
22118         (required for sched_yield()).
22119         * icall.c: updates for the API changes above.
22120         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22121         platforms that need them.
22122
22123 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22124
22125         * class.c: set the correct type for all the fundamental
22126         type when loading the class.
22127
22128 2001-10-05  Dick Porter  <dick@ximian.com>
22129
22130         * threads-pthread.c (pthread_mutex_timedlock): Simple
22131         compatibility version for C libraries that lack this call.
22132
22133 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22134
22135         * class.c: MonoTypes stored in MonoClass are stored as
22136         fundamental MonoTypes when the class represents a
22137         fundamental type (System.Int32, ...).
22138         The TypeHandle return by ldtoken is a MonoType*.
22139         * icall.c: ves_icall_get_data_chunk () write out all the
22140         PE/COFF stuff. Implement ves_icall_define_method (),
22141         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22142         * image.c: properly skip unknown streams.
22143         * loader.h, loader.c: add type_class to mono_defaults.
22144         * metadata.c, metadata.h: export compute_size () as
22145         mono_metadata_compute_size () with a better interface.
22146         Typo and C&P fixes.
22147         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22148         * reflection.c, reflection.h: many cleanups, fixes, output method
22149         signatures and headers, typedef and typeref info, compress the metadata
22150         tables, output all the heap streams, cli header etc.
22151         * row-indexes.h: typo fixes.
22152
22153 2001-10-04  Dick Porter  <dick@ximian.com>
22154
22155         * object.h: Add a synchronisation mutex struct to MonoObject
22156
22157         * object.c (mono_new_object): Initialise the object
22158         synchronisation mutexes
22159
22160         * icall.c: System.Threading.Monitor internal calls
22161         
22162         * threads-pthread.h:
22163         * threads-pthread.c: System.Threading.Monitor internal calls
22164
22165         * threads-types.h: New file, includes the system-specific thread
22166         structures
22167         
22168         * threads-pthread-types.h:
22169         * threads-pthread-types.c: New files, handle pthread-specific
22170         synchronisation types
22171
22172         * threads-dummy-types.h: 
22173         * threads-dummy-types.c: New files of dummy support for
22174         thread-specific types
22175
22176         * metadata.c:
22177         * image.c:
22178         * pedump.c: include mono-endian.h not endian.h
22179         
22180         * Makefile.am: More threads files.
22181         Name mono-endian.h not endian.h
22182
22183 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22184
22185         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22186         stuff and implement a few more bits.
22187         * icall.c: a field needs to be dereferenced twice. Do not use the same
22188         name for two variables in the same scope.
22189         * image.c, image.h: cleanups.
22190
22191 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22192
22193         * class.c (mono_class_metadata_init): bug fix: compute the right size
22194
22195 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22196
22197         * icall.c: implemented some of the Reflection internalcalls.
22198         * image.c, image.h: start writing out the PE/COFF image.
22199         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22200         that does the reverse than decode_blob_size ().
22201         * object.c: use mono_metadata_encode_value (). Move here
22202         temporary implementation of mono_string_to_utf8 ().
22203         * rawbuffer.c: make malloc_map static.
22204
22205 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22206
22207         * metadata.c: fix type comparison for arrays.
22208         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22209         Added a couple of new classes to monodefaults.
22210         * icall.c: added a couple of Reflection-related internalcalls.
22211         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22212         Added a byval_arg MonoType to MonoClass.
22213
22214 2001-09-28  Dick Porter  <dick@ximian.com>
22215
22216         * icall.c:
22217         * threads-pthread.h: 
22218         * threads-pthread.c: Implemented internal calls for
22219         LocalDataStoreSlot operations.  Applied mutexes around all shared
22220         data.  Reworked the thread creation and Start() operations to
22221         avoid a race condition.
22222         
22223         * threads-dummy.h:
22224         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22225
22226 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22227
22228         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22229
22230 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22231
22232         * class.c, loader.c: warn and return NULL instead of erroring out.
22233         * icall.c: added System.AppDomain::getCurDomain().
22234         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22235
22236 2001-09-25  Dick Porter  <dick@ximian.com>
22237
22238         * threads-pthread.h:
22239         * threads-pthread.c: Implemented timed thread joining and added
22240         System.Threading.Thread::Join_internal internal call
22241
22242         * icall.c: Added System.Threading.Thread::Join_internal internal call
22243
22244         * threads-dummy.h:
22245         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22246
22247 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22248
22249         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22250         mono_string_intern () to implement the semantics of the ldstr opcode
22251         and the interning of System.Strings.
22252         * icall.c: provide hooks to make String::IsIntern and String::Intern
22253         internalcalls.
22254
22255 2001-09-23  Dick Porter  <dick@ximian.com>
22256
22257         * threads-dummy.c: 
22258         * threads-dummy.h: New files of dummy threading routines
22259
22260         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22261         support code based on system specifics
22262
22263         Rename PTHREAD_LIBS to THREAD_LIBS
22264         
22265 2001-09-23  Dick Porter  <dick@ximian.com>
22266
22267         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22268         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22269         internal calls.
22270         (mono_thread_init): Set up a Thread object instance to return when
22271         the main thread calls Thread.CurrentThread
22272         (mono_thread_cleanup): Wait for all subthreads to exit
22273
22274         * icall.c: New internal calls for System.Threading.Thread::Sleep
22275         (including Schedule) and CurrentThread
22276
22277         * threads.h: New file, to insulate thread-specific stuff from the
22278         rest of the code
22279
22280 2001-09-21  Dick Porter  <dick@ximian.com>
22281
22282         * threads-pthread.h: 
22283         * threads-pthread.c: New file, for handling pthreads-style
22284         threading support.  Start() now starts a new thread and executes
22285         the ThreadStart delegate instance.
22286
22287         * icall.c: Added the internalcall for
22288         System.Threading.Thread::Start_internal
22289
22290         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22291
22292 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22293
22294         * loader.c: work around the different signatures for delegates
22295         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22296
22297 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22298
22299         * class.h, class.c: add mono_class_get_field_from_name ().
22300         * *: Fix C comments and other ANSI C issues.
22301
22302 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22303
22304         * endian.h, assembly.c: fix some endianness issues.
22305
22306 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22307
22308         * loader.h, load.c: add delegate_class to mono_defaults.
22309         Handle runtime provided methods in mono_get_method ().
22310
22311 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22312
22313         * loader.c (mono_get_method): use pinvoke for internal call
22314
22315         * icall.c: use pinvoke for internal call
22316
22317         * loader.c (method_from_memberref): set the method name
22318
22319 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22320
22321         * metadata.c: help the compiler generate better code for
22322         mono_class_from_mono_type ().
22323
22324 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22325
22326         * class.c (mono_class_metadata_init): delayed computing of the
22327         class size to mono_class_metadata_init ()
22328
22329 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22330
22331         * class.c, class.h: add an interfaces member to MonoClass.
22332         * image.c, image.h: add assembly_name field to MonoImage
22333         from the assembly table.
22334         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22335
22336 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22337
22338         * class.c: Handle Array in mono_class_from_mono_type ().
22339         * metadata.c, pedump.c: some endian fixes.
22340
22341 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22342
22343         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22344         * metadata.c: fix small problem introduced with the latest commit.
22345
22346 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22347
22348         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22349         We don't need a MonoMetadata pointer anymore to compare signatures in
22350         mono_metadata_signature_equal (), update callers.
22351         Reduced memory usage an number of allocations for MonoMethodHeader and
22352         MonoMethodSignature.
22353
22354 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22355
22356         * metadata.c: added compare for szarray.
22357
22358 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22359
22360         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22361         and add a couple more types to it and mono_defaults. Give an hint on
22362         classes that need implementing in our corlib and are referenced
22363         in mscorlib.
22364
22365 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22366
22367         * class.h, class.c: keep track if a class is also an Enum.
22368         * loader.c: Implement a couple more types for use in libffi
22369         marshalling. Gives better diagnostics when failing to dlopen
22370         a library. Set method->klass for P/Invoke methods, too.
22371
22372 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22373
22374         * class.c, class.h: add a MonoType this_arg to MonoClass that
22375         represents a pointer to an object of the class' type that
22376         can be used by the interpreter and later the type cache.
22377         Add best guess alignment info for valuetype objects.
22378
22379 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22380
22381         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22382         into MonoType: one less level of indirection and allocation and
22383         simplifies quite a bit of code. Added cache for MonoTypes that are
22384         used frequently, so that we don't need to allocate them all the time.
22385
22386 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22387
22388         * class.c (mono_class_create_from_typedef): System.Enum is also a
22389         value type, although it does not derive from System.ValueType
22390         (maybe a bug in the ms compiler?)
22391
22392         * metadata.c (mono_type_size): return the right size for value types
22393
22394         * loader.c (mono_get_method): only initialize method header if not abstract
22395
22396         * class.c (mono_class_from_mono_type): use mono_default values. 
22397
22398 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22399
22400         * *: use MonoClass pointers instead of <type_tokens>
22401         
22402         * class.h: new flag: metadata_inited.
22403
22404         * class.c (mono_class_metadata_init): impl.
22405         (mono_class_instance_size): impl.
22406         (mono_class_data_size): impl.
22407
22408 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22409
22410         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22411         MonoClass now has the name and name_space fields. 
22412         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22413         mono_get_method () takes and optional MonoClass as argument.
22414         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22415         instead that takes advantage of a map from class names to typedef
22416         tokens in MonoImage.
22417
22418 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22419
22420         * metadata.c: zero is not a valid alignment boundary.
22421         Merge MONO_TYPE_VOID in default decoding code.
22422
22423 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22424
22425         * image.h: merged MonoMetadata into MonoImage
22426
22427         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22428         identify the type of elements.
22429
22430 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22431
22432         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22433         * cil-coff.h: split MonoMSDOSHeader and add size info.
22434         * image.c: add some consistency checks.
22435         * metadata.c: fix row size computation: one programmer
22436         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22437         add explanation for the locator routine.
22438         Fix decoding of size in method header.
22439         
22440 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22441
22442         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22443         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22444         function from gnome-libs.  This uses the right path separator
22445         based on the OS, and also works around a bug in some systems where
22446         a double slash is not allowed. 
22447         (default_assembly_name_resolver): Use g_concat_dir_and_file
22448         (mono_assembly_open): ditto.
22449
22450 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22451
22452         * metadata.c (mono_metadata_signature_equal): impl.
22453
22454         * *: void is now a realy MonoType (instead of using NULL)
22455         
22456         * metadata.c (do_mono_metadata_parse_type): use
22457         mono_metadata_parse_type to parse void value.
22458
22459 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22460
22461         * metadata.c, metadata.h: in the signature and method header store
22462         only the space required for holding the loca vars and incoming arguments.
22463
22464 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22465
22466         * metadata.c (do_mono_metadata_parse_type): treat void like any
22467         other type (instead of assigning NULL);
22468
22469 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22470
22471         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22472
22473 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22474
22475         * image.c (do_mono_image_open): added a cache for arrays.
22476
22477 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22478
22479         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22480         decode a single column from a row in a metadata table and changes
22481         to take advantage of it in the typedef locator (gives a nice speed up).
22482         Store offset info for function params.
22483
22484 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22485
22486         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22487
22488 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22489
22490         * assembly.c: how could mono_assembly_close () had ever worked?
22491         * metadata.c, metadata.h: provide offset info for local vars.
22492         Implement mono_type_size () to take care of alignment as well
22493         as size (it was mono_field_type_size in cli/class.c before).
22494
22495 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22496
22497         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22498
22499         * assembly.h (CORLIB_NAME): set to corlib.dll
22500
22501         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22502
22503 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22504
22505         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22506         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22507         tokentype.h: massive namespace cleanup.
22508
22509 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22510
22511         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22512
22513 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22514
22515         * metadata.c (mono_metadata_free_type): added check for type !=
22516         NULL (void) before calling mono_metadata_free_type()
22517
22518 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22519
22520         * metadata.h, row_indexes.h: added header with enumerations to use
22521         to index in the columns from tables in metadata and to decode coded
22522         tokens: we should start using this instead of embedding magic numbers
22523         all over the code.
22524
22525 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22526
22527         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22528         Move metadata_t info from cli_image_info_t to MonoImage, where
22529         it's easily accessible. Changed all the uses accordingly.
22530         Added the method and class caches to MonoImage.
22531         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22532         and mono_metadata_decode_value () signature to be more consistent
22533         with the other parse functions (and simplify code). Taken advantage
22534         of zero-length array allocation with GCC. Removed reduntant (and
22535         wrong) MonoFieldType struct and use MonoParam instead. Changed
22536         mono_metadata_parse_field_type () to use common code for parsing.
22537         Added mono_metadata_typedef_from_field () and
22538         mono_metadata_typedef_from_method () to lookup a typedef index from a
22539         field or method token.
22540         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22541
22542 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22543
22544         * metadata.c (mono_metadata_parse_field_type): Implement. 
22545         (do_mono_metadata_parse_type): Split engine from
22546         mono_metadata_parse_type, so that we can create smaller structures
22547         for things that just have one pointer to the MonoType (look at
22548         the MonoFieldType)
22549
22550 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22551
22552         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22553         as Jan Gray found out, it is incorrect. 
22554
22555 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22556
22557         * assembly.c: Implement asssembly loading.  This loads an image
22558         and loads all the referenced assemblies.  Come to think of it, we
22559         could always do lazy loading of the assemblies. 
22560
22561         * image.c (mono_image_open): Keep loaded images in a hashtable.
22562
22563         * image.h (MonoImage): Add reference count.
22564
22565 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22566
22567         * assembly.c (mono_assembly_open): Keep track of the file name in
22568         case the assembly has no ASSEMBLY table.
22569
22570         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22571         from get.c here.
22572
22573 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22574
22575         * metadata.c, metadata.h: decode local vars in method header
22576         parse function. Change callers accordingly.
22577
22578 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22579
22580         * metadata.h, cil-coff.h: protect against multiple inclusion.
22581         Added some new structures to hold information decoded from metadata:
22582         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22583         and relevant decoding/free functions.
22584         * metadata.c: implement decoding functions. Add warning for out of bounds
22585         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22586         all the info about a method signature and invocation. Remove check on
22587         uninitialized local var in parse_mh() and fix memory leak.
22588
22589 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22590
22591         * metadata.h: More macros.
22592
22593         * tokentype.h: New file.
22594
22595 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22596
22597         * assembly.c: added a consistency check and initialize
22598         some structures with g_new0().
22599         * metadata.c: fixed a couple more bugs in table size computation
22600         and add other checks for out-of bound access to metadata.
22601
22602 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22603
22604         * metatada.c: fix bugs computing table sizes. Spew a
22605         warning when index in string heap is out of bounds.
22606
22607 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22608
22609         * metadata.h: Add a couple of macros to manipulate tokens. 
22610
22611 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22612
22613         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22614         cli_section_tables).
22615
22616 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22617
22618         * metadata.c (mono_metadata_user_string): New function, provides
22619         access to the UserString heap. 
22620
22621 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22622
22623         * metadata.c: Add inline documentation.
22624
22625 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22626
22627         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22628         files. 
22629
22630 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22631
22632         * typeattr.h: New file, TypeAttribute flags. 
22633
22634 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22635
22636         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22637         mono_assembly_ensure_section): Section loading code.
22638         (load_section_tables): Load the sections.
22639
22640         * mono/metadata/metadata.c (mono_metadata_locate_token,
22641         mono_metadata_locate): Functions to locate the information
22642         definition given a token or a table and an index.
22643         (mono_metadata_compute_table_bases): New.
22644         (compute_size): New function to compute the sizes of the various
22645         tables.
22646
22647         * mono/metadata/metadata.h: Finish listing the different index
22648         types. 
22649
22650         * mono/metadata/pedump.c: Improve to dump new information.
22651
22652 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22653
22654         * mono/metadata/metadata.c: Entered all the tables matching
22655         Beta2. 
22656
22657         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22658
22659
22660